🤝 OpenClaw 多Agent协作模式详解

子Agent编排、会话管理与工作流实战 — 让多个Agent像团队一样协作

TL;DR:OpenClaw的多Agent系统让你可以把复杂任务拆分给多个专职Agent并行处理。通过sessions_spawn生成子Agent,sessions_yield等待结果,sessions_send跨会话通信——这就是AI版的"团队协作"。

📋 目录

  1. 架构总览:OpenClaw的多Agent模型
  2. 子Agent生成(sessions_spawn)
  3. 五大协作模式详解
  4. 会话管理与通信
  5. 实战案例:自动化SEO工作流
  6. 性能优化与最佳实践
  7. 常见问题

🏗️ 架构总览

OpenClaw的多Agent架构基于会话(Session)模型。每个Agent运行在独立的会话中,通过消息传递进行协作。

┌─────────────────────────────────────────────┐ │ 主Agent (Parent) │ │ sessions_spawn() 生成子Agent │ │ │ │ │ ┌──────────────┼──────────────┐ │ │ ▼ ▼ ▼ │ │ ┌────────┐ ┌────────┐ ┌────────┐ │ │ │子Agent1│ │子Agent2│ │子Agent3│ │ │ │(搜索) │ │(分析) │ │(生成) │ │ │ └────┬───┘ └────┬───┘ └────┬───┘ │ │ │ │ │ │ │ └────────────┼────────────┘ │ │ ▼ │ │ sessions_yield() 等待结果 │ │ │ │ │ ▼ │ │ 汇总并输出结果 │ └─────────────────────────────────────────────┘

核心API

API功能使用场景
sessions_spawn生成子Agent会话需要并行处理任务时
sessions_yield等待子Agent完成spawn之后等待结果
sessions_send向其他会话发送消息跨Agent通信
sessions_list列出可见会话查看当前运行状态
sessions_history获取会话历史调试、回溯

🚀 子Agent生成

基础用法

// 生成一个子Agent执行搜索任务
sessions_spawn({
  task: "搜索最新的AI Agent框架对比文章,总结前5篇的核心观点",
  taskName: "ai-agent-search",
  mode: "run",           // 一次性执行
  runtime: "subagent"
})

// 等待子Agent完成
sessions_yield({
  message: "等待搜索结果..."
})

高级参数

// 带模型指定和超时控制的子Agent
sessions_spawn({
  task: "分析网站SEO数据并生成报告",
  taskName: "seo-analysis",
  mode: "run",
  runtime: "subagent",
  model: "gpt-4o",              // 指定模型
  runTimeoutSeconds: 300,       // 5分钟超时
  context: "fork",              // 继承父会话上下文
  label: "seo-analyzer"         // 便于后续定位
})
⚠️ 注意:

🎯 五大协作模式

模式一:扇出-汇聚(Fan-out / Fan-in)

最常用的模式。主Agent将任务拆分给多个子Agent并行处理,然后汇总结果。

┌──→ 子Agent A ──┐ 主Agent ├──→ 子Agent B ──┼──→ 汇总结果 └──→ 子Agent C ──┘
// 并行执行三个搜索任务
const tasks = [
  "搜索OpenClaw最新版本特性",
  "搜索ClawHub热门Skills排行",
  "搜索AI Agent安全最佳实践"
]

// 同时生成三个子Agent
tasks.forEach((task, i) => {
  sessions_spawn({
    task: task,
    taskName: `search-${i}`,
    mode: "run"
  })
})

// 等待所有完成
sessions_yield({ message: "等待三个搜索任务完成..." })
模式二:流水线(Pipeline)

任务按顺序传递,每个Agent处理一个阶段。

数据采集 → 内容分析 → 报告生成 → 格式优化 Agent A Agent B Agent C Agent D
// 流水线:每个步骤依赖上一步的输出
// Step 1: 采集
sessions_spawn({
  task: "采集目标网站的页面数据,输出JSON格式",
  taskName: "pipeline-step1-crawl"
})
sessions_yield({ message: "等待采集完成..." })

// Step 2: 分析(从session history获取Step 1的结果)
const crawlResult = sessions_history({ sessionKey: "pipeline-step1-crawl" })
sessions_spawn({
  task: `基于以下数据进行SEO分析:${crawlResult}`,
  taskName: "pipeline-step2-analyze"
})
sessions_yield({ message: "等待分析完成..." })
模式三:监督者(Supervisor)

