这篇文章写给谁: 你已经在用 OpenClaw 了,但发现一个 Agent 处理复杂任务时力不从心——要么上下文太长导致"失忆",要么一个任务链条太长容易出错。这篇文章教你如何让多个 Agent 分工协作,像一个小型 AI 团队一样为你工作。
一个 Agent 处理所有事情,就像让一个人同时当厨师、服务员、收银员——能做,但效率低、容易出错。
| 问题 | 原因 | 后果 |
多 Agent = 让多个 AI 各司其职,像一个小团队:
你(老板)
├── Agent A(秘书)→ 处理邮件、日程、提醒
├── Agent B(程序员)→ 写代码、审查 PR、部署
├── Agent C(调研员)→ 搜索信息、整理报告
└── Agent D(运营)→ 写内容、发布、数据分析
每个 Agent 有自己的独立上下文、专属 Skills、独立记忆,互不干扰但能互相通信。
| 方式 | 难度 | 适合场景 | 核心思路 |
| 方式一:Multi-Session(多会话) | |||
| 方式二:Agent Send(代理发送) | |||
| 方式三:Sub-Agents(子代理) | |||
| 方式四:ACP 协议(Agent Communication Protocol) |
在同一个 OpenClaw 实例中,创建多个独立的对话会话。每个会话有自己的上下文,互不干扰。
类比: 你的手机可以同时开多个微信聊天窗口——和 A 聊工作、和 B 聊生活,互不干扰。
方式一:通过不同聊天渠道自动隔离
当你同时连接了 Telegram 和飞书时,OpenClaw 会自动为每个渠道创建独立会话:
Telegram → Session 1(你的私人助手)
飞书 → Session 2(你的工作助手)
Web UI → Session 3(调试/测试用)
方式二:在配置中手动创建多个 Agent Session
编辑 ~/.openclaw/openclaw.json:
{
"agents": {
"sessions": {
"personal": {
"model": { "primary": "zai/glm-5" },
"workspace": "~/.openclaw/workspace/personal",
"soul": "你是我的私人助手,帮我处理生活琐事"
},
"work": {
"model": { "primary": "deepseek/deepseek-chat" },
"workspace": "~/.openclaw/workspace/work",
"soul": "你是我的工作助手,帮我处理工作相关任务"
},
"coding": {
"model": { "primary": "zai/glm-5" },
"workspace": "~/.openclaw/workspace/coding",
"soul": "你是一个资深程序员,帮我写代码和审查代码"
}
}
}
}
重启网关后,每个 Session 就像一个独立的"员工":
{
"channels": {
"telegram": {
"enabled": true,
"token": "你的 Telegram Token",
"session": "personal"
},
"feishu": {
"enabled": true,
"appId": "xxx",
"appSecret": "xxx",
"session": "work"
}
}
}
这样:
当你的需求是"隔离"而不是"协作"的时候。比如你不希望工作聊天记录出现在私人助手的上下文中。
让一个 Agent 主动给另一个 Agent 发送消息,触发对方执行任务,然后拿到结果。
类比: 公司里 A 同事写了一份报告,通过内部邮件发给 B 同事审阅,B 审完后把意见回给 A。
OpenClaw 内置了两个关键工具:
| 工具 | 功能 |
场景:让"调研 Agent"搜索信息,然后让"写作 Agent"写文章
首先确保你配置了多个 Session(见方式一)。
然后在主 Agent 的对话中:
帮我完成一篇关于 AI 编程趋势的文章:
1. 先让调研 Agent 搜索 2026 年最新的 AI 编程工具和趋势
2. 把调研结果发给写作 Agent
3. 让写作 Agent 基于调研结果写一篇 2000 字的文章
OpenClaw 会自动:
你也可以直接在对话中指定:
请使用 agent_send 工具,向 coding 会话发送以下消息:
"帮我审查这段代码有没有安全漏洞:[代码内容]"
或者通过命令行:
# 列出所有 Agent 会话
openclaw agents list
# 向指定会话发送消息
openclaw agents send --session coding --message "帮我写一个排序算法"
发送消息后会等待对方 Agent 处理完并返回结果,主 Agent 拿到结果后才继续下一步。适合需要"串行"处理的场景。
主 Agent 在处理复杂任务时,自动创建临时的子 Agent 来处理特定子任务。子 Agent 完成后自动销毁,结果返回给主 Agent。
类比: 项目经理接到一个大项目,把它拆成多个小任务,分给不同的临时工去做,做完后汇总给经理。
| 对比 | Agent Send | Sub-Agents |
| 临时创建,用完即销毁 | ||
你只需要描述一个复杂任务,OpenClaw 会自动拆分:
帮我做一份完整的竞品分析报告:
- 分析市面上 5 个主要的 AI 编程工具
- 每个工具的功能、价格、优缺点
- 最后给出对比表格和推荐建议
OpenClaw 可能会自动创建:
编辑 ~/.openclaw/openclaw.json:
{
"agents": {
"defaults": {
"subAgents": {
"enabled": true,
"maxConcurrent": 5,
"model": {
"primary": "zai/glm-4-flash"
},
"timeout": 120000
}
}
}
}
| 参数 | 含义 | 建议值 |
主 Agent 负责规划和汇总,用好模型(如 GLM-5);子 Agent 负责执行具体子任务,用便宜模型(如 GLM-4-Flash 免费),这样既有质量又省钱。
ACP = Agent Communication Protocol(代理通信协议),是让不同 OpenClaw 实例之间互相通信的标准协议。
类比: 前三种方式是"同一家公司内部通信",ACP 是"不同公司之间通信"。
你的 Mac mini(家里)运行 OpenClaw A → 负责个人事务
你的云服务器运行 OpenClaw B → 负责监控和自动化
你的公司 Mac 运行 OpenClaw C → 负责工作
三者通过 ACP 互联互通:
- A 可以让 B 帮忙跑一个定时任务
- B 监控到异常可以通过 A 发 Telegram 通知你
- C 可以把工作报告发给 A 归档
在每台设备的 OpenClaw 上启用 ACP:
{
"agents": {
"acp": {
"enabled": true,
"peers": [
{
"name": "home-server",
"url": "wss://home.example.com:18789",
"token": "shared-secret-token-123"
},
{
"name": "cloud-server",
"url": "wss://cloud.example.com:18789",
"token": "shared-secret-token-456"
}
]
}
}
}
重启网关后即可互联。
在任一 Agent 中说:
请通过 ACP 协议,让 cloud-server 上的 Agent 检查一下服务器的磁盘空间和内存使用情况
或在命令行:
openclaw agents send --peer cloud-server --message "检查服务器健康状态"
!! 安全提醒 !!
┌─────────────────────────────────────────┐
│ 你(通过 Telegram) │
└─────────────┬───────────────────────────┘
│
┌─────────▼─────────┐
│ 主 Agent(调度) │ ← 接收你的指令,分配任务
└──┬──────┬──────┬──┘
│ │ │
┌────▼──┐ ┌─▼───┐ ┌▼─────┐
│邮件管家│ │日程助│ │文件管│
│Session│ │理Ses│ │理Ses │
│ │ │sion │ │sion │
└───────┘ └─────┘ └──────┘
配置:
{
"agents": {
"sessions": {
"dispatcher": {
"model": { "primary": "zai/glm-5" },
"soul": "你是任务调度员,负责理解用户意图并将任务分配给合适的专员"
},
"email": {
"model": { "primary": "zai/glm-4-flash" },
"soul": "你是邮件专员,只负责处理邮件相关的任务",
"skills": ["gmail-pro"]
},
"calendar": {
"model": { "primary": "zai/glm-4-flash" },
"soul": "你是日程专员,只负责日历和提醒相关的任务",
"skills": ["google-calendar"]
},
"files": {
"model": { "primary": "zai/glm-4-flash" },
"soul": "你是文件管理专员,只负责文件整理和搜索",
"skills": ["file-organizer"]
}
}
}
}
用户:"帮我把这个 B 站视频做成一篇公众号文章"
│
▼
Agent 1(抓取员)→ 抓取视频字幕/内容
│
▼
Agent 2(大纲师)→ 根据内容生成文章大纲
│
▼
Agent 3(写手) → 根据大纲写完整文章
│
▼
Agent 4(编辑) → 润色、配图、适配公众号格式
│
▼
输出最终文章
实现方式: 主 Agent 用 agent_send 依次调用四个 Session,每个 Session 拿到上一步的结果作为输入。
你:"审查 my-project 仓库的最新 5 个 PR"
│
▼
主 Agent → 自动创建 5 个 Sub-Agent(并行)
│
├── Sub-Agent 1 → 审查 PR #101
├── Sub-Agent 2 → 审查 PR #102
├── Sub-Agent 3 → 审查 PR #103
├── Sub-Agent 4 → 审查 PR #104
└── Sub-Agent 5 → 审查 PR #105
│
▼
主 Agent ← 汇总 5 份审查报告
│
▼
输出完整的审查摘要
TIP 1 - 每个 Agent 的职责要明确
在 SOUL.md 中用"你是 xxx 专员,只负责 xxx 相关的任务"来限定。职责越明确,效果越好。
TIP 2 - 主 Agent 用好模型,子/辅助 Agent 用便宜模型
调度和汇总需要强推理,用 GLM-5 或 Claude。执行具体任务的用 GLM-4-Flash(免费)或 DeepSeek(便宜)。TIP 3 - 先跑通单 Agent,再上多 Agent
不要一开始就搞复杂的多 Agent 架构。先确保单个 Agent 能正常工作,再逐步拆分。TIP 4 - 用 Cron + Multi-Session 实现自动化流水线
定时任务触发主 Agent → 主 Agent 通过 agent_send 调度其他 Agent → 结果汇总后推送到 Telegram。TIP 5 - 每个 Session 用独立 workspace
| 问题 | 原因 | 解决 |
你的需求是什么?
│
├── 任务简单,聊天就能搞定
│ └── 用单 Agent 就够了,不要过度设计
│
├── 任务多但互不相关(工作 + 生活)
│ └── Multi-Session:给不同场景开不同会话
│
├── 一个复杂任务需要多步骤(调研→写作→发布)
│ └── Agent Send:让 Agent 之间传递结果
│
├── 一个任务可以拆成多个并行子任务
│ └── Sub-Agents:自动并行处理
│
└── 多台设备上的 Agent 需要协作
└── ACP 协议:跨设备通信
记住: 多 Agent 不是"越多越好"。每多一个 Agent 就多一层复杂度和成本。从最简单的方案开始,确认真有需要了再加。
# 列出所有 Agent 会话
openclaw agents list
# 向指定会话发送消息
openclaw agents send --session <session-name> --message "你的消息"
# 向远程 Peer 发送消息(ACP)
openclaw agents send --peer <peer-name> --message "你的消息"
# 查看 Agent 状态
openclaw agents status
# 重启所有 Agent
openclaw gateway restart
本文基于 OpenClaw 2026 年 3 月版本编写。多 Agent 功能仍在快速迭代中,请以官方文档为准。
官方文档:docs.openclaw.ai
- END -
夜雨聆风