CONCEPT
OpenClaw多Agent协作机制
基本定义
OpenClaw多Agent协作机制是OpenClaw开源多智能体框架的核心协作能力层,旨在解决单Agent能力边界有限、复杂任务处理效率低的问题,其核心价值包括四点:
- 角色分离:不同Agent承担不同职责,避免单一角色能力冲突
- 任务并行:多个独立Agent可同时处理互不依赖的子任务
- 专业分工:不同Agent可配置专属垂域模型,发挥各模型优势
- 复杂流程分层拆解:主Agent可将复杂任务逐层拆解,交由下层Agent分步执行
核心组成模块
1. 多角色独立配置(agents.list规则)
多Agent配置基于OpenClaw配置文件体系的agents.list字段实现,配置规则如下:
- 每个Agent必须配置全局唯一ID,作为路由、通信的唯一标识
- 每个Agent必须分配独立工作区,对应路径为
~/.openclaw/agents/<agent-id>/,独立存储会话历史、记忆文件、个性化配置,避免文件冲突 - 每个Agent可独立配置专属模型、工具权限白名单,可覆盖全局默认配置
- 配置优先级从高到低为:命令行参数 > 环境变量 > Agent特有配置(agents.list) > 全局默认配置(agents.defaults) > 内置默认值
- 每个Agent可在专属工作区配置独立的
SOUL.md(人格与职责定义)、MEMORY.md(长期记忆)、USER.md(用户信息),实现差异化角色设定。
2. 跨Agent点对点通信(agentToAgent)
跨Agent通信机制支持不同Agent之间点对点发送请求,无需用户介入即可完成协作:
配置方式
在主配置文件的tools.agentToAgent字段下开启功能,配置可通信Agent白名单,示例如下:
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["writer", "coder"] // 仅白名单内的Agent可主动发起通信
}
}
@ID调用规则
Agent在对话过程中可通过@<Agent唯一ID>的格式直接向目标Agent发起请求,例如用户对写作Agent说“请写一篇技术文章,需要代码示例,让 @coder 提供代码”,写作Agent会先生成文章大纲,内部调用代码Agent生成对应代码,最终整合结果返回给用户,整个协作过程对用户透明。
通信日志查询方法
可通过OpenClaw常用管理命令中的openclaw sessions list --agent <AgentID>查询指定Agent的所有会话历史,包括跨Agent的内部通信记录,便于审计与调试。
3. 动态子Agent编排(subagents)
动态编排机制支持主Agent根据任务需求自动创建、销毁子Agent,实现复杂任务的自动化拆解与并行执行:
核心参数
- 生成深度:子Agent的最大嵌套层级,默认值为3,即最多支持主Agent→一级子Agent→二级子Agent→三级子Agent的四层结构
- 单Agent子节点上限:单个主Agent最多可同时创建的子Agent数量,默认值为5,避免单个任务占用过多资源
- 全局并发上限:整个OpenClaw实例最多可同时运行的子Agent总数,默认值为20,避免整体资源耗尽
工作流程
- 主Agent接收用户提交的复杂任务
- 主Agent将任务拆解为多个独立的子任务,为每个子任务定义角色、权限、模型要求
- 主Agent根据参数限制动态创建对应子Agent,分配子任务
- 多个子Agent并行执行任务,执行完成后将结果回传给主Agent
- 主Agent整合所有子任务结果,统一返回给用户,同时销毁已完成任务的子Agent释放资源
边界与注意事项
- 多Agent的工作区必须完全独立,禁止多个Agent共享同一工作区,避免出现文件读写冲突、记忆错乱问题
- 跨Agent通信白名单需遵循OpenClaw安全实践规范的最小权限原则,仅添加必要的可通信Agent,避免权限滥用
- 动态子Agent编排的参数不要随意调大,否则可能导致token消耗激增、模型请求频率超限、系统资源耗尽等问题
- 定期运行
openclaw security audit --deep命令审计跨Agent通信日志,排查违规调用风险
相关条目
- OpenClaw
- OpenClaw深度教程:多Agent协作、通信与高级编排
- OpenClaw配置文件体系
- OpenClaw安全实践规范
- OpenClaw常用管理命令