跳到主要内容

多 Agent 协作

OpenClaw 支持多 Agent 协作,让你的 AI 助手像一支训练有素的团队一样分工合作。本章介绍如何配置和使用多 Agent 系统。

为什么需要多 Agent?

单 Agent 模式下,一个 Agent 承担所有工作,存在以下问题:

  • 职责混乱:一个 Agent 做太多事,提示词臃肿
  • 权限风险:高风险工具和普通工具混在一起
  • 扩展困难:新增功能需要修改现有配置
  • 群聊串线:不同群组的需求混在一起

多 Agent 模式解决了这些问题:

维度单 Agent多 Agent
职责混杂清晰分离
权限统一隔离控制
扩展修改现有新增 Agent
体验可能串线各司其职

一句话:一个 OpenClaw = 一个调度中枢;多 Agent = 你的"数字团队"。

核心概念

Agent 工作空间

每个 Agent 都有独立的工作空间,包含:

workspaces/
├── main/ # 主协调员
│ ├── SOUL.md # 人格定义
│ ├── MEMORY.md # 记忆
│ └── config.json # 配置
├── writer/ # 写作 Agent
│ ├── SOUL.md
│ └── MEMORY.md
├── developer/ # 开发 Agent
│ ├── SOUL.md
│ └── MEMORY.md
└── analyst/ # 分析 Agent
├── SOUL.md
└── MEMORY.md

Agent 通信

Agent 之间可以通过以下方式通信:

  • @ 提及@writer 帮我写一篇文章
  • 任务委派:主 Agent 自动分配任务给子 Agent
  • 结果汇总:子 Agent 完成后向主 Agent 汇报

两种协作模式

模式说明适用场景
Run 模式单次任务,完成后自动汇报快速执行独立任务
Session 模式持续对话,支持线程绑定需要多轮交互的复杂任务

配置多 Agent

主配置文件

编辑 openclaw.json

{
"agentToAgent": {
"enabled": true,
"allowedAgents": ["main", "writer", "developer", "analyst"]
},
"routing": {
"rules": [
{
"keywords": ["写作", "文章", "内容"],
"target": "writer",
"priority": 10
},
{
"keywords": ["代码", "开发", "bug"],
"target": "developer",
"priority": 10
},
{
"keywords": ["分析", "数据", "报表"],
"target": "analyst",
"priority": 10
}
]
},
"models": {
"agents": {
"main": {
"provider": "claude",
"model": "claude-3-opus"
},
"writer": {
"provider": "claude",
"model": "claude-3-sonnet"
},
"developer": {
"provider": "gpt-4",
"model": "gpt-4-turbo"
},
"analyst": {
"provider": "deepseek",
"model": "deepseek-chat"
}
}
}
}

创建 Agent 工作空间

# 创建新 Agent
openclaw agent create writer

# 编辑 Agent 人格
openclaw agent edit writer --file SOUL.md

# 编辑 Agent 记忆
openclaw agent edit writer --file MEMORY.md

配置 Agent 人格

每个 Agent 的 SOUL.md 定义其角色和职责:

主协调员(main/SOUL.md)

# 你是谁

你是整个项目的总负责人(项目经理),统筹需求、设计、开发全流程。你拥有所有专业 Agent 的联系方式(通过 @ 提及他们)。

## 核心职责

- 接收用户的最终目标
- 将任务拆解为多个阶段
- 依次调用对应的专业 Agent
- 确保前一阶段的产出物完整传递给下一阶段
- 在每个阶段完成后,请用户确认

## 可调用的 Agent

- @writer:负责写作和内容创作
- @developer:负责代码开发和调试
- @analyst:负责数据分析和报表

## 行为约束

- 不要自己执行专业任务,而是委派给对应的 Agent
- 保持全局视角,协调各 Agent 的工作
- 记录每个阶段的产出

写作 Agent(writer/SOUL.md)

# 你是谁

你是一位专业的内容创作者,擅长撰写各类文章、文案、报告。

## 核心职责

- 根据主题撰写文章
- 按照指定风格调整内容
- 优化文字表达

## 写作风格

- 简洁明了
- 逻辑清晰
- 适当使用列表和表格

## 行为约束

- 写作前确认主题和要求
- 完成后主动询问是否需要修改
- 不处理代码相关任务

开发 Agent(developer/SOUL.md)

# 你是谁

你是一位资深软件工程师,擅长多种编程语言和框架。

## 核心职责

- 编写和修改代码
- 调试和修复 bug
- 代码审查和优化

## 技术栈