主Agent作为监督者,动态分配任务给工作Agent,并审核结果。

// 监督者模式:主Agent审核子Agent的输出
sessions_spawn({
  task: "生成一篇关于AI Agent安全的文章草稿",
  taskName: "writer-agent",
  mode: "run"
})
sessions_yield({ message: "等待草稿..." })

// 主Agent审核草稿
const draft = sessions_history({ sessionKey: "writer-agent" })
// 如果质量不达标,派新的子Agent修改
if (needsRevision(draft)) {
  sessions_spawn({
    task: `修改以下文章,加强安全部分的论述:${draft}`,
    taskName: "revision-agent",
    mode: "run"
  })
}
模式四:辩论(Debate)

多个Agent从不同角度分析同一问题,主Agent综合各方观点。

// 让两个Agent从不同角度分析
sessions_spawn({
  task: "从技术可行性角度分析:OpenClaw是否适合企业级部署?给出支持论据",
  taskName: "debate-pro",
  mode: "run"
})
sessions_spawn({
  task: "从风险和挑战角度分析:OpenClaw企业级部署的潜在问题。给出反对论据",
  taskName: "debate-con",
  mode: "run"
})
sessions_yield({ message: "等待双方论证完成..." })

// 综合双方观点,生成平衡的分析报告
模式五:专家委员会(Expert Committee)

针对复杂问题,召集不同领域的专家Agent共同决策。

// 专家委员会:不同领域专家共同评估
const experts = [
  { task: "从SEO角度评估这个网站优化方案", name: "seo-expert" },
  { task: "从性能角度评估这个网站优化方案", name: "perf-expert" },
  { task: "从用户体验角度评估这个网站优化方案", name: "ux-expert" }
]

experts.forEach(e => sessions_spawn({ task: e.task, taskName: e.name, mode: "run" }))
sessions_yield({ message: "等待专家评审..." })

📡 会话管理与通信

查看活跃会话

// 列出所有活跃会话
sessions_list({
  kinds: ["subagent"],
  activeMinutes: 30,      // 最近30分钟活跃的
  includeLastMessage: true
})

跨会话通信

// 向特定会话发送消息
sessions_send({
  sessionKey: "seo-analyzer",
  message: "请额外检查移动端适配情况",
  timeoutSeconds: 60
})

使用subagents工具监控

// 查看当前子Agent状态
subagents({
  action: "list",
  recentMinutes: 60
})

🔥 实战案例:自动化SEO工作流

以下是一个完整的多Agent SEO工作流,从竞品分析到内容生成全自动化:

// 完整的多Agent SEO工作流
// 主Agent作为编排者

// Phase 1: 并行数据采集
sessions_spawn({
  task: "爬取竞品网站 futuretools.io 的前20个页面,提取标题、描述、关键词",
  taskName: "crawl-competitor-1",
  mode: "run"
})
sessions_spawn({
  task: "爬取竞品网站 thereisanaiforthat.com 的前20个页面,提取标题、描述、关键词",
  taskName: "crawl-competitor-2",
  mode: "run"
})
sessions_spawn({
  task: "搜索本周AI Agent领域的热门关键词和趋势",
  taskName: "keyword-research",
  mode: "run"
})

sessions_yield({ message: "等待数据采集完成..." })

// Phase 2: 分析与策略
const [comp1, comp2, keywords] = [
  sessions_history({ sessionKey: "crawl-competitor-1" }),
  sessions_history({ sessionKey: "crawl-competitor-2" }),
  sessions_history({ sessionKey: "keyword-research" })
]

sessions_spawn({
  task: `基于以下数据,制定SEO内容策略:
竞品1数据:${comp1}
竞品2数据:${comp2}
关键词数据:${keywords}
输出:10个文章主题+目标关键词+内容大纲`,
  taskName: "seo-strategy",
  mode: "run"
})

sessions_yield({ message: "等待策略制定..." })

// Phase 3: 批量内容生成
const strategy = sessions_history({ sessionKey: "seo-strategy" })
// 根据策略生成内容...

⚡ 性能优化

最佳实践清单
💡 性能提示:如果你的任务可以拆分成独立的子任务,优先使用mode="run"的一次性子Agent。它们执行完自动销毁,不会占用额外资源。持久会话(mode="session")适合需要多轮交互的场景。