先说一个很多人没意识到的问题:单个 Agent 用久了,会越来越笨。 上下文越堆越长、角色越来越混乱、Token 消耗越来越大,到最后它又慢又贵还答非所问。多 Agent 架构就是为了解决这个问题而生的,不是让 AI 更聪明,而是让它分工更合理。
先建立一个认知:你是指挥官,不是提问者
传统用 AI 的方式是线性的:你问 → 它答 → 你再问 → 它再答。遇到复杂任务,比如写一份行业白皮书、策划一次营销活动,这种模式就彻底崩了,上下文丢失、角色冲突、效率低下。
OpenClaw的多Agent架构把这个模式翻转了:
主Agent(Main Agent):你的参谋长,负责拆解任务、分配角色、汇总结果
子Agent(Sub-agent):各路专家,每个只做一件事,互不干扰,可以并行运转
每个子Agent拥有独立的人格(SOUL.md)、独立的任务目标、独立的上下文、甚至独立的模型配置。它们之间互不污染,各司其职。
两种多Agent玩法,选对了事半功倍
OpenClaw提供两种截然不同的多Agent方案,适用场景完全不同,搞清楚这两种再动手配置。
玩法一:agents add+ bindings — 静态独立Agent
这是预先部署的思路。你提前创建好几个独立Agent,每个绑定到不同的聊天渠道或群组,长期驻守、各管一摊。
创建独立 Agent,可以指定不同模型
openclaw agents add coder --model claude-sonnet-4
openclaw agents add writer --model gpt-4
# 绑定到不同渠道
openclaw bindings add whatsapp:daily main # WhatsApp 日常对话 → 主 Agent
openclaw bindings add telegram:work coder # Telegram 工作群 → 代码 Agent
什么时候用这个?多人共用一个OpenClaw实例、不同渠道需要不同风格的Agent、或者需要长期稳定运行的专属助手(比如飞书某个群专属的AI助理)。
每个Agent有完全独立的运行环境:独立的工作空间、独立的状态目录、独立的会话存储,路径格式是 ~/.openclaw/agents/<agentId>/,认证信息也是各自隔离的,不会自动共享。
玩法二:sessions_spawn,动态子Agent(推荐日常使用)
这是按需召唤的思路。主Agent在执行任务过程中,动态创建临时子Agent,任务完成后自动销毁,结果自动返回。
不需要预先配置,不需要openclaw agents add,直接调用sessions_spawn就能用。
什么时候用这个?临时性的任务分工、需要并行处理多个子任务、一次性的协作场景。比如你说帮我同时调研三个竞品,主Agent就spawn三个子Agent并行去搜,最后汇总结果,速度是串行的三倍。
对比维度 | agents add(静态) | sessions_spawn(动态) |
配置复杂度 | 高,需预先创建 | 低,直接调用 |
适用场景 | 多人/多渠道/长期 | 任务分工/并行/临时 |
上下文隔离 | 完全隔离 | 任务级隔离 |
灵活性 | 低 | 高 |
推荐程度 | 固定场景✅ | 日常首选✅✅ |
Agent之间怎么说话:三种通信机制
多个Agent跑起来了,它们之间怎么传递信息?OpenClaw提供三种协同通信方式。
机制一:sessions_send— 点对点消息传递
最直接的方式,一个Agent给另一个Agent发消息,可以等待回复,也可以即发即忘。
sessions_send 参数:- sessionKey:目标Agent的会话标识- message:发送的消息内容- timeoutSeconds:等待超时时间(0 = 即发即忘)
timeoutSeconds > 0:等待回复,返回{status: ok, reply}
timeoutSeconds = 0:不等回复,返回{status: accepted},后台继续跑
这是多 Agent 协作的核心通信原语,主 Agent 分配任务、子 Agent 汇报结果,都靠它。
机制二:共享文件系统— 通过文件交接棒
多个Agent可以通过读写同一个文件来传递数据。比如研究员Agent把调研结果写到 ~/.openclaw/workspace/project/research.md,写手Agent再去读取这个文件开始写作。
这里有个超级容易踩的坑:必须用绝对路径,不能用相对路径!
# ✅ 正确:绝对路径,所有Agent都能找到
~/.openclaw/workspace/project/outline.md
# ❌ 错误:相对路径,不同 Agent 解析出来路径不一样
workspace/project/outline.md
有人就踩过这个坑:研究员Agent说大纲已保存,写手Agent说找不到文件,查日志发现路径里多了个嵌套的workspace/workspace,活生生翻车。
机制三:sessions_history— 异步查询结果
当你用即发即忘模式发出任务后,可以用sessions_history在稍后查询子Agent的执行结果。适合那些耗时较长、不需要实时等待的任务。
⚙️ 三个必须配对的关键配置
光知道命令还不够,有几个配置项不设对,多Agent根本跑不起来。这是很多人卡住的地方。
配置一:开启跨Agent通信权限
默认情况下,Agent只能看到自己的会话,看不到其他Agent。必须在openclaw.json里加这一行:
tools: {
sessions: {
visibility: all
}
}
没有这个,主Agent会说好的,我去协调团队,然后就没有然后了,其他Agent完全没有收到任何消息。这是最隐蔽、最容易被忽略的坑。
配置二:agentToAgent通信白名单
如果需要Agent之间直接互发消息(而不是通过主Agent中转),需要配置 agentToAgent.allow。注意字段名拼写,配错了直接不生效:
agentToAgent: {
allow: [writer, researcher, reviewer]}
配置三:subagents.allowlist(常见误区)
很多人以为用sessions_spawn动态创建子Agent需要配置allowlist,其实不需要。allowlist是用来限制哪些Agent可以创建子Agent的权限控制,默认主Agent可以创建任意子Agent,不需要额外配置。
一个完整的实战案例:AI写作团队
把上面所有知识串起来,看一个真实的多Agent协作场景——搭建一个4人AI写作团队:
角色:运营主管阿强(主Agent)、研究员阿亮、写手阿文、审核员阿严
工作流程:
你只跟阿强说话:帮我写一篇关于AI Agent趋势的深度文章
阿强用sessions_send 给阿亮发任务:调研 2026年AI Agent最新动态,结果保存到 ~/.openclaw/workspace/article/research.md
阿亮完成调研,写入共享文件,回复阿强完成
阿强用sessions_send 给阿文发任务:读取 research.md,写一篇 3000 字文章,保存到 article_draft.md
阿文写完,阿强再把草稿转给阿严审核润色
最终阿强把成品发给你
整个过程你只说了一句话,四个Agent流水线协作,每个人只做自己最擅长的事。
避坑清单:血泪经验总结
坑 | 现象 | 解决方案 |
跨 Agent 通信权限未开 | 主 Agent 说协调中但无响应 | 设置 tools.sessions.visibility=all |
文件路径用相对路径 | Agent 之间找不到对方的文件 | 统一用 ~/.openclaw/workspace/... 绝对路径 |
认证信息未共享 | 子 Agent 无法访问某些服务 | 手动复制 auth-profiles.json 到子 Agent 目录 |
误配 allowlist | 动态子 Agent 无法创建 | sessions_spawn 不需要 allowlist |
上下文越来越长 | 后期响应慢、质量下降 | 及时清理会话,或拆分为独立 Agent |
多Agent不是越多越好。任务足够简单,单Agent就够用;任务需要并行、需要角色分离、需要上下文隔离,才值得上多Agent。架构的核心原则永远是:用最简单的方式解决问题。
从极客玩具到企业数字员工网关,OpenClaw的多Agent体系正是这条路上最值得深挖的能力。
夜雨聆风