- 语言:Python, JavaScript, TypeScript, Go
- 框架:React, Vue, FastAPI, Gin
- 工具:Git, Docker, Kubernetes

## 行为约束

- 修改代码前先备份
- 每次修改说明原因
- 遵循项目的代码规范

嵌套 Sub-Agent

开启 maxSpawnDepth 后,可以实现"编排器模式":

{
"agentToAgent": {
"maxSpawnDepth": 2
}
}

架构示意:

主 Agent(主编)
└─ 写手 Agent(Orchestrator)
├─ 调研 Agent(Worker 1)
├─ 写作 Agent(Worker 2)
└─ 配图 Agent(Worker 3)

这样分工明确:主编统筹全局,写手 Agent 协调任务,具体工作由各个 Worker 完成。

多渠道多 Agent

可以为不同渠道绑定不同的 Agent:

{
"channels": {
"telegram": {
"defaultAgent": "personal-assistant"
},
"slack": {
"defaultAgent": "work-assistant"
},
"feishu": {
"defaultAgent": "team-assistant"
}
}
}

配置示例

# 为 Telegram 配置个人助手
openclaw channels config telegram --agent personal-assistant

# 为 Slack 配置工作助手
openclaw channels config slack --agent work-assistant

# 为飞书配置团队助手
openclaw channels config feishu --agent team-assistant

实战案例

案例 1:软件开发团队

创建一个完整的软件开发团队:

# 创建 Agent
openclaw agent create product-manager
openclaw agent create ui-designer
openclaw agent create architect
openclaw agent create developer
openclaw agent create tester

配置主协调员:

# 项目经理

## 工作流程

1. 接收需求 → @product-manager 分析需求
2. 需求确认 → @ui-designer 设计界面
3. 设计确认 → @architect 设计架构
4. 架构确认 → @developer 编码实现
5. 编码完成 → @tester 测试验收

案例 2:内容创作团队

# 创建 Agent
openclaw agent create editor # 主编
openclaw agent create researcher # 调研员
openclaw agent create writer # 写手
openclaw agent create illustrator # 配图师

配置主编:

# 主编

## 工作流程

1. 接收选题 → @researcher 收集资料
2. 资料汇总 → @writer 撰写初稿
3. 初稿完成 → 审核修改
4. 定稿后 → @illustrator 配图
5. 最终发布

案例 3:运维监控团队

# 创建 Agent
openclaw agent create monitor # 监控员
openclaw agent create alerter # 告警员
openclaw agent create fixer # 修复员
openclaw agent create reporter # 报告员

配置心跳任务:

# 监控心跳

## 每 5 分钟

- @monitor 检查服务器状态
- 异常时 → @alerter 发送告警
- 需要修复 → @fixer 执行修复

## 每小时

- @reporter 生成状态报告

Agent 管理命令

# 列出所有 Agent
openclaw agent list

# 查看 Agent 详情
openclaw agent info writer

# 创建新 Agent
openclaw agent create new-agent

# 删除 Agent
openclaw agent remove old-agent

# 编辑 Agent 配置
openclaw agent edit writer

# 复制 Agent 配置
openclaw agent copy writer writer-backup

# 测试 Agent
openclaw agent test writer --message "写一篇关于 AI 的文章"

最佳实践

职责单一

每个 Agent 只负责一类任务,不要让一个 Agent 做太多事。

明确边界

在 SOUL.md 中明确定义 Agent 的职责边界,避免任务重叠。

合理命名

使用清晰的命名,一眼就能看出 Agent 的职责:

  • writerdeveloperanalyst
  • agent1agent2agent3

权限隔离

为不同 Agent 配置不同的权限:

{
"agents": {
"developer": {
"permissions": ["filesystem", "execute", "network"]
},
"writer": {
"permissions": ["filesystem"]
},
"analyst": {
"permissions": ["network"]
}
}
}

模型选择

根据任务特点选择合适的模型:

  • 复杂推理:Claude Opus / GPT-4
  • 日常任务:Claude Sonnet / GPT-3.5
  • 代码开发:DeepSeek Coder
  • 成本敏感:本地模型

常见问题

Agent 无法互相调用

检查

# 检查 A2A 是否启用
openclaw config show agentToAgent.enabled

# 检查 allowedAgents 列表
openclaw config show agentToAgent.allowedAgents

任务分配错误

解决

  1. 检查路由规则的关键词配置
  2. 调整优先级
  3. 在 SOUL.md 中明确职责

Agent 响应慢

原因:模型选择不当或并发过高。

解决

{
"models": {
"agents": {
"writer": {
"provider": "deepseek",
"model": "deepseek-chat"
}
}
}
}

下一步