乐于分享
好东西不私藏

OpenClaw 4月8日版本 多 Agent 协作:3步搭建你的 AI 团队

OpenClaw 4月8日版本 多 Agent 协作:3步搭建你的 AI 团队


最近很多朋友问我:"OpenClaw 的多 Agent 到底怎么用?"

今天手把手教你在 10 分钟内,搭建一个 6 个 Agent 的协作团队。

先搞清楚 4 个核心概念

在动手之前,先搞懂这几个东西,不然后面会懵。

1. sessions_spawn:创建子任务(工具调用)

sessions_spawn({
  agentId: "dev-assistant",     // 目标Agent
  task: "写一个 hello world 脚本",  // 任务描述
  label: "test-1",             // 任务标识
  mode: "run"                  // run=一次性,session=持久会话})

mode 模式选择:

  • mode: "run"(默认):一次性任务,完成后自动通知结果

  • mode: "session":持久会话,需配合 thread: true(仅飞书支持)

Session Key 完整格式:agent:<agentId>:subagent:<uuid>

2. sessions_send:发消息给队友

sessions_send({  agentId: "content-assistant",  // 目标Agent
  message: "开发任务完成了,可以写文档了"  // 消息内容
})

适合轻量级通知,不创建新会话。

3. subagents 工具:管理后台任务

subagents({ action: "list" })   // 查看所有后台任务subagents({ action: "steer", sessionId: "agent:dev-assistant:subagent:xxx" })
subagents({ action: "kill", sessionId: "agent:dev-assistant:subagent:xxx" })

只能 list/steer/kill,不能 spawn!

4. 启用 A2A 通信(必须!)

{  "tools": {    "agentToAgent": { "enabled": true }
  }
}

第一步:创建 6 个 Agent

# 6 个 Agent 的完整创建命令openclaw agents add main --workspace ~/.openclaw/workspace
openclaw agents add coordinator --workspace ~/.openclaw/workspace-coordinator
openclaw agents add dev-assistant --workspace ~/.openclaw/workspace-dev
openclaw agents add content-assistant --workspace ~/.openclaw/workspace-content
openclaw agents add ops-assistant --workspace ~/.openclaw/workspace-ops
openclaw agents add research-assistant --workspace ~/.openclaw/workspace-research

第二步:为 6 个 Agent 写配置文件

2.1 奇奇 (main) — 对外接口

工作区: ~/.openclaw/workspace/

AGENTS.md:

# AGENTS.md - 奇奇(主 Agent)## 🤝 团队成员- **小夏** (coordinator) - 大总管,负责任务协调- **开发助理** (dev-assistant) - 代码开发- **内容助理** (content-assistant) - 文档内容- **运维助理** (ops-assistant) - 运维监控- **研究助理** (research-assistant) - 资料研究## 📬 通信方式- 收到超哥任务 → 分析类型 → 分发给合适的 Agent- 使用 `sessions_spawn` 创建子任务- 使用 `sessions_send` 发通知给队友- 使用 `subagents` 查看/管理后台任务

2.2 小夏 (coordinator) 

工作区: ~/.openclaw/workspace-coordinator/

AGENTS.md:

# AGENTS.md - 小夏(协调员)## 🤝 团队成员- **奇奇** (main) - 主 Agent,给我分派任务- **开发助理** (dev-assistant) - 执行开发任务- **内容助理** (content-assistant) - 写文档- **运维助理** (ops-assistant) - 部署运维- **研究助理** (research-assistant) - 搜集资料## 📬 通信方式- 接收奇奇的任务 → 拆解 → 分发给合适的 Agent- 使用 `sessions_spawn({ mode: "run" })` 创建一次性后台任务- 使用 `sessions_send` 发通知给下游 Agent- 任务完成后汇报给奇奇

2.3 开发助理 (dev-assistant)

工作区: ~/.openclaw/workspace-dev/

AGENTS.md:

# AGENTS.md - 开发助理## 🤝 团队成员- **小夏** (coordinator) - 给我分派任务- **奇奇** (main) - 对外接口- **内容助理** (content-assistant) - 我完成后通知它写文档- **运维助理** (ops-assistant) - 我完成后通知它部署## 📬 通信方式- 接收任务 → 编写代码 → 自测- 完成后用 `sessions_send` 通知内容助理写文档- 同时用 `sessions_send` 通知运维助理部署- `sessions_spawn` 创建技术调研子任务(如需要)

2.4 内容助理 (content-assistant)

工作区: ~/.openclaw/workspace-content/

AGENTS.md:

# AGENTS.md - 内容助理## 🤝 团队成员- **小夏** (coordinator) - 给我分派任务- **奇奇** (main) - 对外接口- **开发助理** (dev-assistant) - 给我提供技术内容- **研究助理** (research-assistant) - 给我提供研究资料## 📬 通信方式- 接收任务 → 收集素材 → 撰写内容- 完成后用 `sessions_send` 汇报给小夏

2.5 运维助理 (ops-assistant)

工作区: ~/.openclaw/workspace-ops/

AGENTS.md:

# AGENTS.md - 运维助理## 🤝 团队成员- **小夏** (coordinator) - 给我分派任务- **奇奇** (main) - 对外接口- **开发助理** (dev-assistant) - 给我提供部署包## 📬 通信方式- 接收任务 → 部署服务 → 配置监控- 完成后用 `sessions_send` 汇报给小夏

2.6 研究助理 (research-assistant)

工作区: ~/.openclaw/workspace-research/

AGENTS.md:

# AGENTS.md - 研究助理## 🤝 团队成员- **小夏** (coordinator) - 给我分派任务- **奇奇** (main) - 对外接口- **内容助理** (content-assistant) - 我整理的资料给它写文章## 📬 通信方式- 接收任务 → 搜索分析 → 整理报告- 完成后用 `sessions_send` 通知内容助理- `sessions_spawn` 并行搜索多个来源(如需要)

第三步:配置完整的路由绑定

关键:bindings 是顶层配置,与 channels 同级!

{  // ==================== 渠道配置 ====================
  "channels": {    "feishu": {      "enabled": true,      "dmPolicy": "pairing"
    }
  },  // ==================== 路由绑定(关键!)====================
  "bindings": [    // 奇奇:处理飞书私聊
    {      "agentId": "main",      "match": {        "channel": "feishu",        "accountId": "default"
      }
    },    // 小夏:协调员,处理飞书特定群聊
    {      "agentId": "coordinator",      "match": {        "channel": "feishu",        "accountId": "default",        "peer": { "kind": "channel", "id": "oc_xxx" }  // 群聊用 kind:channel
      }
    },    // 其他 Agent 通常不需要直接接收消息,通过小夏分发
  ],  // ==================== A2A 通信 ====================
  "tools": {    "agentToAgent": { "enabled": true }
  },  // ==================== 全局默认值 ====================
  "agents": {
    defaults: {
      model: { primary: "minimax-portal/MiniMax-M2.7" },
      subagents: {
        model: "minimax-portal/MiniMax-M2",  // 子代理用便宜模型
        maxSpawnDepth: 1,
        maxConcurrent: 3
      }
    },
    list: [
      { id: "main", model: { primary: "minimax-portal/MiniMax-M2.7" } },
      { id: "coordinator", model: { primary: "minimax-portal/MiniMax-M2.7" } },
      { id: "dev-assistant", model: { primary: "minimax-portal/MiniMax-M2" } },
      { id: "content-assistant", model: { primary: "minimax-portal/MiniMax-M2" } },
      { id: "ops-assistant", model: { primary: "minimax-portal/MiniMax-M2" } },
      { id: "research-assistant", model: { primary: "minimax-portal/MiniMax-M2" } },
    ]
  }
}

binding 配置字段说明: | 字段 | 说明 | |------|------| | agentId | Agent 标识符(不是 agent!来源:/gateway/configuration) | | match.channel | 渠道名称(如 feishu、telegram) | | match.accountId | 账号标识,default 表示默认账号 | | match.peer.kind | user(私聊)或 channel(群聊) | | match.peer.id | 用户或群组的 ID(ou_ 开头为用户,oc_ 开头为群组) |


Agent 间通信:3 种通话方式的使用场景

方式 1:sessions_spawn(推荐用于任务分发)

场景: 需要创建独立的后台任务

// 开发助理收到任务sessions_spawn({
  agentId: "dev-assistant",
  task: "开发 Token 监控脚本,每天早上 6 点检查使用量",
  label: "token-monitor-dev",
  mode: "run"  // 一次性任务,完成后通知})// 返回 Session Key: agent:dev-assistant:subagent:xxx

使用时机:

  • 需要创建新会话来执行任务

  • 任务需要独立运行、不阻塞主流程

  • 需要跟踪和管理子任务

方式 2:sessions_send(推荐用于通知)

场景: 给已有的会话发消息

// 开发完成后,通知内容助理sessions_send({
  agentId: "content-assistant",
  message: "Token 监控脚本开发完成,源码在 /scripts/token-monitor.sh,请写使用文档"})// 通知运维助理部署sessions_send({
  agentId: "ops-assistant",
  message: "Token 监控脚本已就绪,请部署到生产环境并配置监控"})

