导读:一个Agent忙不过来?需要不同Agent各司其职?本教程教你搭建OpenClaw多Agent团队,实现任务自动分发、并行执行、结果汇总。从"一个人干"到"一个团队干"。
🏗️ 多Agent架构
🎯 主Agent(调度中心)
↓↓↓
📝 内容Agent
🔍 研究Agent
💻 代码Agent
↓↓↓
📊 数据Agent
🎨 设计Agent
🔧 运维Agent
🎯 核心概念
🎯 主Agent
负责理解任务、拆分子任务、分配给子Agent、汇总结果。
👶 子Agent
专注于特定领域,执行具体任务,返回结果给主Agent。
💬 会话隔离
每个子Agent有独立的上下文,互不干扰。
🔄 并行执行
多个子Agent可以同时工作,大幅提升效率。
🚀 快速开始
1. 定义Agent团队
# ~/.openclaw/config.yaml
agents:
# 主Agent - 调度中心
leader:
model: "gpt-4o"
systemPrompt: |
你是团队领导,负责:
1. 分析复杂任务,拆分为子任务
2. 分配给合适的团队成员
3. 汇总各成员的结果
4. 确保最终输出质量
团队成员:
- researcher: 负责信息收集和分析
- writer: 负责内容创作
- coder: 负责代码开发
- reviewer: 负责质量审核
# 研究Agent
researcher:
model: "gpt-4o-mini"
systemPrompt: |
你是一个信息研究专家。
擅长:搜索信息、分析数据、整理报告
输出:结构化的研究结果
# 写作Agent
writer:
model: "gpt-4o"
systemPrompt: |
你是一个专业的内容创作者。
擅长:SEO文章、技术文档、营销文案
风格:专业但易读
# 代码Agent
coder:
model: "gpt-4o"
systemPrompt: |
你是一个高级开发者。
擅长:Python、TypeScript、Shell脚本
输出:可运行的代码 + 注释
# 审核Agent
reviewer:
model: "gpt-4o-mini"
systemPrompt: |
你是一个质量审核员。
检查:准确性、完整性、格式规范
输出:通过/需修改 + 具体建议
2. 使用子Agent
# 在主Agent中派发任务给子Agent
# 方式1: 启动子Agent执行任务
sessions_spawn(
task: "研究2026年AI Agent市场趋势,输出分析报告",
agentId: "researcher"
)
# 方式2: 并行启动多个子Agent
sessions_spawn(task: "研究竞品分析", agentId: "researcher")
sessions_spawn(task: "撰写产品介绍", agentId: "writer")
sessions_spawn(task: "编写自动化脚本", agentId: "coder")
# 等待所有子Agent完成
sessions_yield(message: "等待团队完成任务...")
3. 收集结果
# 子Agent完成后会自动通知主Agent
# 主Agent可以:
# 1. 查看子Agent列表和状态
subagents(action: "list")
# 2. 获取子Agent的历史记录
sessions_history(sessionKey: "researcher-session-key")
# 3. 发送消息给子Agent(如果需要补充信息)
sessions_send(sessionKey: "researcher-session-key", message: "补充一下Q2的数据")
📋 实战案例
案例1:自动化内容生产团队
# 场景:每周生成5篇SEO文章
# 主Agent拆解任务:
# 1. researcher: 研究热门关键词和话题
# 2. writer: 为每个关键词写一篇文章
# 3. reviewer: 审核文章质量
# 4. 主Agent: 发布到网站
# 配置Cron任务
openclaw cron add \
--name "content-team-weekly" \
--schedule "0 2 * * 1" \
--task '执行内容生产流程:
1. 启动researcher子Agent,研究本周热门AI话题
2. 等待研究结果
3. 为每个话题启动writer子Agent生成文章
4. 启动reviewer子Agent审核所有文章
5. 将审核通过的文章保存到网站
6. 更新sitemap.xml
7. 通过飞书通知团队完成'
案例2:自动化运维团队
# 场景:服务器监控和故障处理
agents:
# 监控Agent
monitor:
model: "gpt-4o-mini"
systemPrompt: |
你是服务器监控专家。
定期检查:CPU、内存、磁盘、网络
异常时:生成告警报告
# 诊断Agent
diagnoser:
model: "gpt-4o"
systemPrompt: |
你是故障诊断专家。
输入:告警信息
输出:根因分析 + 修复方案
# 修复Agent
fixer:
model: "gpt-4o"
systemPrompt: |
你是运维修复专家。
能力:执行Shell命令、重启服务、回滚部署
规则:高危操作需人工确认
# 监控流程
openclaw cron add \
--name "auto-ops-team" \
--schedule "*/5 * * * *" \
--task '执行运维监控:
1. 启动monitor检查服务器状态
2. 如果发现异常,启动diagnoser分析根因
3. 如果是已知问题,启动fixer自动修复
4. 如果是未知问题,通知运维人员
5. 记录所有操作到日志'
案例3:数据分析团队
# 场景:自动化数据分析报告
agents:
data-collector:
model: "gpt-4o-mini"
systemPrompt: |
你是数据收集专家。
能力:API调用、数据库查询、文件读取
输出:原始数据集
data-analyst:
model: "gpt-4o"
systemPrompt: |
你是数据分析师。
能力:统计分析、趋势识别、异常检测
输出:分析结论 + 可视化数据
report-writer:
model: "gpt-4o"
systemPrompt: |
你是报告撰写专家。
输入:分析结论
输出:专业的分析报告(含图表建议)
# 自动化报告流程
openclaw cron add \
--name "data-team-report" \
--schedule "0 9 * * 1" \
--task '生成周度数据报告:
1. data-collector收集本周业务数据
2. data-analyst分析数据趋势和异常
3. report-writer撰写分析报告
4. 生成HTML报告保存到网站
5. 通过邮件发送给管理层'
🔧 高级特性
1. Agent间通信
# 子Agent之间可以通过主Agent中转信息
# 主Agent作为消息中心
# researcher完成研究后通知writer
sessions_send(
sessionKey: "writer-session",
message: "研究完成,以下是关键发现:[研究结果摘要]"
)
# writer可以向researcher请求更多信息
sessions_send(
sessionKey: "researcher-session",
message: "需要补充Q3的市场数据"
2. 动态Agent创建
# 根据任务需要动态创建Agent
# 主Agent可以根据任务复杂度决定创建几个子Agent
if task.complexity == "high":
# 创建多个专项Agent
sessions_spawn(task: "子任务1", agentId: "specialist-1")
sessions_spawn(task: "子任务2", agentId: "specialist-2")
else:
# 简单任务直接处理
handle_task_directly()
3. 结果汇总策略
# 主Agent汇总子Agent结果的方式:
# 方式1: 串行汇总
# 子Agent依次完成,主Agent逐个处理结果
result1 = sessions_spawn(task: "任务1")
result2 = sessions_spawn(task: "任务2")
summary = combine(result1, result2)
# 方式2: 并行汇总
# 多个子Agent同时工作,完成后统一汇总
sessions_spawn(task: "任务A")
sessions_spawn(task: "任务B")
sessions_spawn(task: "任务C")
sessions_yield() # 等待所有完成
# 主Agent收到所有结果后统一处理
📊 性能与成本优化
模型选择策略
| Agent角色 | 推荐模型 | 原因 |
|---|---|---|
| 主Agent(调度) | GPT-4o | 需要强推理能力 |
| 研究Agent | GPT-4o-mini | 主要是搜索和整理 |
| 写作Agent | GPT-4o | 需要高质量输出 |
| 代码Agent | GPT-4o / Claude | 代码生成需要强模型 |
| 审核Agent | GPT-4o-mini | 检查类任务较简单 |
成本控制
# 使用本地模型降低成本
agents:
researcher:
model: "ollama/qwen2:7b" # 本地模型,零成本
writer:
model: "gpt-4o" # 重要任务用强模型
reviewer:
model: "ollama/llama3:8b" # 审核用本地模型
# 使用light-context减少token消耗
sessions_spawn(
task: "简单任务描述",
lightContext: true # 减少上下文注入
💡 最佳实践
- 🎯 明确分工:每个Agent有清晰的职责边界
- 📋 任务拆解:复杂任务拆分为可独立执行的子任务
- 🔄 避免循环:设置最大重试次数,防止Agent间死循环
- 📊 监控状态:定期检查子Agent状态,及时干预异常
- 💰 成本意识:简单任务用小模型,关键任务用强模型
- 📝 日志记录:记录每个Agent的输入输出,便于调试
🆘 常见问题
Q: 子Agent没有响应?
A: 检查子Agent的模型是否可用。确认任务描述清晰明确。查看是否有错误日志。
A: 检查子Agent的模型是否可用。确认任务描述清晰明确。查看是否有错误日志。
Q: 多个Agent结果不一致?
A: 在主Agent中添加协调逻辑,当结果冲突时重新分配任务或人工介入。
A: 在主Agent中添加协调逻辑,当结果冲突时重新分配任务或人工介入。
Q: 成本太高?
A: 对非关键Agent使用本地模型。使用light-context减少token。设置任务超时防止无限循环。
A: 对非关键Agent使用本地模型。使用light-context减少token。设置任务超时防止无限循环。