OpenClaw 多Agent体系:正式Agent、子Agent与ACP Agent

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

在这里插入图片描述

前言

OpenClaw的Agent体系设计挺巧的,但「正式注册Agent」「子Agent」「ACP Agent」这三个概念经常把人绕进去。我当初就被绕进去过——它们都能跑任务,但完全不是一回事,混用就会踩坑。

这篇文章来自实际踩坑,把三个概念掰开揉碎讲,配上配置示例和避坑指南。


一、三个核心概念

1.1 正式注册Agent(Multi-Agent Routing)

正式Agent是配置文件里注册过的「常驻型」选手,每个都有自己独立的:

  • Workspace:独立工作目录,里面放着SOUL.mdAGENTS.mdUSER.md这些定义人格的文件
  • agentDir:独立状态目录,存认证凭证、模型配置
  • Session Store:独立会话历史,存在~/.openclaw/agents/<agentId>/sessions/

认证是严格隔离的——每个Agent只读自己agentDir下的auth-profiles.json,主Agent的凭证不会自动共享给别的Agent。如果需要共享,得手动把文件复制过去。

~/.openclaw/
├── agents/
│   ├── main/          # 主Agent
│   │   ├── agent/
│   │   │   └── auth-profiles.json
│   │   └── sessions/
│   ├── work/          # 工作Agent
│   │   ├── agent/
│   │   │   └── auth-profiles.json  # 跟main的是独立的
│   │   └── sessions/
│   └── coding/        # 编程Agent
│       ├── agent/
│       └── sessions/
└── workspaces/
    ├── workspace-main/
    ├── workspace-work/
    └── workspace-coding/

路由机制:消息通过bindings规则路由到对应Agent,遵循「最具体匹配优先」原则:

  1. peer匹配(精确的DM/群组/频道ID)
  2. parentPeer匹配(线程继承)
  3. guildId + roles(飞书组织角色路由)
  4. guildId(飞书企业级别)
  5. accountId匹配
  6. 降级到默认Agent
{
  agents: {
    list: [
      { id: "main", default: true, workspace: "~/.openclaw/workspace-main" },
      { id: "work", workspace: "~/.openclaw/workspace-work" },
      { id: "coding", workspace: "~/.openclaw/workspace-coding" },
    ]
  },
  bindings: [
    // 飞书工作台 → main
    { agentId: "main", match: { channel: "feishu", accountId: "personal" } },
    // 飞书企业版 → work
    { agentId: "work", match: { channel: "feishu", accountId: "enterprise" } },
    // 第二个飞书机器人 → coding
    { agentId: "coding", match: { channel: "feishu", accountId: "coding-bot" } },
    // 同一个飞书里,特定群组 → work
    {
      agentId: "work",
      match: {
        channel: "feishu",
        accountId: "personal",
        peer: { kind: "group", id: "oc-xxxxx-work-team" }
      }
    }
  ]
}

典型用途

  • 家庭Bot / 工作Bot / 私人助理完全隔离
  • 不同飞书机器人账号、不同部门群组路由
  • 不同能力侧重路由到不同人格Agent

1.2 子Agent(Sub-Agent via sessions_spawn)

子Agent是「临时工」——从主Agent会话里派生出来,在后台独立跑任务,完事儿了自动汇报结果。

会话Key格式agent:<agentId>:subagent:<uuid>

主会话:agent:main:main
子Agent:agent:main:subagent:3d8f2b1c-...

核心工作流

  1. 主Agent调用sessions_spawn启动子Agent
  2. 子Agent在独立会话里跑,不阻塞主会话
  3. 跑完了通过announce机制把结果推送回主会话
// 启动一个子Agent
sessions_spawn({
   
   
  task: "帮我调研竞品A的最新动态,整理成摘要",
  label: "竞品调研",
  model: "minimax-m2.1",  // 可以指定更便宜的模型
  runTimeoutSeconds: 900  // 15分钟超时
})

announce机制:子Agent不是简单返回结果,而是通过OpenClaw内部的announce步骤把结果投递到主会话的聊天频道。主会话收到的是运行时生成的结构化事件,包含:

  • Result:子Agent的回复文本或最后的工具结果
  • Statuscompleted successfully / failed / timed out
  • 运行时长和Token统计
  • 会话Key和转录文件路径

工具策略(Tool Policy):子Agent默认拿到除会话工具外的全部工具,即:

  • 可用:readwriteeditexecprocess
  • 禁用:sessions_listsessions_historysessions_sendsessions_spawn

除非开启maxSpawnDepth >= 2让子Agent当「编排器」,它才能管理自己的子子Agent。

嵌套深度控制

深度 会话Key 角色 能spawn子Agent?
0 agent:<id>:main 主Agent 始终可以

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值