2026年OpenClaw多智能体编排:扇出、流水线与生产实践
agentToAgent / 子 Agent 派生分发任务给专业 Worker,再合并结果。子任务相互独立时用并行扇出(3 个审查者、3 个模块)。每阶段依赖上一阶段产出时用顺序流水线(调研 → 起草 → 审计)。在基础守护进程之上,3-agent 扇出约需 3.9 GB 内存;若与 Xcode 或 Docker 并行,建议规划 24 GB。安装基础请参阅 OpenClaw 部署与排障指南 — 本文仅聚焦编排。
为何多智能体编排很重要
单个长驻 Agent 上下文会不断累积噪声:调研 dump、失败尝试与工具日志撑大窗口,直至输出质量下降。OpenClaw 将编排视为一等公民 — 父 Agent 负责规划与路由;Worker 获得窄化提示词与隔离工作区。
团队在以下场景采用 OpenClaw 多智能体:
- CI/CD 生成需并行触及多个仓库或服务(基准数据显示,在可比任务上并行代码生成比单 Agent Claude Code 快约 3.2 倍)
- 代码审查需要独立视角(安全、风格、覆盖率),而非一个模型扮演所有角色
- 长文档不应强迫单个 Agent 在同一线程中同时持有调研、大纲、草稿与审计
失败模式同样是架构性的:五个「Agent」若写入相同内存键且无隔离,会产生竞态 — 编排层必须拥有合并逻辑与超时机制。
OpenClaw 编排模型
运行时,OpenClaw 解析为网关守护进程加配置中的具名 Agent 身份。多 Agent 流程使用:
| 原语 | 角色 |
|---|---|
编排器(常为 main 或 internal) | 分解任务、派生 Worker、合并输出 — 自身不应执行重工具操作 |
| Worker Agent | 限定技能、沙箱工作区、仅接收任务级上下文 |
agentToAgent 工具 | 在允许的 Agent ID 之间结构化传信 |
| 子 Agent 派生 | 为并行分支创建临时 Worker;每次派生可设标签、模型与超时 |
| 文件协调 | 许多生产环境用工作区文件(如 brain/ 目录)作黑板,弥补实时消息不足 |
深度经验法则:两层(编排器 → Worker)覆盖约 95% 工作负载。三层(编排器 → 组长 → 叶子)仅在子团队真正独立时有价值 — 调试成本会急剧上升。
外部参考:OpenClaw GitHub 及社区关于 maxSpawnDepth / 级联停止行为的架构说明。
三大编排模式
模式 1 — 并行扇出
适用:子任务不依赖彼此输出。
形态:编排器在同一轮发起多次派生;墙钟时间 ≈ 最慢 Worker,而非各 Worker 之和。
示例:
- 同时 lint 三个包
- 并行调研三个竞品 URL
- 为三个服务生成单元测试
反模式:对流水线做扇出(调研 + 起草)— 起草者在调研完成前以空输入启动。
编排器
├── 派生 worker-a(范围:package-frontend)
├── 派生 worker-b(范围:package-api)
└── 派生 worker-c(范围:package-worker)
→ 合并摘要 → 单一 PR 计划
模式 2 — 顺序流水线
适用:阶段 B 需要阶段 A 的产出物。
形态:调研 → 大纲 → 实现 → 审计 → 发布。每个 Worker 获得干净上下文,仅粘贴上一阶段的交付物。
优势:起草者不必携带 3,000 行原始调研 token;审计者看不到预审草稿历史。
代价:墙钟时间累加 — 仅在依赖真实存在时使用。
模式 3 — 扇出加校验
适用:准确性优先于速度(合规文本、基础设施 diff、定价表)。
形态:同一提示词发给 2–3 个 Worker;编排器或监控 Agent对比输出;分歧触发重试或人工升级。
代价:相较单 Worker 约 2–3 倍 token 消耗 — 仅在高风险合并时合理。
配置 Runbook
假定 OpenClaw 已安装 — 若尚未完成,请先阅读 部署指南。
步骤 1 — 在 openclaw.json 中定义 Agent 名册
典型路径:~/.openclaw/openclaw.json(请按你的版本核实)。
{
"agents": {
"list": [
{
"id": "orchestrator",
"default": true,
"workspace": "~/.openclaw/workspace-orchestrator",
"sandbox": { "mode": "off" }
},
{
"id": "coder",
"workspace": "~/.openclaw/workspace-coder",
"sandbox": { "mode": "all", "scope": "agent" },
"skills": ["git", "nodejs", "testing"]
},
{
"id": "researcher",
"workspace": "~/.openclaw/workspace-research",
"sandbox": { "mode": "all", "scope": "agent" },
"skills": ["web", "docs"]
}
]
},
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["orchestrator", "coder", "researcher"]
}
}
}
步骤 2 — 为每个 Worker 隔离工作区
每个 Worker ID 应对应独立工作区目录。切勿在并行扇出 Worker 之间共享可写工作区 — 文件竞态会破坏合并。
mkdir -p ~/.openclaw/workspace-{orchestrator,coder,researcher}
步骤 3 — 编写带路由表的编排器系统提示词
编排器提示词必须列出:
- 可用 Worker ID 与技能
- 何时扇出 vs 流水线
- 每次派生的超时(如调研 120 s、代码生成 300 s)
- 失败策略:重试一次,然后升级
子 Agent 上下文规则:Worker 应仅接收 AGENTS.md + TOOLS.md + 任务载荷 — 而非完整编排器线程。
步骤 4 — 为不可信 Worker 启用沙箱
编排器保持 sandbox.mode: off 以使用协调工具;当 Worker 可执行 shell 或网络时,对 coder/researcher 使用 mode: all 沙箱。
步骤 5 — 设置派生上限
按你的 OpenClaw 版本文档配置 maxChildren / maxSpawnDepth。在测清 RAM 与 API 速率限制前,最多 3 个并行子进程起步。
步骤 6 — 用 openclaw doctor 测试
openclaw doctor
openclaw status
在 CI 下运行扇出前,先解决重复 hook 或冲突的 Agent 绑定。
步骤 7 — 运行受控扇出任务
编排器指令示例(概念性):
任务:并行审查 auth/、billing/、notify/ 三个模块。
每个目录派生一次 researcher,使用相同评分标准。
合并为一份 markdown 报告,按模块分节。
超时:每个 Worker 180s。若某 Worker 失败,继续部分合并并标记缺口。
测试期间记录峰值 RSS — 对照 基准内存数据。
步骤 8 — 接入 CI 触发(可选)
在本地暴露网关;通过 SSH + REST 从流水线触发。产物存入任务级路径:
export TASK_ID="${GITHUB_RUN_ID}"
mkdir -p "/tmp/openclaw-runs/${TASK_ID}"
内存、状态与合并纪律
| 风险 | 缓解措施 |
|---|---|
| 并行写入同一文件 | 任务级键:${TASK_ID}/results/{worker}.md |
| 编排器上下文膨胀 | Worker 仅返回摘要 — 而非完整工具转录 |
| token 消耗失控 | 每 Worker 预算上限;终止超过 N token 的派生 |
| Worker 状态陈旧 | 并行工作用临时派生;仅持久通道保留长驻 persona |
合并契约:编排器应预先定义输出 schema(JSON 节、必填标题)。Worker 在交接前按 schema 校验。
硬件与 RAM 预算
在 Apple Silicon M4 级主机上测量(见 基准文章):
| 模式 | 增量 RAM(数量级) | 主机建议 |
|---|---|---|
| 单 OpenClaw Agent | 空闲约 480 MB,峰值约 1.8 GB | 16 GB 较舒适 |
| 3-agent 扇出 | Worker + 基础约 3.9 GB 峰值 | 16 GB 在 Docker/Xcode 开启时偏紧 |
| 3-agent + Claude Code 并行 | 合计约 5.2 GB | 建议 24 GB |
编排不依赖 GPU — 瓶颈在 API 速率限制与工作区同步的磁盘 I/O。国内团队还需留意出口带宽对 Anthropic API 调用的影响。按区域选节点(仅 API 延迟)参见 M4 区域矩阵。
故障处理
在编排器提示词中明确定义:
| 事件 | 策略 |
|---|---|
| Worker 超时 | 以更小范围重试一次;否则标记 PARTIAL |
| Worker 错误 JSON | 记录结构化错误;勿盲目扇出重试 |
| Worker 答案冲突 | 升级到校验模式或人工 |
| 编排器循环 | 每任务限制最大派生轮数(如 2 轮) |
夜间 CI 失败常源于缺少超时 — 默认「永久等待」会拖死网关。
推荐路径
| 你的情况 | 建议做法 |
|---|---|
| 独立子任务(≥2) | 并行扇出 + 隔离工作区 |
| 每步需要上一阶段产出 | 顺序流水线 |
| 高风险输出 | 扇出加校验(2–3 Worker) |
| 首次使用 OpenClaw | 单 Agent 稳定后再加一个 Worker |
| RAM ≤16 GB 且开 Xcode | 最多 2 个并行 Worker,或升级到 24 GB |
| 已用 Claude Code 交互编程 | OpenClaw 编排负责批量/CI;Claude Code 保留结对编程(替代方案背景) |
一行规则:若 Worker B 的提示词需要 Worker A 的输出,用流水线。否则用扇出。
常见问题
OpenClaw 最多能并行运行多少个 Agent?
没有固定的全局上限 — 实际限制来自内存、API 速率限制与合并复杂度。建议从 3 个并行 Worker 起步,用 ps 或活动监视器测量峰值 RSS,再逐步扩容。
扇出模式是否总能加速?
仅当任务相互独立时成立。若对存在依赖关系的阶段误用扇出,会静默失败(空草稿、重复劳动)。选型前务必先梳理任务依赖。
agentToAgent 与子 Agent 派生有何区别?
agentToAgent 向具名持久 Agent发消息(如销售 Bot 与客服 Bot)。子 Agent 派生为单次任务分支创建临时 Worker。CI 编排通常依赖 spawn;多租户聊天 Bot 则配合 agentToAgent 与 bindings。
能否在不租用云主机的情况下在 Mac Mini 上运行编排?
可以。任何常开 Mac,只要满足 Node 22.19+、足够内存与稳定网络即可。团队常用专用 Mac mini — 本地或托管 — 避免笔记本休眠中断长驻网关会话。
这与 TradingAgents 或 MiroFish 有何关系?
TradingAgents 编排交易公司辩论流程(LangGraph)。MiroFish 编排社会群体 swarm做预测。OpenClaw 编排开发工作流(代码、CI、审查)。按领域选框架 — 它们互补,不可互换。