Day1讲了Agentic AI的概念,Day2讲了如何用OpenClaw搭建Agent,Day3讲了如何开发自定义Skill。
今天进入高阶内容:多Agent协作。
当单个Agent无法完成复杂任务时,可以让多个Agent协同工作。有人负责规划,有人负责执行,有人负责质检——分工协作,效率倍增。这就像一个高效的团队,每个人做自己最擅长的事,整体产出远超个体之和。
一、为什么需要多Agent协作
1.1 单Agent的局限性
一个Agent再强大,也有能力边界:
上下文有限。再长的上下文窗口也有极限。当任务需要处理一本书籍那么长的内容时,单个Agent的上下文窗口可能装不下。你可能遇到过这种情况:给Agent一篇长文章让它总结,结果因为文章太长而失败。这就是上下文窗口的局限性。专业的数据分析Agent专门优化了长文本处理能力,可以一次性分析数百页的文档。
专注单一领域。通用Agent在所有领域都还行,但没有一个领域最强。写代码不如专门的开发者Agent,分析数据不如专门的数据分析Agent,写文案不如专门的文案Agent。让通用Agent同时做这三件事,它的表现往往不如三个专业Agent配合。
串行执行慢。一个复杂任务拆成多个步骤,Agent只能串行执行。上一步完成才能执行下一步,三个步骤就要花三倍时间。但如果三个Agent并行执行,同时处理三个子任务,总时间只需要最慢那个Agent的耗时。
1.2 多Agent的优势
多Agent协作解决了这些问题:
并行业务。不同Agent同时处理不同子任务,并行执行,速度翻倍。三个Agent协同,三倍效率。你可以让研究Agent同时搜索多个数据源,让分析Agent同时处理不同维度的数据,让写作用Agent同时撰写不同章节。
专业分工。每个Agent专注自己的领域,输出质量更高。专业的事交给专业的人,这是多Agent协作的核心逻辑。研究者Agent熟悉各种信息检索技巧,分析者Agent精通数据分析方法论,写作者Agent擅长组织文字表达。
横向扩展。能力不够就加Agent,像扩容服务器一样扩容能力。一台服务器不够就加十台,一个Agent不够就加十个。当你的客服系统需要同时服务更多用户时,只需增加客服Agent的数量,无需修改整体架构。
1.3 典型应用场景
客服系统。一个Agent处理咨询,一个处理投诉,一个处理订单。分类路由,各司其职。用户咨询产品功能,投诉Agent不会介入;用户投诉质量问题,咨询Agent不会打扰。每个Agent各司其职,用户得到最专业的回复。
代码开发。架构师Agent设计架构,开发者Agent写代码,测试Agent编写测试用例,审查Agent做代码审查。流水线作业,效率倍增。架构师把任务交给开发者,开发者完成代码后自动转给测试Agent,测试通过后才进入审查阶段。
数据分析。爬虫Agent抓取数据,清洗Agent清洗数据,分析Agent分析数据,可视化Agent生成图表。分工明确,效率倍增。每个环节的专业化确保了数据质量和工作效率。
二、OpenClaw的多Agent架构
2.1 核心组件
OpenClaw的多Agent系统有三个核心组件,理解这三个组件是掌握多Agent协作的基础:
Broker(消息代理)
Broker负责在Agent之间传递消息。相当于邮局或快递网络。Agent A要发消息给Agent B,消息先到Broker,Broker再转发给Agent B。Broker确保消息可靠传递,即使接收方暂时离线也能暂存消息,等对方恢复后再投递。Broker还负责消息路由、格式转换、流量控制等功能。
为什么需要Broker?因为Agent之间不应该直接通信。如果每个Agent都要知道其他所有Agent的地址和协议,系统会变得非常复杂。引入Broker后,每个Agent只需要知道Broker的地址,所有消息都通过Broker转发,系统架构清晰了很多。
Supervisor(监督者)
Supervisor负责任务分解和子Agent调度。它像项目经理一样工作:拿到一个大任务,拆成小任务,分配给合适的Agent,然后汇总结果。Supervisor决定了什么时候让哪个Agent做什么事。
Supervisor的工作流程:接收用户任务→分析任务类型→拆解成子任务→分发给子Agent→收集子结果→汇总成最终答案。Supervisor是整个多Agent系统的核心,它协调各个Sub-Agent的工作,确保任务顺利完成。
Sub-Agent(子Agent)
Sub-Agent是具体的执行者。Supervisor分配任务,Sub-Agent负责执行。每个Sub-Agent专注于特定任务,如数据分析、代码编写、文档处理等。Sub-Agent不知道自己身处多Agent系统,它只需要完成自己被分配的任务即可。
Sub-Agent的特点:独立性强,每个Agent有自己的工作目录、配置、技能;可复用,同一个Agent可以在多个工作流中重复使用;可替换,如果某个Agent效果不好,可以替换成另一个Agent而不影响整体系统。
2.2 三种协作模式
OpenClaw支持三种基本的协作模式,这三种模式覆盖了绝大多数业务场景:
串行执行
A完成交给B,B完成交给C,依次执行。适用于步骤之间有依赖关系的任务。第一步的输出是第二步的输入,第二步的输出是第三步的输入。典型场景:先数据分析,再生成报告,再审核发布。
串行执行的工作流配置示例:
steps:
– name: step_a
agent: agent-a
input: "处理任务A:${user.input}"
output_var: result_a
– name: step_b
agent: agent-b
input: "基于${result_a}处理任务B"
output_var: result_b
– name: step_c
agent: agent-c
input: "基于${result_b}处理任务C"
output_var: result_c
并行分发
↓ ↓ ↓
Agent A Agent B Agent C
↓ ↓ ↓
Supervisor汇总 → 用户
Supervisor把任务拆分成多个独立子任务,同时分发给多个Agent并行执行,最后汇总所有结果。适用于子任务之间没有依赖关系的场景。典型场景:同时从多个数据源获取数据,同时分析多个维度,同时处理多个用户请求。

