从单兵作战到团队协作,打造你的 AI 虚拟团队
一、什么是 Agent to Agent?
核心概念
传统模式:用户 → 单个 AI → 用户
Agent to Agent 模式:
用户 → 主Agent → 专家Agent A
→ 专家Agent B
→ 专家Agent C
← 协作结果 ← 用户
OpenClaw 支持的两种模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
| 子代理 (Sub-agent) | 临时创建,任务完成后销毁 | 简单任务拆分 |
| 多 Agent 团队 | 独立运行的多个 Agent 实例 | 长期协作、角色分工 |
二、A2A 协议(Agent2Agent)
什么是 A2A?
A2A(Agent2Agent)是 OpenClaw 支持的开放协议,让不同 AI Agent 可以:
- 相互通信:Agent 间发送消息
- 交换信息:共享上下文和数据
- 协调任务:分工协作完成复杂任务
A2A 协议已被 Linux Foundation 接纳,150+ 组织支持
架构图
┌─────────────────────────────────────────────────────────────────┐
│ A2A Protocol Layer │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Agent A │ ←→ │ Agent B │ ←→ │ Agent C │ │
│ │ (主控) │ │ (写作) │ │ (编码) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ │
│ │ │ │ │
│ └───────────────┼───────────────┘ │
│ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Shared Context (共享上下文) │ │
│ │ • 任务队列 • 结果共享 • 状态同步 │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
三、多 Agent 架构方案
方案对比
| 方案 | 隔离级别 | 配置复杂度 | 成本 | 适用场景 |
|---|---|---|---|---|
| A. 单 Agent 多 Session | 低 | ⭐ | 💰 | 个人使用 |
| B. 多 Agent 软隔离 | 中 | ⭐⭐ | 💰💰 | 团队使用(推荐) |
| C. Docker Sandbox | 高 | ⭐⭐⭐ | 💰💰💰 | 企业级安全 |
| D. 多 Gateway 硬隔离 | 最高 | ⭐⭐⭐⭐ | 💰💰💰💰 | 金融/医疗 |
四、方案 B:多 Agent 软隔离(推荐)
架构图
┌─────────────────────────────────────────────────────────────────┐
│ 单一 Gateway 实例 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Telegram/Discord/飞书 │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Router │ 根据 channel/peer 路由到不同 Agent │
│ └──────┬──────┘ │
│ │ │
│ ┌─────┴─────┬─────────────┬─────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │main │ │writer│ │coder │ │brain │ │
│ │主控 │ │写作 │ │编码 │ │头脑 │ │
│ │Agent │ │Agent │ │Agent │ │Agent │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │ │ │ │ │
│ │ 独立 workspace 独立 workspace 独立 workspace │
│ │ 独立 memory 独立 memory 独立 memory │
│ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ sessions_send 互通 │
│ │
└─────────────────────────────────────────────────────────────────┘
具体配置步骤
步骤 1:创建多个 Agent
# 创建主控 Agent
openclaw agents add main \
--model anthropic/claude-sonnet-4-6 \
--workspace ~/.openclaw/workspace-main
# 创建写作 Agent(使用 DeepSeek 省钱)
openclaw agents add writer \
--model deepseek/deepseek-chat \
--workspace ~/.openclaw/workspace-writer
# 创建头脑风暴 Agent
openclaw agents add brainstorm \
--model zhipu/glm-4-flash \
--workspace ~/.openclaw/workspace-brainstorm
# 创建编码 Agent
openclaw agents add coder \
--model anthropic/claude-sonnet-4-6 \
--workspace ~/.openclaw/workspace-coder
# 查看所有 Agent
openclaw agents list
步骤 2:配置路由规则
// ~/.openclaw/openclaw.json
{
"agents": {
"main": {
"model": "anthropic/claude-sonnet-4-6",
"workspace": "~/.openclaw/workspace-main"
},
"writer": {
"model": "deepseek/deepseek-chat",
"workspace": "~/.openclaw/workspace-writer"
},
"brainstorm": {
"model": "zhipu/glm-4-flash",
"workspace": "~/.openclaw/workspace-brainstorm"
},
"coder": {
"model": "anthropic/claude-sonnet-4-6",
"workspace": "~/.openclaw/workspace-coder"
}
},
"routing": {
"rules": [
{
"agentId": "main",
"match": {
"channel": "telegram",
"peer": { "kind": "user", "id": "your-user-id" }
}
},
{
"agentId": "writer",
"match": {
"channel": "telegram",
"peer": { "kind": "group", "id": "writer-group-id" }
}
},
{
"agentId": "coder",
"match": {
"channel": "discord",
"peer": { "kind": "channel", "id": "dev-channel-id" }
}
}
],
"default": "main"
}
}
步骤 3:配置 SOUL.md(角色定义)
main Agent 的 SOUL.md:
# 主控 Agent
## 身份
你是团队的协调者,负责分配任务和整合结果。
## 团队成员
- **writer**: 擅长内容创作、文案撰写
- **coder**: 擅长代码编写、技术问题
- **brainstorm**: 擅长头脑风暴、创意生成
## 工作流程
当收到复杂任务时:
1. 分析任务类型
2. 调用对应的专家 Agent
3. 整合结果返回给用户
## 调用示例
使用 sessions_send 工具:
sessions_send(
agentId: "writer",
message: "请写一篇关于 AI Agent 的文章"
)
writer Agent 的 SOUL.md:
# 写作 Agent
## 身份
你是一名专业的内容创作者,擅长各类文案写作。
## 专长
- 技术文章
- 营销文案
- 产品描述
- 邮件撰写
## 输出格式
- 结构清晰
- 语言精炼
- 适合目标受众
五、Agent 间通信
使用 sessions_send
# 主 Agent 调用专家 Agent
# 1. 发送任务给写作 Agent
result = sessions_send(
agentId="writer",
message="请帮我写一段 OpenClaw 多 Agent 功能介绍,100字左右"
)
# 2. 发送任务给编码 Agent
code_result = sessions_send(
agentId="coder",
message="请写一个 Python 函数,实现 sessions_send 功能"
)
# 3. 汇总结果返回用户
final_response = f"""
写作 Agent 的输出:
{result}
编码 Agent 的输出:
{code_result}
"""
使用 sessions_spawn(创建临时子代理)
# 创建临时子代理处理特定任务
sub_agent = sessions_spawn(
model="deepseek/deepseek-chat",
task="分析这段代码的性能瓶颈",
context=current_code
)
# 子代理完成后自动销毁
六、实战案例
案例 1:内容生产流水线
用户:帮我写一篇关于 AI Agent 的技术博客
main Agent:
↓ 调用 brainstorm
brainstorm:生成 5 个选题角度
↓ 返回 main
main Agent:选择最佳角度
↓ 调用 writer
writer:撰写完整文章
↓ 调用 coder(如需代码示例)
coder:生成代码示例
↓ 返回 main
main Agent:整合输出给用户
案例 2:代码审查团队
用户:帮我审查这个 PR
main Agent:
↓ 调用 coder
coder:分析代码逻辑
↓ 调用 writer
writer:生成审查报告
↓ 返回 main
main Agent:输出审查意见
案例 3:多渠道客服
# 配置示例
agents:
sales:
match:
channel: telegram
peer: sales_group
role: 销售咨询
support:
match:
channel: discord
peer: support_channel
role: 技术支持
main:
default: true
role: 总控路由
七、进阶技巧
1. 动态 Agent 选择
在 main Agent 的 SOUL.md 中配置:
## 任务路由规则
根据用户意图自动选择专家:
| 关键词 | 路由到 | 示例 |
|--------|--------|------|
| 写、文章、文案 | writer | "帮我写一篇..." |
| 代码、bug、API | coder | "帮我写代码..." |
| 想法、创意、头脑风暴 | brainstorm | "帮我想想..." |
| 其他 | main 自己处理 | - |
2. 记忆隔离与共享
# 记忆配置
memory:
isolation: true # 每个 Agent 独立记忆
# 可选:共享某些记忆
shared:
- project_context.md # 项目背景共享
- user_preferences.md # 用户偏好共享
3. 成本优化
# 模型选择策略
agents:
main:
model: anthropic/claude-sonnet-4-6 # 主控用强模型
writer:
model: deepseek/deepseek-chat # 写作用便宜模型
coder:
model: anthropic/claude-sonnet-4-6 # 编码需要强模型
brainstorm:
model: zhipu/glm-4-flash # 头脑风暴用快速模型
4. Token 消耗减半技巧
## 主 Agent 的省 Token 策略
1. 简单任务:直接回答,不调用专家
2. 复杂任务:只传递关键信息给专家
3. 结果整合:只返回用户关心的部分
4. 使用 sessions_spawn:临时子代理不保留记忆
示例:
用户问"今天天气"→ main 直接回答
用户问"写一篇深度文章"→ 调用 writer
八、配置速查表
常用命令
# 创建 Agent
openclaw agents add <name> --model <model> --workspace <path>
# 列出所有 Agent
openclaw agents list
# 删除 Agent
openclaw agents remove <name>
# 切换当前 Agent
openclaw agents use <name>
# 查看 Agent 状态
openclaw agents status <name>
# 重启所有 Agent
openclaw gateway restart
工具权限配置
{
"tools": {
"allow": [
"sessions_send", // 允许 Agent 间通信
"sessions_spawn", // 允许创建子代理
"agents_list", // 允许查看 Agent 列表
"memory_search", // 允许搜索记忆
"memory_get" // 允许获取记忆
]
}
}
九、常见问题
Q: Agent 之间如何共享上下文?
# 方式 1:通过 message 传递
sessions_send(
agentId="writer",
message=f"基于以下内容继续写作:{current_context}"
)
# 方式 2:使用共享文件
write("~/.openclaw/workspace-shared/context.md", shared_context)
# 然后 writer Agent 可以读取该文件
Q: 多 Agent 会增加 Token 消耗吗?
会,但可以通过策略优化:
1. 选择合适的模型(便宜模型处理简单任务)
2. 只传递必要信息
3. 使用临时子代理(不保留记忆)
4. 设置 Agent 超时自动终止
实测:优化后 Token 消耗可减少 30-50%
Q: 如何让不同群的 Agent 协作?
// Telegram 群 A 的 Agent 可以调用 Discord 频道 B 的 Agent
{
"crossChannel": {
"enabled": true,
"allowList": ["telegram:group-a", "discord:channel-b"]
}
}
Q: 子代理和独立 Agent 有什么区别?
| 特性 | 子代理 (Sub-agent) | 独立 Agent |
|---|---|---|
| 生命周期 | 临时,任务完成销毁 | 持久运行 |
| 记忆 | 无独立记忆 | 独立 workspace |
| 成本 | 按任务计费 | 持续运行成本 |
| 适用场景 | 一次性任务 | 长期角色分工 |
十、参考资源
官方文档
- OpenClaw 多 Agent 配置:https://docs.openclaw.ai/multi-agent
- A2A 协议规范:https://github.com/a2a-protocol
社区资源
- 多 Agent 配置指南(GitHub Gist):https://gist.github.com/smallnest/c5c13482740fd179e40070e620f66a52
- Telegram 多智能体教程:YouTube 搜索 "OpenClaw Telegram multi-agent"
视频教程
- "我的龙虾小队学会了合作" - YouTube
- "9分钟OpenClaw Telegram多智能体配置保姆级教程"
快速开始
# 1. 创建你的第一个多 Agent 团队
openclaw agents add main --model claude-sonnet-4-6
openclaw agents add writer --model deepseek/deepseek-chat
# 2. 配置路由
# 编辑 ~/.openclaw/openclaw.json
# 3. 重启服务
openclaw gateway restart
# 4. 在 Telegram/Discord 测试
# 不同群消息会路由到不同 Agent
你的 AI 团队就这么简单! 🦞🦞🦞