W
AI-Wiki
CONCEPT

OpenClaw多Agent协作机制

基本定义

OpenClaw多Agent协作机制是OpenClaw开源多智能体框架的核心协作能力层,旨在解决单Agent能力边界有限、复杂任务处理效率低的问题,其核心价值包括四点:

  1. 角色分离:不同Agent承担不同职责,避免单一角色能力冲突
  2. 任务并行:多个独立Agent可同时处理互不依赖的子任务
  3. 专业分工:不同Agent可配置专属垂域模型,发挥各模型优势
  4. 复杂流程分层拆解:主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,避免整体资源耗尽

工作流程

  1. 主Agent接收用户提交的复杂任务
  2. 主Agent将任务拆解为多个独立的子任务,为每个子任务定义角色、权限、模型要求
  3. 主Agent根据参数限制动态创建对应子Agent,分配子任务
  4. 多个子Agent并行执行任务,执行完成后将结果回传给主Agent
  5. 主Agent整合所有子任务结果,统一返回给用户,同时销毁已完成任务的子Agent释放资源

边界与注意事项

  1. 多Agent的工作区必须完全独立,禁止多个Agent共享同一工作区,避免出现文件读写冲突、记忆错乱问题
  2. 跨Agent通信白名单需遵循OpenClaw安全实践规范的最小权限原则,仅添加必要的可通信Agent,避免权限滥用
  3. 动态子Agent编排的参数不要随意调大,否则可能导致token消耗激增、模型请求频率超限、系统资源耗尽等问题
  4. 定期运行openclaw security audit --deep命令审计跨Agent通信日志,排查违规调用风险

相关条目