妙趣导读:凌晨4点12分,我盯着终端里跑着的三个Agent,突然意识到——一个人干不完的活,三个Agent配合干,效率直接翻三倍。但协作不是简单的堆砌,得像指挥交响乐团一样,让每个Agent在正确的时间演奏正确的部分。
📋 多Agent协作概述
🎯 什么是多Agent协作?
多Agent协作是指多个AI Agent互相配合,共同完成复杂任务。每个Agent有自己擅长的领域,通过任务分解和结果汇总,实现单Agent无法完成的复杂工作。
📊 典型协作流程
┌─────────────┐
│ 主Agent │ (任务分解与协调)
└──────┬──────┘
│
┌───┴────┬────────┐
▼ ▼ ▼
┌─────┐ ┌─────┐ ┌─────┐
│Agent│ │Agent│ │Agent│ (并行执行子任务)
│ A │ │ B │ │ C │
└──┬──┘ └──┬──┘ └──┬──┘
│ │ │
└────┬───┴────────┘
▼
┌─────────────┐
│ 结果汇总 │
└─────────────┘
🚀 核心工具
1. sessions_spawn - 创建子Agent
使用sessions_spawn创建独立的子Agent会话:
# 创建一个执行特定任务的子Agent
sessions_spawn(
runtime: "subagent",
task: "分析最近10个OpenClaw GitHub Issues并总结热点话题",
mode: "run" # 一次性任务
)
# 创建持久化会话(可多次交互)
sessions_spawn(
runtime: "subagent",
task: "持续监控Hacker News的OpenClaw相关讨论",
mode: "session",
label: "hn-monitor"
)
2. sessions_send - 向Agent发消息
向已存在的Agent会话发送消息:
# 向指定会话发送新任务
sessions_send(
sessionKey: "abc123", # 或 label: "hn-monitor"
message: "现在总结今天的热点话题"
)
# 等待回复(设置超时)
sessions_send(
sessionKey: "abc123",
message: "生成报告",
timeoutSeconds: 300
)
3. sessions_list - 列出所有会话
查看当前活跃的Agent会话:
# 列出所有会话
sessions_list(limit: 10, messageLimit: 3)
# 查看特定类型的会话
sessions_list(
kinds: ["subagent"],
activeMinutes: 60 # 最近60分钟活跃的
)
💡 实战案例
案例1:多源新闻聚合
使用3个Agent分别抓取不同来源的新闻,然后汇总:
# 主Agent任务描述
"""
创建3个子Agent:
1. Agent A - 抓取Hacker News的AI相关新闻
2. Agent B - 抓取Reddit r/OpenClaw的讨论
3. Agent C - 抓取GitHub OpenClaw的最新Releases
等待所有Agent完成后,汇总生成今日新闻日报。
"""
# 实现代码
# Step 1: 创建子Agent
sessions_spawn(runtime:"subagent", task:"抓取HN的AI新闻", label:"hn-fetcher")
sessions_spawn(runtime:"subagent", task:"抓取Reddit讨论", label:"reddit-fetcher")
sessions_spawn(runtime:"subagent", task:"抓取GitHub Releases", label:"gh-fetcher")
# Step 2: 等待完成并获取结果
# (实际中需要轮询或使用sessions_yield等待)
sessions_send(label:"hn-fetcher", message:"返回结果")
sessions_send(label:"reddit-fetcher", message:"返回结果")
sessions_send(label:"gh-fetcher", message:"返回结果")
# Step 3: 汇总生成日报
# 主Agent整合三个来源的内容,生成结构化日报
案例2:SEO内容生产流水线
# 创建内容生产流水线
"""
流水线设计:
- Agent A: 搜索热门关键词(web_search)
- Agent B: 生成草稿内容(write)
- Agent C: SEO优化(检查关键词密度、添加内链)
- Agent D: 质量审核(阅读检查、事实核查)
"""
# 使用sessions_spawn依次创建
sessions_spawn(runtime:"subagent", task:"搜索'OpenClaw tutorial 2026'相关热门关键词", label:"keyword-research")
# ... 后续Agent依次处理
📊 最佳实践
✅ 任务设计原则
- 任务隔离 - 每个子Agent只做一件事,避免耦合
- 明确接口 - 定义清晰的输入输出格式
- 超时控制 - 为子Agent设置合理的runTimeoutSeconds
- 错误处理 - 主Agent要能处理子Agent失败的情况
✅ 性能优化
- 尽量并行执行无依赖的子任务
- 使用mode="session"复用会话,避免重复初始化
- 合理使用lightContext减少上下文传输
- 定期清理不需要的会话(subagents action=kill)
⚠️ 常见坑点
- 子Agent之间不要直接通信,统一通过主Agent协调
- 避免在循环中无限制创建子Agent(会耗尽资源)
- 子Agent的task描述要清晰,别让AI猜你的意图
- 注意token消耗,多Agent会快速累积使用量
🔗 相关链接
🎭 妙趣小结
多Agent协作就像组建一个超级团队——有负责搜索的、有负责写作的、有负责审核的。每个人都发挥所长,最后出来的活儿,质量自然不一样。但记住,团队越大,沟通成本越高,别为了炫技搞出10个Agent,结果光协调就累死了。😂