并行执行的工作流配置示例:
parallel:
– name: task_a
agent: agent-a
input: "任务A:${user.input}"
output_var: result_a
– name: task_b
agent: agent-b
input: "任务B:${user.input}"
output_var: result_b
– name: task_c
agent: agent-c
input: "任务C:${user.input}"
output_var: result_c
merge:
type: aggregate
input: "结果A:${result_a},结果B:${result_b},结果C:${result_c}"
循环迭代
A和B交替执行,每次输出作为下次的输入,直到满足退出条件。适用于需要多轮迭代优化的任务,如文案撰写、代码优化等。循环迭代的核心是根据当前状态决定是否继续,直到输出质量达标或达到最大迭代次数。
循环迭代的工作流配置示例:
loop:
max_iterations: 5
condition: "${quality_score} < 80"
steps:
– name: generate
agent: generator-agent
input: "生成第${iteration}版内容"
output_var: content
– name: evaluate
agent: evaluator-agent
input: "评估内容质量:${content}"
output_var: quality_score
on_exit:
agent: saver-agent
input: "保存最终版本:${content}"
三、配置Sub-Agent
3.1 创建Agent配置目录
每个Agent都有独立的配置目录,包含配置文件、技能定义、工作目录等:
mkdir -p ~/.openclaw/workspace/agents/report-agent
mkdir -p ~/.openclaw/workspace/agents/summarizer-agent
目录结构说明:
research-agent/:研究Agent根目录agent.json:Agent配置文件skills/:技能定义目录workspace/:工作目录,存放临时文件和输出
3.2 研究Agent配置
创建~/.openclaw/workspace/agents/research-agent/agent.json:
"name": "research-agent",
"description": "研究Agent,负责信息检索、资料整理、数据分析",
"model": "minimax-portal/MiniMax-M2.7",
"skills": ["browser-automation", "calculator"],
"workspace": "~/.openclaw/workspace/agents/research-agent",
"timeout": 120,
"retries": 3
}
配置说明:
- name:Agent名称,唯一标识
- description:Agent功能描述,供Supervisor参考
- model:使用的模型,这里使用M2.7
- skills:Agent具备的技能列表
- workspace:工作目录路径
- timeout:单次任务超时时间(秒)
- retries:失败重试次数
3.3 报告Agent配置
创建~/.openclaw/workspace/agents/report-agent/agent.json:
"name": "report-agent",
"description": "报告Agent,负责生成报告、文档撰写、内容优化",
"model": "minimax-portal/MiniMax-M2.7",
"skills": ["docs-writer", "text-editor"],
"workspace": "~/.openclaw/workspace/agents/report-agent",
"timeout": 180,
"retries": 2
}
报告Agent负责根据研究结果生成报告,配置了较长的超时时间(180秒),因为报告生成可能涉及较长的文本处理。
3.4 汇总Agent配置
创建~/.openclaw/workspace/agents/summarizer-agent/agent.json:
"name": "summarizer-agent",
"description": "汇总Agent,整合多源结果,生成统一输出",
"model": "minimax-portal/MiniMax-M2.7",
"skills": ["text-editor"],
"workspace": "~/.openclaw/workspace/agents/summarizer-agent",
"timeout": 60,
"retries": 1
}
汇总Agent只需要简短处理,所以超时时间设置较短。
3.5 注册到主配置
编辑~/.openclaw/openclaw.json,注册所有Agent:
agents: {
entries: {
"supervisor": {
type: "supervisor",
model: "minimax-portal/MiniMax-M2.7",
subAgents: ["research-agent", "report-agent", "summarizer-agent"]
},
"research-agent": {
type: "sub-agent",
configPath: "~/.openclaw/workspace/agents/research-agent/agent.json"
},
"report-agent": {
type: "sub-agent",
configPath: "~/.openclaw/workspace/agents/report-agent/agent.json"
},
"summarizer-agent": {
type: "sub-agent",
configPath: "~/.openclaw/workspace/agents/summarizer-agent/agent.json"
}
}
}
}
关键点说明:
- Supervisor配置type为”supervisor”,这是告诉系统这是一个监督者Agent
- 其他Agent配置为”sub-agent”,表示它们是子Agent
- Supervisor的subAgents数组列出了所有子Agent的标识
- 每个子Agent的configPath指向其配置文件位置
四、配置工作流
4.1 创建工作流目录
工作流配置存放在这个目录,使用YAML格式定义。
4.2 串行工作流
创建~/.openclaw/workspace/workflows/research-report.yaml,一个典型的串行工作流:
description: 研究报告生成工作流
steps:
– name: research
agent: research-agent
input: "${user.input}"
output_var: research_results
– name: analyze
agent: research-agent
input: "深入分析以下内容:${research_results}"
output_var: analyzed_data
– name: write
agent: report-agent
input: "根据分析结果${analyzed_data}撰写报告"
output_var: draft_report
– name: review
agent: report-agent
input: "润色以下报告草稿:${draft_report}"
output_var: final_report
这个工作流四步串行执行:研究→分析→撰写→润色。每一步的输出作为下一步的输入变量,通过${variable_name}语法引用。

