OpenClaw 不仅支持单个智能体工作,还提供了完整的多智能体协作机制。从多智能体路由到子智能体派生,再到 Orchestrator 编排模式,本文带你搞懂 OpenClaw 如何实现"一个 CEO + 多个 Worker"的团队协作。
一、三种多智能体协作机制
OpenClaw 提供了三种不同层次的多智能体协作机制,分别适用于不同的场景:
| 多智能体路由(Multi-Agent Routing) | ||
| 子智能体(Sub-Agents) | ||
| ACP 协议 |
一句话理解: 多智能体路由是"多个独立的人",子智能体是"一个人派生多个助手",ACP 是"调用外部工具"。
二、多智能体路由:完全隔离的平行世界
核心概念
在单个 Gateway 进程中运行多个完全隔离的 Agent,每个 Agent 拥有独立的:
| 工作区(workspace) | |
| 会话历史(sessions) | |
| 认证配置(auth-profiles) | |
| 模型配置 |
配置示例
通过 bindings 将不同渠道/账号/联系人路由到不同 Agent:
{agents: {list: [{id: "home",default: true,workspace: "~/.openclaw/workspace-home"},{id: "work",workspace: "~/.openclaw/workspace-work"},],},bindings: [{agentId: "home",match: {channel: "whatsapp",accountId: "personal"}},{agentId: "work",match: {channel: "whatsapp",accountId: "biz"}},],}
典型场景
| 多人共享服务器 | |
| 多账号管理 | |
| 多人格切换 |
类比: 就像一台服务器上运行多个虚拟机,每个虚拟机都是独立的操作系统。
三、子智能体:动态派生的并行助手
核心概念
主 Agent 可以通过 sessions_spawn 工具在后台并行派生子 Agent 执行任务,子 Agent 完成后将结果 announce 回父 Agent。
关键特性
| 非阻塞派生 | |
| 并行执行 | |
| 结果回传 | |
| 默认隔离 |
默认限制
{agents: {defaults: {subagents: {maxSpawnDepth: 1, // 最大嵌套深度(默认 1 层)maxChildrenPerAgent: 5, // 每个 Agent 最多 5 个子 AgentmaxConcurrent: 8, // 全局并发上限 8 个runTimeoutSeconds: 900, // 默认超时 15 分钟},},},}
工作流程
用户发送消息
↓
主 Agent 接收任务
↓
调用 sessions_spawn 派生子 Agent A、B、C
↓
子 Agent 并行执行任务
↓
子 Agent 完成后 announce 结果回主 Agent
↓
主 Agent 汇总结果后回复用户
典型场景
| 并行研究 | |
| 长任务处理 | |
| 多步骤工作流 |
类比: 就像一个项目经理(主 Agent)给多个员工(子 Agent)分配任务,员工完成后汇报结果。
四、Orchestrator 模式:CEO + Worker 的两层编排
整体结构
用户
│
▼
主 Agent(CEO / Depth 0)
│ 收到任务后,调用 sessions_spawn 派生子 Agent
├──▶ 子 Agent A(Worker / Depth 1)── 完成后 announce 回 CEO
├──▶ 子 Agent B(Worker / Depth 1)── 完成后 announce 回 CEO
└──▶ 子 Agent C(Worker / Depth 1)── 完成后 announce 回 CEO
│
│(若启用 maxSpawnDepth: 2)
├──▶ 孙 Agent(Leaf Worker / Depth 2)
└──▶ 孙 Agent(Leaf Worker / Depth 2)
三层角色定义
| Depth 0 | agent:<id>:main | ||
| Depth 1 | agent:<id>:subagent:<uuid> | ||
| Depth 2 | agent:<id>:subagent:<uuid>:subagent:<uuid> |
CEO(主 Agent,Depth 0)
| Session Key | agent:<id>:main |
| 职责 | |
| 工具权限 | sessions_spawn |
| 结果处理 |
Worker(子 Agent,Depth 1)
| Session Key | agent:<id>:subagent:<uuid> |
| 职责 | |
| 工具权限 | |
| 结果回传 |
启用 Orchestrator 模式(两层嵌套)
若 Worker 本身还需要再派生孙 Agent(Depth 2 Leaf Worker),需要配置:
{agents: {defaults: {subagents: {maxSpawnDepth: 2, // 允许 Worker 再派生子 AgentmaxChildrenPerAgent: 5, // 每个 session 最多 5 个活跃子 AgentmaxConcurrent: 8, // 全局并发上限},},},}
此时 Depth 1 的 Worker 会额外获得以下工具:
sessions_spawn | |
sessions_list | |
sessions_history |
类比: CEO 派生部门经理(Depth 1 Orchestrator),部门经理再派生员工(Depth 2 Leaf Worker)。
结果如何流回用户
Depth-2 Worker 完成 → announce → Depth-1 Orchestrator
↓
Depth-1 Orchestrator 汇总 → announce → 主 Agent (CEO)
↓
主 Agent 重写为正常回复语气 → 发给用户
关键规则: 每一层只能看到直接子 Agent 的 announce,不会跨层透传原始内部元数据。
五、关键限制与配置
嵌套深度限制
| 最大嵌套深度 | |||
| 每 Session 最多子 Agent | |||
| 全局并发上限 | |||
| Depth 2 能否再派生 |
工具权限策略
| 0 | ||
| 1(maxSpawnDepth = 1) | ||
| 1(maxSpawnDepth ≥ 2) | sessions_spawnsessions_list、sessions_history | |
| 2 |
成本考虑
重要提示: 每个子 Agent 都有自己的上下文和 token 消耗。
优化建议:
{agents: {defaults: {model: "gpt-4", // 主 Agent 使用高质量模型subagents: {model: "gpt-3.5-turbo", // 子 Agent 使用便宜模型},},},}
类比: 就像公司里,CEO 的时薪很高,但普通员工的时薪较低,合理分配资源。
六、跨 Agent 记忆共享
默认隔离
Agent 之间默认完全隔离,无法访问彼此的会话记录。
配置记忆共享
可以通过 memorySearch.qmd.extraCollections 配置让一个 Agent 搜索另一个 Agent 的会话记录:
{agents: {defaults: {workspace: "~/workspaces/main",memorySearch: {qmd: {extraCollections: [{path: "~/agents/family/sessions",name: "family-sessions"},],},},},list: [{id: "main",workspace: "~/workspaces/main",memorySearch: {qmd: {extraCollections: [{ path: "notes" }, // 解析为 workspace 内的路径],},},},{id: "family",workspace: "~/workspaces/family"},],},memory: {backend: "qmd",qmd: { includeDefaultMemory: false },},}
使用场景
| 团队协作 | |
| 知识共享 | |
| 上下文继承 |
类比: 就像公司里的共享文档库,不同部门可以访问彼此的文档。
七、多智能体路由 vs 子智能体
| 关系 | ||
| 触发方式 | bindings 路由 | sessions_spawn |
| 工作区 | ||
| 会话历史 | ||
| 认证配置 | ||
| 模型配置 | ||
| 适用场景 |
选择建议
需要完全隔离的多个独立智能体
↓
多智能体路由
需要一个主智能体派生多个助手并行工作
↓
子智能体(Sub-Agents)
八、官方定位与最佳实践
官方建议
官方 FAQ 明确说明:
"一个 CEO + 多个 Worker Agent"的团队模式是有趣的实验,但消耗 token 较多,对于大多数场景,推荐使用单 Bot + 多 session 并行工作,必要时再派生子 Agent。"
最佳实践
| 简单任务 | |
| 并行任务 | |
| 复杂编排 | |
| 极复杂编排 | |
| 多人使用 |
成本优化建议
1. 优先使用单 Agent + 多 session
2. 必要时派生子 Agent,但限制数量
3. 子 Agent 使用便宜模型
4. 避免过深的嵌套(推荐最多 2 层)
5. 设置合理的超时时间
限制与注意事项
| Announce 是尽力而为 | |
| 共享进程资源 | |
| 非阻塞派生 | sessions_spawn |
| 上下文注入限制 | AGENTS.md + TOOLS.md,不包含 SOUL.md 等 |
| 最大嵌套深度 |
九、ACP 协议:编排外部 AI 工具
什么是 ACP?
ACP(Agent Control Protocol) 用于编排外部 AI CLI 工具(如 Codex、Claude Code),支持会话恢复、流式输出路由。
使用方式
通过 sessions_spawn 传入 runtime: "acp" 启用:
{"runtime": "acp","command": "codex","args": ["--task", "implement feature X"]}
适用场景
| 集成外部工具 | |
| 会话恢复 | |
| 流式输出 |
类比: 就像一个项目经理(主 Agent)外包任务给外部公司(外部 AI 工具)。
最后
一句话总结:
OpenClaw 提供了三种多智能体协作机制:多智能体路由用于完全隔离的平行世界,子智能体用于动态派生的并行助手,Orchestrator 模式实现"CEO + Worker"的两层编排。
核心机制对比:
| 多智能体路由 | |||
| 子智能体 | sessions_spawn | ||
| Orchestrator | maxSpawnDepth: 2 | ||
| ACP 协议 | runtime: "acp" |
配置建议:
{agents: {defaults: {model: "gpt-4", // 主 Agent 用高质量模型subagents: {maxSpawnDepth: 2, // 启用 Orchestrator 模式maxChildrenPerAgent: 5, // 限制子 Agent 数量maxConcurrent: 8, // 全局并发控制model: "gpt-3.5-turbo", // 子 Agent 用便宜模型},},},}
使用原则:
简单任务 → 单 Agent
并行任务 → 单 Agent + 多 session
复杂编排 → 子 Agent(Depth 1)
极复杂编排 → Orchestrator(Depth 2)
多人使用 → 多智能体路由
OpenClaw 的多智能体协作机制为复杂任务编排提供了强大的工具,但也要注意成本控制和合理使用。
觉得有帮助?欢迎点赞、在看、转发三连~
夜雨聆风