教程中心多 Agent 编排
进阶

多 Agent 编排:让 AI 团队协同工作

2026.04.22· 55 分钟实战· 🌊 OpenClaw + 🤖 多 Agent

单个 Agent 能力再强,也只是一个"全栈工程师"。多 Agent 编排让你拥有一个"团队"——每个 Agent 专精一件事,协同完成复杂任务。就像公司里产品、开发、测试各司其职。

💡 本教程是多 Agent 进阶内容,建议先完成教程 10(多 Agent 基础)和教程 33(Function Calling)后再学习。

理解多 Agent 编排模式

1 四种编排模式
多 Agent 编排模式:

1️⃣ 主管模式(Supervisor)
   主管 Agent → 分配任务 → 执行 Agent A
                           → 执行 Agent B
                           → 执行 Agent C
   主管汇总结果 → 回复用户
   
   适合:任务明确,需要统一调度

2️⃣ 流水线模式(Pipeline)
   Agent A → Agent B → Agent C → 输出
   (上一个的输出是下一个的输入)
   
   适合:线性流程,如:调研→写作→审校

3️⃣ 辩论模式(Debate)
   Agent A 观点 ←→ Agent B 反驳
         ↓               ↓
      裁判 Agent 综合判断 → 最终输出
   
   适合:需要多角度思考的决策

4️⃣ 协作模式(Collaboration)
   Agent A ──┐
   Agent B ──┤→ 共享工作区 → 协同输出
   Agent C ──┘
   
   适合:复杂项目,需要持续沟通协调

步骤一:角色分工设计

2 搭建内容生产团队

以"内容生产"场景为例,设计多 Agent 团队:

内容生产 Agent 团队设计:

🕵️ 调研 Agent
  职责:搜集资料、整理数据、发现洞察
  技能:网页搜索、数据查询、文档分析
  输出:调研报告(结构化 Markdown)

✍️ 写作 Agent
  职责:根据调研报告撰写初稿
  技能:长文写作、风格模仿、SEO 优化
  输出:文章初稿

🔍 审校 Agent
  职责:检查事实、优化表达、确保标准
  技能:事实核查、语法检查、品牌规范
  输出:审校意见 + 修改建议

📊 数据 Agent
  职责:追踪内容数据、分析效果
  技能:数据查询、趋势分析、报告生成
  输出:效果报告

协作流程:
调研 Agent → 写作 Agent → 审校 Agent
     ↑                          │
     └──── 需要补充资料 ←────────┘
                                  │
                            人工确认 → 发布
                                  │
                            数据 Agent ← 追踪效果

步骤二:Agent 间通信

3 设计通信协议
Agent 间通信设计:

1. 消息格式
   {
     "from": "research-agent",
     "to": "writing-agent",
     "type": "task_result",
     "content": {
       "topic": "AI Agent 市场趋势",
       "data": {...},
       "sources": ["url1", "url2"]
     },
     "timestamp": "2026-04-22T10:00:00Z"
   }

2. 通信模式
   - 直接传递:A 的输出直接传给 B
   - 共享状态:所有 Agent 读写共享工作区
   - 事件驱动:某个事件触发相关 Agent 响应

3. 共享工作区设计
   📋 任务看板
   ┌──────────┬──────────┬──────────┐
   │ 待处理   │ 进行中   │ 已完成   │
   ├──────────┼──────────┼──────────┤
   │ 调研选题 │ 撰写初稿 │ 资料收集 │
   │ ...      │ ...      │ ...      │
   └──────────┴──────────┴──────────┘
   
   📝 共享文档
   - 调研报告(调研 Agent 写入)
   - 文章初稿(写作 Agent 写入)
   - 审校意见(审校 Agent 写入)
   - 修改记录(所有 Agent 可读)

步骤三:任务分解与调度

4 主管 Agent 的调度逻辑
主管 Agent 配置:

你是一个内容团队的调度主管。收到用户需求后:

1. 分析需求
   - 任务类型:调研/写作/审校/全流程
   - 紧急程度:高/中/低
   - 所需角色:哪些 Agent 需要参与

2. 任务分解
   用户:"写一篇 AI Agent 市场分析文章"
   
   分解为:
   Step 1 → 调研 Agent:搜集2026年AI Agent市场数据
   Step 2 → 写作 Agent:基于调研报告撰写5000字文章
   Step 3 → 审校 Agent:检查数据准确性和文章质量
   Step 4 → 如果审校不通过 → 退回写作 Agent 修改
   Step 5 → 人工确认后发布

3. 异常处理
   - 调研 Agent 找不到足够数据 → 通知用户,建议调整方向
   - 写作 Agent 超时 → 检查是否任务太大,考虑拆分
   - 审校 Agent 发现事实错误 → 退回调研 + 写作,标注问题

4. 质量把关
   - 调研报告:至少3个信息源
   - 文章初稿:字数达标、结构完整
   - 审校结果:零P0问题才能交付
🎯 关键设计:主管 Agent 只调度,不干活。它需要保持全局视角,不能陷入某个具体任务的细节。就像好的项目经理不会自己写代码。

步骤四:冲突解决

5 处理 Agent 间的分歧
冲突场景与解决策略:

场景1:审校 Agent 和写作 Agent 意见不一致

  写作 Agent:"这段描述简洁有力,不需要改"
  审校 Agent:"这段表述不够准确,建议重写"
  
  解决:
  1. 主管 Agent 判断严重程度
  2. P0级(事实错误)→ 必须改
  3. P1级(表述优化)→ 写作 Agent 自行决定
  4. 无法判断 → 交给人工

场景2:两个调研 Agent 搜到矛盾信息

  调研 Agent A:"据来源1,市场规模100亿"
  调研 Agent B:"据来源2,市场规模50亿"
  
  解决:
  1. 标注两个来源和各自的可信度
  2. 输出:"不同来源数据差异较大:
     来源1(权威机构): 100亿
     来源2(媒体估算): 50亿
     建议取值范围:50-100亿"
  3. 不替用户做选择

场景3:Agent 陷入死循环

  写作 → 审校驳回 → 修改 → 审校驳回 → ...
  
  解决:
  - 最多循环 3 次
  - 第 3 次仍不通过 → 主管介入
  - 主管决定:接受当前版本 / 人工介入

步骤五:实战编排配置

6 OpenClaw 多 Agent 编排配置
OpenClaw 多 Agent 配置:

team:
  name: content-team
  
  supervisor:
    name: content-manager
    role: 调度主管,负责任务分解和质量把关
    
  agents:
    - name: researcher
      role: 资料调研
      tools: [web_search, document_read]
      max_turns: 5
      
    - name: writer
      role: 内容撰写
      tools: [text_generate, seo_optimize]
      max_turns: 3
      
    - name: reviewer
      role: 审校把关
      tools: [fact_check, grammar_check]
      max_turns: 3

  workflow:
    - step: research
      agent: researcher
      input: user_request
      output: research_report
      
    - step: writing
      agent: writer
      input: research_report
      output: draft_article
      
    - step: review
      agent: reviewer
      input: draft_article
      output: review_result
      
    - step: revision
      agent: writer
      input: review_result
      condition: review_result.has_issues
      output: revised_article
      
  limits:
    max_loop: 3          # 最多循环3次
    total_timeout: 10min # 总超时10分钟
    human_in_loop: true  # 关键节点人工确认