多 Agent 配置
约 2220 字大约 7 分钟
2026-03-04
什么是多 Agent
多 Agent 是 OpenClaw 的核心特性之一。每个 Agent 都是一个独立的"虚拟员工",拥有自己的:
- Workspace(工作区):存储配置文件和长期记忆
- SOUL(灵魂):定义性格、行为准则和能力边界
- Memory(记忆):保持对话上下文和历史信息
- Skills(技能):可以调用的工具和能力
为什么需要多 Agent
专业化分工
不同的 Agent 可以专注于不同的任务领域:
- Coder Agent:专门处理代码审查、技术问题
- Support Agent:负责用户支持、问题解答
- PM Agent:管理项目进度、协调任务
隔离上下文
避免不同项目或场景的上下文混淆:
- 工作项目和个人事务分离
- 不同客户的对话独立管理
- 测试环境和生产环境隔离
性能优化
分散负载,提高响应速度:
- 多个 Agent 并行处理任务
- 避免单个 Agent 过载
- 提高整体系统吞吐量
权限控制
不同 Agent 拥有不同的权限和能力:
- 限制敏感操作的访问范围
- 按需分配 Skills 和工具
- 实现细粒度的安全控制
Agent 管理
查看所有 Agent
# 列出所有 Agent
openclaw agents list
# 详细信息
openclaw agents list --verbose输出示例:
Agents:
✓ main (default)
- Workspace: ~/.openclaw/agents/main
- Status: Active
- Skills: 5
✓ coder
- Workspace: ~/.openclaw/agents/coder
- Status: Active
- Skills: 8
✓ support
- Workspace: ~/.openclaw/agents/support
- Status: Active
- Skills: 3创建新 Agent
# 创建名为 coder 的 Agent
openclaw agents add coder
# 创建并指定工作区路径
openclaw agents add support --workspace ~/my-agents/support删除 Agent
# 删除 Agent
openclaw agents remove coder
# 强制删除(不提示确认)
openclaw agents remove coder --force切换默认 Agent
# 设置默认 Agent
openclaw agents set-default coder
# 查看当前默认 Agent
openclaw agents default灵魂三件套
每个 Agent 的 Workspace 包含三个核心配置文件:
1. SOUL.md - 性格定义
定义 Agent 的性格、行为准则和能力边界。
# 编辑 SOUL.md
openclaw agents edit coder --soul示例内容:
# Coder Agent
## 核心原则
- 专注于代码审查、编写和技术问题解答
- 遵循最佳实践和代码规范
- 提供清晰的技术解释和示例
- 注重代码质量、性能和安全性
## 风格定位
- 技术专业、逻辑清晰
- 代码示例丰富
- 善于发现潜在问题
- 提供建设性的改进建议
## 能力范围
### 擅长领域
- 代码审查和重构建议
- Bug 诊断和修复方案
- 性能优化建议
- 安全漏洞识别
- 技术架构讨论
### 边界限制
- 不处理非技术问题
- 不提供项目管理建议
- 不涉及商业决策
- 专注于代码质量和技术实现
## 交互风格
- 直接、简洁
- 提供代码示例
- 解释技术原理
- 给出多个方案供选择2. USER.md - 用户信息
记录用户的基本信息、偏好和项目背景。
# 编辑 USER.md
openclaw agents edit coder --user示例内容:
# 用户信息
## 基本信息
- 姓名:张三
- 角色:全栈开发工程师
- 团队:技术部
- 时区:Asia/Shanghai
## 技术栈
- 前端:React, Vue, TypeScript
- 后端:Node.js, Python, Go
- 数据库:PostgreSQL, MongoDB, Redis
- 工具:Git, Docker, Kubernetes
## 项目信息
### 当前项目
- OpenClaw:开源 AI Agent 平台
- 角色:核心开发者
- 主要职责:后端开发、架构设计
### 历史项目
- ProjectA:电商平台(2024-2025)
- ProjectB:数据分析系统(2023-2024)
## 偏好设置
- 代码风格:遵循 ESLint 规范
- 注释语言:中文
- 测试框架:Jest
- 文档格式:Markdown
## 常用命令
- 测试:`npm test`
- 构建:`npm run build`
- 部署:`npm run deploy`3. AGENTS.md - 工作方式
定义 Agent 的工作方式、记忆机制和协作规则。
# 编辑 AGENTS.md
openclaw agents edit coder --agents示例内容:
# Agent 工作方式
## 会话管理
### 会话读取规则
- 读取最近 50 条消息作为上下文
- 优先读取标记为重要的消息
- 自动过滤无关的系统消息
### 会话写入规则
- 重要决策和结论写入长期记忆
- 代码片段和配置保存到知识库
- 定期清理过期的临时信息
## 记忆机制
### 短期记忆
- 当前会话的上下文
- 最近的对话历史
- 临时的工作状态
### 长期记忆
- 项目架构和设计决策
- 常见问题和解决方案
- 代码规范和最佳实践
- 用户偏好和习惯
## 心跳任务
### 每日任务(9:00)
- 检查 GitHub 新 PR
- 汇总未解决的 Issues
- 推送每日技术摘要
### 每周任务(周一 10:00)
- 生成周报
- 分析代码质量趋势
- 提醒待办事项
## 群聊礼仪
### 响应规则
- 被 @提及时立即响应
- 技术问题主动参与讨论
- 非技术话题保持沉默
### 消息格式
- 代码使用代码块格式
- 长消息分段发送
- 重要信息使用引用格式
## 协作规则
### 与其他 Agent 协作
- 技术问题转给 Coder Agent
- 用户支持转给 Support Agent
- 项目管理转给 PM Agent
### 权限边界
- 只能访问技术相关的仓库
- 不能修改生产环境配置
- 敏感操作需要人工确认路由配置
基于渠道路由
将不同渠道的消息路由到不同的 Agent:
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "telegram"
}
},
{
"agentId": "coder",
"match": {
"channel": "discord"
}
},
{
"agentId": "support",
"match": {
"channel": "feishu"
}
}
]
}基于用户路由
根据用户 ID 路由到不同的 Agent:
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "telegram",
"userId": "123456"
}
},
{
"agentId": "support",
"match": {
"channel": "telegram",
"userId": "789012"
}
}
]
}基于群组路由
不同群组使用不同的 Agent:
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "discord",
"serverId": "server_1",
"channelId": "general"
}
},
{
"agentId": "coder",
"match": {
"channel": "discord",
"serverId": "server_1",
"channelId": "dev"
}
}
]
}基于关键词路由
根据消息内容路由:
{
"bindings": [
{
"agentId": "support",
"match": {
"channel": "telegram",
"keywords": ["help", "support", "问题", "帮助"]
}
},
{
"agentId": "coder",
"match": {
"channel": "telegram",
"keywords": ["code", "bug", "pr", "代码", "错误"]
}
}
]
}基于时间路由
不同时间段使用不同的 Agent:
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "telegram",
"timeRange": {
"start": "09:00",
"end": "18:00"
}
}
},
{
"agentId": "night",
"match": {
"channel": "telegram",
"timeRange": {
"start": "18:00",
"end": "09:00"
}
}
}
]
}实战案例
案例 1:技术团队配置
创建三个专业化的 Agent:
# 创建 Agent
openclaw agents add coder
openclaw agents add reviewer
openclaw agents add devops配置路由:
{
"bindings": [
{
"agentId": "coder",
"match": {
"channel": "discord",
"channelId": "dev-chat",
"keywords": ["开发", "实现", "功能"]
}
},
{
"agentId": "reviewer",
"match": {
"channel": "discord",
"channelId": "code-review",
"keywords": ["审查", "review", "pr"]
}
},
{
"agentId": "devops",
"match": {
"channel": "discord",
"channelId": "ops",
"keywords": ["部署", "运维", "监控"]
}
}
]
}案例 2:客户服务配置
创建多语言支持 Agent:
openclaw agents add support-zh
openclaw agents add support-en配置路由:
{
"bindings": [
{
"agentId": "support-zh",
"match": {
"channel": "feishu",
"language": "zh-CN"
}
},
{
"agentId": "support-en",
"match": {
"channel": "feishu",
"language": "en-US"
}
}
]
}案例 3:项目管理配置
为不同项目创建独立 Agent:
openclaw agents add project-a
openclaw agents add project-b配置路由:
{
"bindings": [
{
"agentId": "project-a",
"match": {
"channel": "feishu",
"groupId": "project-a-group"
}
},
{
"agentId": "project-b",
"match": {
"channel": "feishu",
"groupId": "project-b-group"
}
}
]
}Agent 间协作
转发消息
Agent 可以将消息转发给其他 Agent:
@coder 这个问题需要 @support 来回答共享记忆
配置共享记忆池:
{
"memory": {
"shared": true,
"agents": ["main", "coder", "support"]
}
}协作工作流
定义 Agent 间的协作流程:
{
"workflows": {
"code-review": {
"steps": [
{
"agent": "coder",
"action": "analyze-code"
},
{
"agent": "reviewer",
"action": "review-changes"
},
{
"agent": "devops",
"action": "check-deployment"
}
]
}
}
}性能优化
资源分配
为不同 Agent 分配资源:
{
"agents": {
"coder": {
"maxConcurrency": 5,
"timeout": 60000,
"priority": "high"
},
"support": {
"maxConcurrency": 10,
"timeout": 30000,
"priority": "normal"
}
}
}缓存策略
配置 Agent 级别的缓存:
{
"cache": {
"enabled": true,
"ttl": 3600,
"maxSize": 1000,
"perAgent": true
}
}监控与调试
查看 Agent 状态
# 查看特定 Agent 的状态
openclaw agents status coder
# 查看所有 Agent 的统计信息
openclaw agents stats查看 Agent 日志
# 查看 Agent 日志
openclaw logs --agent coder
# 实时查看日志
openclaw logs --agent coder --follow
# 按级别过滤
openclaw logs --agent coder --level error性能分析
# 查看 Agent 性能指标
openclaw agents metrics coder
# 导出性能报告
openclaw agents metrics coder --export report.json最佳实践
- 明确职责:每个 Agent 应该有清晰的职责范围
- 避免重叠:不同 Agent 的能力不应过度重叠
- 合理路由:使用精确的路由规则避免冲突
- 定期维护:定期更新 SOUL 和清理记忆
- 监控性能:关注 Agent 的响应时间和资源使用
- 安全隔离:敏感 Agent 使用独立的权限配置
- 文档完善:为每个 Agent 编写清晰的文档
故障排查
Agent 无响应
# 检查 Agent 状态
openclaw agents status coder
# 重启 Agent
openclaw agents restart coder
# 查看错误日志
openclaw logs --agent coder --level error路由不生效
# 验证路由配置
openclaw routing validate
# 测试路由
openclaw routing test --channel telegram --userId 123456
# 查看路由日志
openclaw logs --component router记忆问题
# 清理 Agent 记忆
openclaw agents clear-memory coder
# 重建记忆索引
openclaw agents rebuild-memory coder