使用时机:

  • 轻量级通知,不需要创建新会话

  • 协作流程中的上下游通知

  • 任务状态更新

方式 3:subagents(用于管理)

场景: 查看、接管、终止后台任务

// 查看所有后台任务subagents({ action: "list" })// 返回: [{ sessionId: "agent:dev-assistant:subagent:xxx", status: "running", ... }]// 接管任务(接管控制权,继续对话)subagents({ action: "steer", sessionId: "agent:dev-assistant:subagent:xxx" })// 终止任务subagents({ action: "kill", sessionId: "agent:dev-assistant:subagent:xxx" })

使用时机:

  • 查看有哪些后台任务在运行

  • 需要干预正在运行的任务

  • 取消不需要的任务


完整协作流程示例

场景:超哥说"开发一个 Token 监控脚本"

Step 1:奇奇接收并分派

// 奇奇收到任务,分析后分派给小夏sessions_send({
  agentId: "coordinator",
  message: "超哥需要 Token 监控脚本,请协调开发"})

Step 2:小夏分派给开发助理

// 小夏创建开发任务sessions_spawn({
  agentId: "dev-assistant",
  task: "开发 Token 监控脚本:\n1. 位置:/root/.openclaw/workspace/scripts/token-monitor.sh\n2. 功能:每天早上 6 点检查 token 使用量\n3. 输出:发送报告到超哥飞书",
  label: "token-monitor-script",
  mode: "run"})

