💡 本文是「OpenClaw 实战」系列的第四篇。前三篇我们聊了 Skill(操作手册)、Soul 配置(人格设定)和定时系统(主动行动),这篇解决一个很实际的问题——一个 AI 分身不够用,怎么办?
你大概遇到过这种情况:
微信上,你让 AI 帮你记账、管日程、回复朋友消息。飞书上,你让同一个 AI 帮忙写代码、查 API 文档、跑数据分析。结果呢?飞书工作群里混着"周末去哪吃"的上下文,微信聊天里突然蹦出一段 Python 代码。
更麻烦的是,你给工作 AI 配的 SOUL.md 写着"你是一个严谨的技术顾问",但你在微信家庭群里聊天时,它也用同样的语气回复——你妈问它今天吃什么,它说"根据营养学文献分析,建议摄入……"
一个 AI 身份,应付所有场景,迟早会精神分裂。
OpenClaw 的解决方案是:别让一个 AI 硬撑,直接分身。每个分身有自己的工作区、自己的人格、自己的记忆,互不干扰。微信归微信,飞书归飞书,甚至飞书里不同的群都可以分配给不同的 AI 分身。
一、先搞清楚"工作区"到底是什么
在讲多工作区之前,先理解一个核心概念:在 OpenClaw 里,工作区就是 AI 的家。
工作区是一个文件夹,默认在 ~/.openclaw/workspace。里面放着 AI 的所有"个人物品":
SOUL.md | |
USER.md | |
AGENTS.md | |
MEMORY.md | |
memory/ | |
skills/ |
上一篇文章讲过的 HEARTBEAT.md 也在这里——AI 每次"巡逻值班"都会读它。
关键来了:不同的工作区 = 不同的 AI 分身。 每个工作区有自己的 SOUL.md、自己的 MEMORY.md、自己的技能包。它们之间完全隔离——工作 AI 的记忆不会泄露到生活 AI 那里,反过来也一样。
二、单 Agent 模式:大多数人的起点
如果你什么都不配置,OpenClaw 默认就是单 Agent 模式。一个 AI,一个工作区,所有消息都发给它。
默认的样子长这样:
{"agents":{"defaults":{"workspace":"~/.openclaw/workspace"}}}Agent ID 默认是 main工作区在 ~/.openclaw/workspace所有渠道(微信、飞书、Telegram 等)的消息都往这一个 Agent 发
对大多数刚上手的人来说,单 Agent 够用。但一旦你开始在多个场景下重度使用——微信聊生活、飞书干工作、不同飞书群负责不同项目——单 Agent 就会开始打架。
打架的症状很明显:
AI 的语气在不同场景下不统一(飞书上太随意 or 微信上太严肃) 对话上下文互相污染(飞书聊技术聊到一半突然扯到微信里的生活话题) 技能包冲突(你不想让微信家庭群的 AI 有执行命令的权限)
这时候就该上多 Agent 了。
三、多 Agent 模式:一号多能
多 Agent 的核心思路是:在一个 OpenClaw 网关下,跑多个完全隔离的 AI 分身。
每个分身有独立的:
工作区(文件、人格、记忆) 会话存储(聊天记录互不可见) 认证配置(API Key 可以不同) 技能和工具权限(可以限制某个分身能做什么)
最小配置
在 ~/.openclaw/openclaw.json 里加一段 agents.list:
{"agents":{"list":[{"id":"work","default":true,"workspace":"~/.openclaw/workspace-work"},{"id":"life","workspace":"~/.openclaw/workspace-life"}]}}就这样。两个 Agent——work 和 life,各自有独立的工作区。default: true 表示没匹配到任何路由规则的消息默认发给 work。
工作区初始化
每个工作区创建后,跑一下 openclaw setup 就会自动生成引导文件(SOUL.md、USER.md 等)。然后你按自己的需求改就行。
比如 workspace-work 里的 SOUL.md:
# 人格设定你是一个高效、严谨的技术助手。回答问题直奔主题,不废话。代码要有注释,分析要有数据支撑,建议要有理由。而 workspace-life 里的 SOUL.md:
# 人格设定你是一个轻松、有趣的生活助手。说话像朋友聊天,偶尔来点幽默。不需要太正式,重点是实用和好玩。同一个 OpenClaw,两个完全不同性格的 AI。
四、绑定规则:消息该发给谁?
有了多个 Agent,下一个问题是:一条消息进来,怎么知道该发给哪个 Agent?
这就是 绑定(Bindings) 要干的事。
按渠道路由
最简单的方式——不同平台发给不同 Agent:
{"bindings":[{"agentId":"work","match":{"channel":"feishu"}},{"agentId":"life","match":{"channel":"wechat"}}]}飞书的消息全走 work,微信的消息全走 life。
适合这种场景:你习惯用飞书处理工作,微信聊生活。一条配置,两个世界。
按账号路由
如果你同一个平台有多个账号(比如两个微信号),可以按账号区分:
{"agents":{"list":[{"id":"home","workspace":"~/.openclaw/workspace-home"},{"id":"work","workspace":"~/.openclaw/workspace-work"}]},"bindings":[{"agentId":"home","match":{"channel":"wechat","accountId":"personal"}},{"agentId":"work","match":{"channel":"wechat","accountId":"biz"}}],"channels":{"wechat":{"accounts":{"personal":{},"biz":{}}}}}个人微信的消息走 home Agent,企业微信的消息走 work Agent。
按联系人路由
更细粒度的——某个特定联系人的消息路由到高性能 Agent:
{"bindings":[{"agentId":"opus","match":{"channel":"wechat","peer":{"kind":"direct","id":"wxid_boss123"}}},{"agentId":"chat","match":{"channel":"wechat"}}]}跟老板的聊天走 opus(高性能模型),其他人走普通 chat。注意绑定规则的顺序:更具体的规则要写在前面,OpenClaw 是从上到下匹配的。
按飞书群组路由
这个才是重点——飞书里不同的群,绑定不同的 Agent。
比如你公司有前端组群、后端组群、产品群,每个群需要不同专长的 AI:
{"bindings":[{"agentId":"frontend","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_frontend_dev_group_id"}}},{"agentId":"backend","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_backend_dev_group_id"}}},{"agentId":"product","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_product_group_id"}}}]}前端群里的 AI 精通 React/Vue/CSS,回答偏前端视角。后端群里的 AI 专注 Go/Java/数据库,给的建议都是后端最佳实践。产品群里的 AI 擅长需求分析和竞品调研,说话更贴近产品经理的思维。
三个群,三个 AI,各有各的 SOUL.md 和技能包,互不干扰。
路由优先级
如果你配了好几条规则,OpenClaw 按这个优先级从高到低匹配:
peer(精确到某个人或某个群) parentPeer(线程继承) guildId + roles(Discord 角色) guildId(Discord 服务器) teamId(Slack 团队) accountId(某个账号) channel(某个平台) 默认 Agent(兜底)
原则就是:越具体的规则越优先。 如果配了 peer 级别的绑定,它一定会覆盖 channel 级别的。
五、每个 Agent 独立配模型和工具
多 Agent 不只是换个皮肤——你可以给每个 Agent 配完全不同的"大脑"和"权限"。
不同的模型
工作 Agent 用强推理模型,生活 Agent 用便宜快速的模型:
{"agents":{"list":[{"id":"work","model":{"primary":"anthropic/claude-sonnet-4-6"}},{"id":"life","model":{"primary":"openai/gpt-4o-mini"}}]}}工作场景需要更强的分析能力,用贵一点的模型。日常闲聊用便宜的就够了,Token 费用能省不少。
不同的工具权限
这个更关键——你可能不想让家庭 Agent 有执行终端命令的能力:
{"agents":{"list":[{"id":"work","sandbox":{"mode":"off"}},{"id":"family","sandbox":{"mode":"all","scope":"agent"},"tools":{"allow":["read"],"deny":["exec","write","edit"]}}]}}work Agent 没有沙箱限制,可以执行任何操作。family Agent 被严格限制:完全沙箱化运行,只能读文件,不能执行命令、不能写文件、不能编辑。
这在家庭群场景特别有用——你不想让小朋友随口跟 AI 说一句"帮我删个文件"就真删了。
六、OPENCLAW_PROFILE:更轻量的多环境方案
如果你不想配多 Agent 路由那一整套,只是想在不同场景下快速切换工作区,有个更简单的办法:环境变量 OPENCLAW_PROFILE。
# 默认环境openclaw gateway# 工作环境OPENCLAW_PROFILE=work openclaw gateway --port 18789# 测试环境OPENCLAW_PROFILE=test openclaw gateway --port 19001设了 OPENCLAW_PROFILE=work 之后,默认工作区自动变成 ~/.openclaw/workspace-work,不用去改配置文件。
这个方案适合一台机器跑多个 OpenClaw 实例的场景。每个实例用不同的 Profile,工作区、配置、会话全部自动隔离。
不过要注意:多个实例必须用不同的端口。 端口之间建议至少间隔 20 个号,因为 OpenClaw 会用到一些衍生端口(浏览器控制、Canvas 等),间隔太小会撞。
七、多网关:终极隔离方案
如果你想要最彻底的隔离——连配置文件、状态目录都完全分开——可以跑多个网关实例。
用 --profile 快速搭建
# 主网关openclaw --profile main setupopenclaw --profile main gateway --port 18789# 救援网关(或第二个场景)openclaw --profile rescue setupopenclaw --profile rescue gateway --port 19001--profile 会自动帮你隔离以下几样东西:
openclaw.json | |
手动环境变量方式
不想用 --profile?也可以手动设置:
# 主网关OPENCLAW_CONFIG_PATH=~/.openclaw/main.json \OPENCLAW_STATE_DIR=~/.openclaw-main \openclaw gateway --port 18789# 第二个网关OPENCLAW_CONFIG_PATH=~/.openclaw/second.json \OPENCLAW_STATE_DIR=~/.openclaw-second \openclaw gateway --port 19001完全手动控制每一个路径,适合对系统运维比较熟的人。
什么时候需要多网关?
老实说,大多数人不需要。多 Agent 模式(上面第三到五节讲的)已经能满足绝大多数需求了。
多网关主要是两个场景:
救援机器人——你的主网关挂了,需要一个备用的来调试和恢复 安全隔离——某些场景要求配置文件和状态目录在物理层面完全分开,不能只靠逻辑隔离
如果你不确定需不需要,答案大概率是不需要。先用多 Agent 模式跑着,不够用了再升级。
八、实战——我的三 Agent 配置
说了这么多理论,分享一下我自己在用的配置。三个 Agent,飞书干工作、微信管生活,飞书写作群单独配一个 AI 编辑。
{"agents":{"list":[{"id":"dev","default":true,"workspace":"~/.openclaw/workspace-dev","model":{"primary":"anthropic/claude-sonnet-4-6"},"sandbox":{"mode":"off"}},{"id":"life","workspace":"~/.openclaw/workspace-life","model":{"primary":"openai/gpt-4o-mini"}},{"id":"writer","workspace":"~/.openclaw/workspace-writer","model":{"primary":"anthropic/claude-sonnet-4-6"}}]},"bindings":[{"agentId":"dev","match":{"channel":"feishu"}},{"agentId":"life","match":{"channel":"wechat"}},{"agentId":"writer","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_writing_group_id"}}}]}几个设计思路:
dev(开发)——默认 Agent,走飞书。配的是 Sonnet 模型,不开沙箱。工作区里的 SOUL.md 是技术助手人设,AGENTS.md 里配了代码审查、Debug、文档撰写的流程。日常写代码、查文档、跑脚本都在飞书找它。
life(生活)——走微信,用 GPT-4o-mini。便宜,响应快,日常聊天够用了。工作区里的 SOUL.md 人设轻松随意,技能包里装了记账、日程管理、旅行规划的 Skill。
writer(写作)——也走飞书,但绑定到一个专门的"写作群"。用来写公众号文章。工作区里装了知识库检索、素材搜索、排版发布的全套 Skill。在这个群里聊天就是在"跟 AI 编辑一起改稿",和其他飞书对话完全隔离。
三个 Agent 各司其职,记忆互不串扰,技能各有侧重。
九、备份你的工作区
既然工作区是 AI 的家,那最好给它加一道保险——用 Git 备份。
初始化很简单:
cd ~/.openclaw/workspace-devgit initgit add AGENTS.md SOUL.md TOOLS.md IDENTITY.md USER.md HEARTBEAT.md memory/git commit -m "Init agent workspace"然后推到一个私有仓库:
gh repo create openclaw-workspace-dev --private --source . --remote origin --push日常更新就一行:
git add . && git commit -m "Update memory" && git push几个注意点:
一定要私有仓库。 工作区里可能有你的个人信息、偏好、聊天记录摘要 不要提交密钥。 API Key、OAuth Token 这些东西不该出现在工作区里。加个 .gitignore把.env、*.key、*.pem排除掉如果你有多个工作区,每个都要单独备份。 workspace-dev、workspace-life、workspace-writer各自一个仓库
迁移到新机器的时候,clone 下来、改一下配置指向就行了。你的 AI 就像搬了个家,记忆和人格都还在。
写在最后
回顾一下这篇文章的核心:
单 Agent 够用就别折腾,能覆盖大多数轻度使用场景。
多 Agent 是性价比最高的方案——同一个网关里跑多个分身,通过绑定规则自动路由,每个分身有独立的人格、记忆和权限。90% 的多工作区需求用这个就够了。
多网关 是终极方案,配置文件和状态在物理层面完全隔离。留给运维需求或者特殊安全场景。
四篇文章串起来,一个完整的 AI 搭档就搭好了:
第一篇 Skill:教 AI 怎么干活 第二篇 Soul 配置:告诉 AI 它是谁 第三篇 定时系统:让 AI 主动干活 第四篇 多工作区:让 AI 分身各司其职
到了这一步,你的 AI 助手已经不只是一个"对话窗口"了。它有稳定的人格,懂你的习惯,会自己找活干,还能在不同场景下切换不同的角色。
好的工具不只是听话,而是懂得在不同场合说不同的话。
📌 关注公众号,每周分享 AI 工具实战与效率提升。
觉得有收获?点赞 + 在看 + 转发,是对我最大的支持 🙏
夜雨聆风