工作流配置字段说明:
- name:工作流名称,唯一标识
- description:工作流功能描述
- steps:步骤列表,按顺序执行
- step.name:步骤名称
- step.agent:执行此步骤的Agent名称
- step.input:输入给Agent的提示词
- step.output_var:输出的变量名,供后续步骤引用
4.3 并行工作流
对于可以同时执行的子任务,使用并行工作流:
description: 并行研究工作流,同时从多个角度研究主题
parallel:
– name: market_research
agent: research-agent
input: "市场调研:${user.topic}"
output_var: market_data
– name: competitor_analysis
agent: research-agent
input: "竞品分析:${user.topic}"
output_var: competitor_data
– name: user_research
agent: research-agent
input: "用户研究:${user.topic}"
output_var: user_data
merge:
type: aggregate
input: "市场数据:${market_data},竞品数据:${competitor_data},用户数据:${user_data}"
output_var: combined_research
parallel节点下的三个任务同时执行,最后通过merge汇聚结果。适用于研究类任务,可以同时从市场、竞品、用户三个维度展开研究。
4.4 条件分支
根据条件选择不同的处理路径:
description: 条件分支工作流,根据类型选择处理方式
steps:
– name: classify
agent: research-agent
input: "分析用户问题类型:${user.query}"
output_var: category
– name: route
type: switch
condition: "${category}"
cases:
"技术类":
– name: tech_deepdive
agent: research-agent
input: "深入技术分析:${user.query}"
"商业类":
– name: business_analysis
agent: report-agent
input: "商业模式分析:${user.query}"
"default":
– name: general_analysis
agent: research-agent
input: "综合分析:${user.query}"
route节点根据category的值选择不同的处理路径。如果都不匹配,走default分支。
条件分支适用于客服系统等场景,根据用户问题类型路由到不同的处理Agent。
五、执行工作流
5.1 查看可用的工作流
openclaw workflow list
# 输出示例
# NAME DESCRIPTION
# research-report 研究报告生成工作流
# parallel-research 并行研究工作流
# customer-service 智能客服工作流
5.2 执行工作流
通过命令行执行:
通过API执行:
-H "Content-Type: application/json" \
-d '{
"workflow": "research-report",
"input": "分析2026年AI Agent市场趋势"
}'
执行并行工作流:
5.3 查看执行状态
openclaw workflow status
# 查看指定运行的详细信息
openclaw workflow status <run-id>
状态输出示例:
"runId": "run_abc123",
"workflow": "research-report",
"status": "running",
"currentStep": "analyze",
"startTime": "2026-05-23T10:00:00Z",
"steps": {
"research": "completed",
"analyze": "running",
"write": "pending",
"review": "pending"
}
}
5.4 查看执行日志
日志包含每个步骤的输入、输出、执行时间等信息,便于调试和问题排查。
六、实战案例:智能客服系统
6.1 需求分析
构建一个多Agent客服系统,处理客户的咨询、投诉和订单问题。这是多Agent协作的经典应用场景。
系统组成:
- 分类Agent:判断用户问题类型(咨询/投诉/订单)
- 咨询Agent:处理常见问题解答
- 投诉Agent:处理投诉和建议
- 订单Agent:处理订单相关问题
- 汇总Agent:整合各Agent回复,生成最终答案
用户只需发送问题,系统自动识别问题类型并路由到对应的处理Agent,最后汇总回复。
6.2 创建目录结构
每个Agent都有自己的目录,配置和代码隔离。
6.3 配置各Agent
分类Agent classifier-agent/agent.json:
"name": "classifier-agent",
"description": "分类Agent,判断客户问题类型",
"model": "minimax-portal/MiniMax-M2.7",
"timeout": 30
}
分类Agent只需要简短处理,超时时间设置较短。
咨询Agent inquiry-agent/agent.json:
"name": "inquiry-agent",
"description": "咨询Agent,处理常见问题",
"model": "minimax-portal/MiniMax-M2.7",
"skills": ["faq-knowledge"],
"timeout": 60
}
咨询Agent配备了FAQ知识库技能,可以回答常见问题。
投诉Agent complaint-agent/agent.json:
"name": "complaint-agent",
"description": "投诉Agent,处理投诉和建议",
"model": "minimax-portal/MiniMax-M2.7",
"timeout": 90
}
投诉Agent需要和客户多轮沟通,设置较长的超时时间。

