Agent 智能体
配置和管理 OpenClaw 的多智能体系统,为每个 Agent 设定独立的配置文件、性格、行为准则和专属记忆。
什么是多 Agent
多 Agent 是 OpenClaw 的核心特性之一。每个 Agent 都是一个独立的智能体实例,拥有自己的:
- Workspace(工作区):存储配置文件和长期记忆的独立物理目录。
- SOUL(灵魂设定):定义 Agent 的性格特征、行为准则和能力边界。
- Memory(记忆):维持对话上下文和历史追溯信息。
- Skills(技能):特定 Agent 在授权范围内可调用的工具和扩展能力。
🎯 为什么需要多 Agent?
专业化分工
不同的 Agent 可以专注于不同的任务领域,避免场景混乱:
- Coder Agent:专门处理代码审查、代码生成和技术问题解答。
- Support Agent:负责产品用户支持、售后和通用问题答疑。
- PM Agent:辅助管理项目进度、协调团队任务。
隔离上下文
避免不同项目或场景的数据与上下文发生混淆:
- 工作项目和个人事务的物理隔离。
- 不同客户的对话独立管理。
- 测试环境和生产环境上下文隔离。
性能优化
分散系统负载,提高整体并发响应速度:
- 利用多 Agent 进行并行任务处理。
- 防止单个通用 Agent 在高并发下过载。
- 提高系统整体吞吐量。
权限与安全控制
为不同 Agent 赋予不同的权限边界:
- 限制高危敏感操作(如文件删改)的辐射范围。
- 按需为指定的 Agent 分配特权 Skills。
- 实现细粒度的应用系统防呆和安全控制。
🎛️ Agent 管理
查看所有 Agent
# 列出所有已注册的 Agent
openclaw agents list
# 查看所有 Agent 的详细配置信息
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 的设定
openclaw agents add coder
# 创建并手动指定工作区路径
openclaw agents add support --workspace ~/my-agents/support删除 Agent
# 删除指定的 Agent
openclaw agents remove coder
# 强制删除(跳过二次确认提示并销毁对应记录)
openclaw agents remove coder --force切换默认 Agent
# 将 coder 设置为系统默认接管 Agent
openclaw agents set-default coder
# 查看当前系统的主默认 Agent
openclaw agents default🧬 核心配置:灵魂三件套
每个 Agent 的 Workspace 都依赖三个核心的 Markdown 级别配置文件作为基座运作:
1. SOUL.md - 行为准则与性格定义
用于定义 Agent 的基础性格、工作原则和知识边界。
# 进入编辑器配置 SOUL.md
openclaw agents edit coder --soul配置示例:
# Coder Agent 设定
## 核心原则
- 专注于代码审查、编写和硬核技术问题解答。
- 遵循最佳实践和代码规范。
- 提供清晰的技术解释和代码片段示例。
- 注重代码框架质量、性能和安全性。
## 风格定位
- 技术专业老道、逻辑清晰。
- 善于发现潜在隐患并提供建设性的非破坏改进建议。
## 能力范围
### 擅长领域
- 架构审查和重构建议。
- 错误堆栈诊断和修复方案。
- 开发性能优化建议。
### 边界限制
- 不处理非技术问题或闲聊。
- 不提供项目管理建议或干涉商业决策。
- 仅专注于代码质量和技术层面实现。
## 交互风格
- 直接、高效。
- 大量提供代码示例而非长篇赘述。
- 涉及风险项需强制提示备份。2. USER.md - 用户画像与偏好
用于让 Agent 加载当前用户的基本信息、项目背景和语言偏好设定。
# 编辑 USER.md
openclaw agents edit coder --user配置示例:
# 用户画像设定
## 基本信息
- 姓名:用户名字
- 角色:全栈开发工程师
- 团队:核心技术部
- 时区:Asia/Shanghai (东八区)
## 技术栈基础
- 前台架构:React, Vue, TypeScript
- 后端基座:Node.js, Python, Go
- 下游设施:PostgreSQL, MongoDB, Redis, Docker, K8s
## 偏好设定
- 代码风格:严格遵循 ESLint 规范
- 注释语言:使用中文撰写说明
- 测试框架:项目采用 Jest
## 常见对话指令映射
- “去运行测试”:意为执行 `npm test`
- “打包程序”:意为执行 `npm run build`3. AGENTS.md - 工作流与记忆机制
配置 Agent 的会话存储策略、自我调度任务以及社交与协作行为。
# 编辑 AGENTS.md
openclaw agents edit coder --agents配置示例:
# Agent 运作规范
## 会话引擎机制
### 读取与追踪规范
- 读取最近 50 条消息作为持续上下文构建。
- 优先读取标记为“重要”的预留系统消息。
- 开启自动过滤机制忽略与技术无关或过度闲聊的信息。
### 落盘定海神针(持久化记忆)
- 将会话中涉及到的重要核心决策归档转录到长期知识库。
- 将经常使用的代码模板保存到专属代码片段合集。
- 触发机制定期遗忘和销毁临时的冗余数据。
## 自动化心跳任务
- 每日(9:00):唤醒并检查最新的 GitHub 积压任务列表。
- 每周(周一 10:00):抓取本周提交概况并出具代码质量折线图简报。
## 群聊与跨组交互
- 在大型群聊频道中仅在被 `@` 提及时响应发声。
- 长篇幅的代码或日志输出必须使用标准代码块并分层包裹发信。🔀 消息路由机制 (Routing)
Gateway 可以通过以下不同维度的规则维度将请求转交给对口的专职 Agent 处理。
1. 基于渠道 (Channel) 分流
{
"bindings": [
{ "agentId": "coder", "match": { "channel": "discord" } },
{ "agentId": "support", "match": { "channel": "feishu" } }
]
}2. 基于用户标识 (User ID) 特定分配
{
"bindings": [
{
"agentId": "support",
"match": {
"channel": "telegram",
"userId": "123456"
}
}
]
}3. 基于群组或社区板块路由
{
"bindings": [
{
"agentId": "main",
"match": {
"channel": "discord",
"serverId": "server_1",
"channelId": "general"
}
},
{
"agentId": "coder",
"match": {
"channel": "discord",
"serverId": "server_1",
"channelId": "dev"
}
}
]
}4. 基于触发关键词路由
{
"bindings": [
{
"agentId": "support",
"match": {
"channel": "telegram",
"keywords": ["help", "support", "使用帮助"]
}
},
{
"agentId": "coder",
"match": {
"channel": "telegram",
"keywords": ["bug", "报错", "跑不起来"]
}
}
]
}5. 基于工作时间段倒休
{
"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:创建产研协作流程
分别调配 coder、reviewer 和 devops。
openclaw agents add coder
openclaw agents add reviewer
openclaw agents add devops配置协作工作站路由:
{
"bindings": [
{
"agentId": "coder",
"match": { "channelId": "dev-chat", "keywords": ["帮我开发", "协助"] }
},
{
"agentId": "reviewer",
"match": { "channelId": "code-review", "keywords": ["提交", "pr"] }
},
{
"agentId": "devops",
"match": { "channelId": "ops", "keywords": ["发版", "部署进度"] }
}
]
}案例 2:跨语言售后防线
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" }
}
]
}🤝 Agent 之间的高频协作
下发移交指令
Agent 在聊天交互中也可以被显式指令引到:
@coder 关于这个需求的技术点请移交 @support 进行解答跟进。共享部分记忆池 (Shared Memory)
将特定的一批业务 Agent 数据底座打通:
{
"memory": {
"shared": true,
"agents": ["main", "coder", "support"]
}
}工作流 (Workflows) 自动化衔接
固化执行工序逻辑引擎:
{
"workflows": {
"code-review": {
"steps": [
{ "agent": "coder", "action": "analyze-code" },
{ "agent": "reviewer", "action": "review-changes" },
{ "agent": "devops", "action": "check-deployment" }
]
}
}
}📈 性能与限流调优
避免因某一高频任务耗尽系统显存或计算核心。
队列资源分配配额
{
"agents": {
"coder": {
"maxConcurrency": 5,
"timeout": 60000,
"priority": "high"
},
"support": {
"maxConcurrency": 10,
"timeout": 30000,
"priority": "normal"
}
}
}控制侧缓存策略
为重复程度高的解答分配前置缓存拦截池:
{
"cache": {
"enabled": true,
"ttl": 3600,
"maxSize": 1000,
"perAgent": true
}
}🔍 重症探针与监控调试
状态看板轮询
# 查看特定 Agent 的存活与运行状态
openclaw agents status coder
# 查看全部 Agent 的统计大盘数据聚合
openclaw agents stats日志系统排查
# 查看指定 Agent 的日志历史记录
openclaw logs --agent coder
# 实时悬停拦截打印
openclaw logs --agent coder --follow
# 仅筛选抛错阻断的 Error 级别日志
openclaw logs --agent coder --level error常见故障处置
情况 1:Agent 无响应、宕机或死循环
openclaw agents status coder
openclaw agents restart coder情况 2:消息未正确通过 Gateway 路由
openclaw routing validate
openclaw routing test --channel telegram --userId 123456
openclaw logs --component router情况 3:记忆紊乱或提取了错误的跨上下文
# 清理记忆沙箱与缓存碎片
openclaw agents clear-memory coder
# 重建语汇索引与知识图谱链接
openclaw agents rebuild-memory coder