Step 3:开发助理执行并通知

// 开发助理完成开发后sessions_send({
  agentId: "content-assistant",
  message: "Token 监控脚本已完成,请写使用说明:\n位置:/root/.openclaw/workspace/scripts/token-monitor.sh"})

sessions_send({
  agentId: "ops-assistant",
  message: "Token 监控脚本已就绪,请:\n1. 设置执行权限\n2. 配置 cron(每天 6:00)\n3. 添加到健康检查"})

Step 4:内容助理和运维助理并行执行

// 内容助理完成后sessions_send({
  agentId: "coordinator",
  message: "Token 监控脚本使用文档已完成:docs/token-monitor-usage.md"})// 运维助理完成后sessions_send({
  agentId: "coordinator",
  message: "Token 监控脚本已部署完成,cron 已配置"})

Step 5:小夏验收并汇报

// 小夏验收通过后sessions_send({
  agentId: "main",
  message: "Token 监控脚本开发完成:\n- 脚本:/root/.openclaw/workspace/scripts/token-monitor.sh\n- 文档:docs/token-monitor-usage.md\n- 状态:已部署,每天 6:00 执行"})

Step 6:奇奇汇报超哥

超哥,Token 监控脚本已完成!

📍 脚本位置:/root/.openclaw/workspace/scripts/token-monitor.sh
📅 执行时间:每天早上 6:00📖 使用文档:docs/token-monitor-usage.md
✅ 状态:已部署并配置监控

5 个容易踩的坑

坑 1:maxConcurrent 默认是 1 不是 8

agents:
  list:
    - id: coordinator
      maxConcurrent: 3   # 需要显式设置才能提高并发

坑 2:子代理不能嵌套 spawn

agents:
  defaults:
    subagents:
      maxSpawnDepth: 1  # 默认值,子代理不能再 spawn

坑 3:子代理只注入 AGENTS.md + TOOLS.md

spawn 子代理时,SOUL.md、IDENTITY.md、USER.md 不会自动注入。

坑 4:binding 用 agent 而不是 agentId

// ❌ 错误{ "agent": "main", ... }// ✅ 正确{ "agentId": "main", ... }

坑 5:QQ 通道不支持 thread binding

// ❌ QQ 通道会报错sessions_spawn({ mode: "session", thread: true })// ✅ QQ 通道用 run 模式 + 文件接力sessions_spawn({ mode: "run", ... })

完整配置清单

配置项正确值来源
sessions_spawn工具调用(JSON),不是 bash 命令/tools/subagents
sessions_send工具调用,发送消息到已有会话/concepts/session-tool
subagents只能 list/steer/kill,不能 spawn/tools/subagents
sessions_list vs subagentssessions_list 查所有会话;subagents 仅当前会话子代理/concepts/session-tool
agents.list[]Agent 定义在 list 数组,不是 agents.entries/concepts/multi-agent
bindings[].agentId是 agentId,不是 agent/gateway/configuration
bindings顶层配置,与 channels 同级/gateway/configuration
Session Keyagent:<agentId>:subagent:<uuid>/tools/subagents
maxConcurrent默认 1,需显式设置/concepts/multi-agent
maxSpawnDepth默认 1,子代理不可嵌套/tools/subagents
tools.agentToAgent.enabled必须 true/concepts/multi-agent
子代理上下文AGENTS.md + TOOLS.md/concepts/multi-agent
mode: "session"需 thread: true,仅飞书支持/tools/subagents
QQ 通道不支持 thread,用 run + 文件接力/tools/subagents

有问题欢迎留言。


📚 出处引用

本文档内容基于 OpenClaw 官方文档验证:

  • OpenClaw 官方文档: https://docs.openclaw.ai/

  • OpenClaw GitHub 仓库: https://github.com/openclaw/openclaw

关键文档章节(全部经过官方文档验证)

主题官方文档位置
sessions_spawn 工具调用https://docs.openclaw.ai/tools/subagents
binding 路由配置https://docs.openclaw.ai/gateway/configuration
agents CLI 命令https://docs.openclaw.ai/cli/agents
Session Tools(sessions_list/subagents 区别)https://docs.openclaw.ai/concepts/session-tool
多 Agent 路由https://docs.openclaw.ai/concepts/multi-agent
错误处理/重试策略https://docs.openclaw.ai/concepts/retry