订单Agent order-agent/agent.json:
"name": "order-agent",
"description": "订单Agent,处理订单问题",
"model": "minimax-portal/MiniMax-M2.7",
"skills": ["order-system"],
"timeout": 60
}
订单Agent配备了订单系统技能,可以查询和处理订单。
汇总Agent summarizer-agent/agent.json:
"name": "summarizer-agent",
"description": "汇总Agent,整合回复",
"model": "minimax-portal/MiniMax-M2.7",
"timeout": 30
}
汇总Agent负责整合各Agent的回复,生成最终输出。
6.4 配置工作流
创建~/.openclaw/workspace/workflows/customer-service.yaml:
description: 智能客服工作流
steps:
– name: classify
agent: classifier-agent
input: "分析客户问题类型:${user.message}"
output_var: category
– name: route
type: switch
condition: "${category}"
cases:
"咨询":
– name: handle_inquiry
agent: inquiry-agent
input: "${user.message}"
output_var: inquiry_response
"投诉":
– name: handle_complaint
agent: complaint-agent
input: "${user.message}"
output_var: complaint_response
"订单":
– name: handle_order
agent: order-agent
input: "${user.message}"
output_var: order_response
"default":
– name: fallback
agent: inquiry-agent
input: "${user.message}"
– name: summarize
agent: summarizer-agent
input: "整合以下回复:${inquiry_response || complaint_response || order_response}"
output_var: final_response
工作流程说明:
- 用户发送消息
- 分类Agent分析问题类型
- 根据类型路由到对应Agent处理
- 汇总Agent整合回复并返回用户
6.5 测试工作流
测试咨询问题:
期望流程:分类Agent识别为”咨询”→咨询Agent回答退货政策→汇总Agent整理回复。
测试投诉问题:
期望流程:分类Agent识别为”投诉”→投诉Agent记录并处理投诉→汇总Agent整理回复。
测试订单问题:
期望流程:分类Agent识别为”订单”→订单Agent查询订单状态→汇总Agent整理回复。
七、调试与监控
7.1 查看Agent状态
openclaw agents list
# 输出示例
# NAME STATUS REQUESTS AVG_LATENCY
# supervisor running 1234 50ms
# research-agent running 567 120ms
# report-agent running 432 180ms
# summarizer-agent running 432 60ms
# 查看指定Agent详细信息
openclaw agents status research-agent
7.2 查看Agent间消息
可以查看Agent发送和接收的所有消息,用于调试消息传递问题。
7.3 中断工作流
如果某个工作流执行时间过长或陷入死循环:
7.4 重试失败步骤
如果某个步骤失败,可以单独重试:
7.5 监控面板
打开实时监控面板:
监控面板显示:
- 各Agent的请求量
- 平均响应时间
- 错误率
- 当前运行的工作流数量
八、最佳实践
8.1 Agent职责单一
每个Agent应该只负责一个明确的职责。不要让一个Agent既处理投诉又处理订单。
好做法:咨询Agent只回答咨询,投诉Agent只处理投诉。
坏做法:一个Agent什么都做,最后什么都做不好。
单一职责的好处:Agent更容易优化和维护;输出质量更稳定;系统更容易扩展。
8.2 清晰的上下文传递
工作流中,子Agent的输入应该清晰明确。
好做法:Supervisor明确告诉子Agent需要做什么,而不是让子Agent自己”猜”。
坏做法:把大量原始数据扔给子Agent,让它自己理解该做什么。
清晰的上下文包括:明确的任务目标、具体的输入内容、期望的输出格式。
8.3 完善的错误处理
每个步骤都应该有错误处理机制:
– name: risky_task
agent: unstable-agent
input: "${user.input}"
retry:
max_attempts: 3
backoff: exponential
on_failure:
action: fallback
fallback_agent: backup-agent
错误处理配置说明:
- retry.max_attempts:最大重试次数
- retry.backoff:重试间隔策略,exponential表示指数退避
- on_failure.action:失败时的动作,fallback表示降级到其他Agent
- on_failure.fallback_agent:降级目标Agent
8.4 资源管理
注意Agent的资源消耗。并行执行的任务数量要控制:
max_parallel: 5
tasks:
– …
避免创建过多并行任务导致内存溢出或系统过载。max_parallel参数限制了同时执行的Task数量。
8.5 监控和日志
为每个Agent和步骤配置日志记录:
"logging": {
"level": "info",
"includeInput": true,
"includeOutput": true,
"retentionDays": 30
}
}
日志配置说明:
- level:日志级别(debug/info/warn/error)
- includeInput:是否记录输入内容
- includeOutput:是否记录输出内容
- retentionDays:日志保留天数
九、总结
9.1 核心要点
- 多Agent协作突破单Agent限制:并行执行、专业分工、横向扩展。三个臭皮匠顶个诸葛亮,多Agent协作让系统能力远超单个Agent。
- 三个核心组件:Broker消息代理(传递消息)、Supervisor监督者(任务调度)、Sub-Agent子Agent(具体执行)。理解这三个组件是掌握多Agent协作的基础。
- 三种协作模式:串行(步骤依赖)、并行(独立任务)、循环(迭代优化)。根据业务场景选择合适的模式。
- 工作流配置:YAML定义协作顺序和数据流向,变量传递实现Agent间数据共享。工作流是多Agent协作的蓝图。
- 错误处理:配置重试、降级、回滚机制,确保系统稳定性。线上系统必须考虑各种失败情况。
9.2 下一步
Day5我们会学习企业级Agent部署:如何在企业环境中安全地部署和运维Agent,包括权限管理、数据安全、监控审计等内容。
9.3 课后作业
- 配置两个Sub-Agent(research-agent和report-agent)
- 设计一个简单的两Agent串行工作流
- 测试并观察Agent之间的消息传递和数据流转
有问题在评论区留言!
下期预告:Day5 企业级Agent部署:安全与权限管理——如何在企业环境中安全部署Agent
来源:OpenClaw官方文档(docs.openclaw.ai)



我要评论