💡 学习目标:从“全能型单体 Agent”进化到“分工明确的 AI 团队协作”。
为什么单 Agent 不够用?
当你习惯了强大的单一 Agent 后,必定会遇到以下发展瓶颈:
- 上下文污染:刚让它写完严肃的商业企划方案,下一秒让它帮你写段子,模型可能因无法立刻切换语气而产生违和的回答。
- 工具链冲突:把画图、发邮件、写代码等几十个工具全塞给一个 Bot,大语言模型在挑选工具时极易“注意力分散”,导致响应变慢或幻觉。
- 渠道风格差异:在飞书上你需要它是一个严谨的工作流助手,而在 Telegram 上你可能只想要个毒舌树洞。
这就引出了 OpenClaw 的多 Agent 协作理念:让不同的 Agent 扮演特定的专家,组合成一支能互相配合的虚拟团队。
架构核心:三层物理隔离
在 OpenClaw 中,不同的 Agent 不仅仅是换了个名字,它们在底层有物理级别的隔离机制,这保证了“术业有专攻”:
- 认证与模型隔离 (
agents//agent/):不同 Agent 可以绑定不同的 API Key 和模型组合(比如翻译员部署为 Claude 3.5 Sonnet,画图员使用擅长意图解析的独立模型)。 - 记忆隔离 (
agents//sessions/):独立生成日记本和上下文序列,彼此互不串台。 - 灵魂隔离 (
workspace-/):每个 Agent 完全独享自己的SOUL.md和IDENTITY.md。
如何搭建多 Agent 团队?
步骤 1:录入“新员工”
使用 CLI 指令快速创建并初始化新 Agent 的工作区:
# 添加一个专注编程的 Agent
openclaw agents add coder
# 添加一个负责营销写作的 Agent
openclaw agents add writer
创建完成后,别忘了为他们分别定制独特的 SOUL.md 职业设定。
步骤 2:分配沟通渠道(Bindings)
我们需要给每位员工指派接待窗口。OpenClaw 的路由机制非常灵活,通过修改 openclaw.json,我们可以精确控制消息流向(被称为 Bindings 机制):
{
"agents": {
"list": [
{ "id": "main", "workspace": "~/.openclaw/workspace-main" },
{ "id": "coder", "workspace": "~/.openclaw/workspace-coder" }
]
},
"bindings": [
{
"agentId": "coder",
"match": {
"channel": "telegram",
"peer": { "kind": "direct", "id": "老板的电报ID" }
}
}
]
}
规则解析:路由绑定依赖明确的优先级。这种“分身术模式”确保了最精准的人员调度:精准匹配 ID 级别 > 频道级别匹配。
进阶:Agent 间通信(内线电话)
对于复杂任务,我们需要 Agent 互相打配合。OpenClaw 提供了四大协作模式(Supervisor、Router、Pipeline、Parallel)。其中最实用的为设置一个中央统筹者(Supervisor 监督者模式)。
首先,在 openclaw.json 中配置白名单,启用 sessions_send 内线电话机制:
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["main", "coder", "writer"]
}
}
}
随后,在主 Agent main 的 SOUL.md 里赋予其调度包工头职责:
“你是团队的调度核心。当收到编程或技术研发需求,你应当使用工具传达给 @coder 处理;收到公众号写作需求,应下发给 @writer。最后由你整合多方结果回复给用户。”
如此一来,当你发出一条重磅级长任务时,后台的群智大脑将自行建群、拆解并执行你的指令!
实战案例:子代理 (Sub-Agent) 的并行火力
除了上述固定的不同角色 Agent,OpenClaw 还提供了一种极其实用的“子代理实战模式”:即主代理将繁重任务临时委托给多名“临时工(子代理)”并行处理的模式。
场景挑战
想象一下,你一次性丢给主代理 3 篇动辄上万字的长篇英文技术博客,要求它翻译并做出摘要。
如果是传统的单线处理,模型可能因为上下文太长而崩溃,或者处理时间极长。
解决方案:并行执行架构
当你发送指令:“同时翻译这 3 篇技术博客,并分别做摘要”时,在 OpenClaw 的子代理生态中,会发生如下的“裂变”级联操作:
graph TD
Main["🧠 主代理 <br/> 任务分配 & 结果汇总"]
Sub1["📝 子代理 1 <br/> 博客 A 翻译 + 摘要"]
Sub2["📝 子代理 2 <br/> 博客 B 翻译 + 摘要"]
Sub3["📝 子代理 3 <br/> 博客 C 翻译 + 摘要"]
Result["📤 在主聊天中汇总公布结果"]
Main -->|"并行执行"| Sub1
Main -->|"并行执行"| Sub2
Main -->|"并行执行"| Sub3
Sub1 -->|"完成"| Result
Sub2 -->|"完成"| Result
Sub3 -->|"完成"| Result
此时,主代理就像一个项目经理,它立刻原地召唤出 3 个独立的子代理(Sub-Agent)线程。每个线程独立负责一篇博客的处理(无论是消耗的上下文还是处理时间,都完全拆分了)。当 3 个子代理都各自处理完任务后,主代理会将结果完美地拼接总结,一次性回复给你!
子代理管理指令
在支持 Slash Command 的渠道(如 Telegram 中),你甚至可以随时监控这个“包工头”下面的工人状态:
/subagents list:查看当前正在运行的并行子代理任务/subagents log:抽查某个特定子代理的工作日志/subagents stop all:一键叫停所有子代理
今日挑战
将你的 OpenClaw 进化为双 Agent 架构(例如:日常助理 + 代码达人)。为它们分别指派工作平台,并尝试抛出一个能够触发“子代理”并行执行的重度任务组合。