乐于分享
好东西不私藏

OpenClaw 多 Agent 协作实战:一个入口搞定团队派活

OpenClaw 多 Agent 协作实战:一个入口搞定团队派活

大家好,我是知了星,今天带大家实操一下 OpenClaw 的多 Agent 协作配置——怎么让一个主 Agent 调度多个专业角色,实现真正的"一个入口,团队协作"。

▲ 多 Agent 协作:一个入口,团队各司其职

01.
为什么需要多 Agent

OpenClaw 天生支持多 Agent,每个 Agent 拥有独立身份、独立工作目录、独立人设。但默认状态下它们是完全隔离的——各干各的,互不相通。

问题来了:如果你有一个硬件产品经理 Agent、一个品牌负责人 Agent、一个硬件工程 Agent,难道每次都要挨个找它们聊?

答案是不用。只要打通 Agent 间的通信链路,让主 Agent 当"总调度",你只跟它说话就够了。

02.
认识 Agent 列表与消息路由

用一行命令查看当前有哪些 Agent:

1openclaw config get agents.list

假设配置里有 4 个角色:

1{2  "agents": {3    "list": [4      { "id": "main", "name": "小迷弟Claw" },5      { "id": "cb7675a1", "name": "硬件产品经理" },6      { "id": "4c5afdc1", "name": "硬件负责人" },7      { "id": "a69d5266", "name": "品牌和市场负责人" }8    ]9  }10}

每个 Agent 的关键字段:

○ id — 唯一标识符,后续所有配置都靠它

○ name — 显示名称,给人看的

○ workspace — 独立工作目录,Agent 之间文件隔离

○ agentDir — 人设目录,放 SOUL.md 等个性化文件

▲ 四个 Agent 各司其职,主 Agent 统一调度

再看消息路由。OpenClaw 用 bindings 决定消息走向——哪个渠道的消息发给哪个 Agent:

1{2  "bindings": [3    { "agentId": "main", "match": { "channel": "feishu" } },4    { "agentId": "main", "match": { "channel": "telegram" } },5    { "agentId": "main", "match": { "channel": "webchat" } }6  ]7}

注意看,所有渠道都指向了 main。其他三个 Agent 没有任何入口,在飞书上根本找不到它们。

怎么解决?两条路:

○ 方案 A:每个 Agent 配独立渠道 — 给每个 Agent 各建一个飞书 Bot / Telegram Bot,谁的活谁接。优点是直接,缺点是要管一堆 Bot。

○ 方案 B:主 Agent 中转调度(推荐) — 只保留一个 Bot 入口,开启 Agent 间通信,让主 Agent 派活。配置简单,体验好。

我们选方案 B。

▲ 所有渠道消息汇入主 Agent,再按需派活给专业角色

03.
两步核心配置

第一步:打开 agentToAgent 通信

这是 Agent 间通信的总开关。编辑 ~/.openclaw/openclaw.json

修改前(默认关闭):

1{2  "tools": {3    "agentToAgent": {4      "enabled": false,5      "allow": ["main"]6    }7  }8}

修改后:

1{2  "tools": {3    "agentToAgent": {4      "enabled": true,5      "allow": ["main", "cb7675a1", "4c5afdc1", "a69d5266"]6    }7  }8}
enabled: true 打开通信能力,allow 列出所有参与通信的 Agent id。  

第二步:授权派活权限(很多人栽这里)

光开通信还不够。你还得在主 Agent 的配置里显式声明:"我允许派活给谁"。

在 agents.list 里给 main 加上 subagents.allowAgents

1{2  "agents": {3    "list": [4      {5        "id": "main",6        "name": "小迷弟Claw",7        "subagents": {8          "allowAgents": ["cb7675a1", "4c5afdc1", "a69d5266"]9        }10      }11    ]12  }13}

不加这个会怎样?主 Agent 调用 sessions_spawn 派活时直接报错:

1status: "forbidden"2error: "agentId is not allowed for sessions_spawn (allowed: none)"

这个报错信息很明确,但第一次见的人容易懵——明明 agentToAgent 都开了,怎么还 forbidden?因为这是两套权限:agentToAgent 管通信,allowAgents 管派活,缺一不可。

▲ 两套权限缺一不可:通信层 + 调度层

04.
验证与实战派活

改完配置必须重启:

1openclaw gateway restart

重启后让主 Agent 执行 agents_list,看看返回的列表:

1{2  "agents": [3    { "id": "main", "name": "小迷弟Claw" },4    { "id": "4c5afdc1", "name": "硬件负责人" },5    { "id": "a69d5266", "name": "品牌和市场负责人" },6    { "id": "cb7675a1", "name": "硬件产品经理" }7  ]8}

如果列表里只有 main 一个,说明 allowAgents 没配对,回去检查。

配置验证通过后,主 Agent 就可以通过 sessions_spawn 派活了:

1sessions_spawn({2  agentId: "a69d5266",        // 品牌和市场负责人3  mode: "run",                // 一次性运行4  label: "brand-analysis",    // 任务标签5  runTimeoutSeconds: 120,     // 超时时间6  task: "请从品牌角度分析以下项目列表..."7})

子 Agent 跑完后自动把结果推回主 Agent,主 Agent 再整理转述给你。整个过程用户只需要跟一个入口对话。

实际场景中就是这样——你在飞书说一句"让品牌负责人分析下咱们的项目优先级",主 Agent 听懂了,派活给对应角色,等结果,回复你。你甚至不需要知道后面有几个 Agent 在干活。

▲ 用户一句话,主 Agent 自动调度专业角色完成任务

05.
踩坑实录
坑一:只开了 agentToAgent,没配 allowAgents

两套权限缺一不可。agentToAgent.enabled 是通信层面的,subagents.allowAgents 是调度层面的。很多人只配了前者就以为完事了,结果 sessions_spawn 返回 forbidden。

坑二:飞书只有一个 Bot,其他 Agent 找不到

飞书一个 appId 对应一个 Bot。如果 bindings 只绑了 main,其他 Agent 确实没有入口。要么走方案 A(多建 Bot),要么走方案 B(主 Agent 中转),别两头空。

坑三:改了配置没重启

OpenClaw 的配置不热加载,改完 openclaw.json 必须 openclaw gateway restart。这个简单但容易忘。

06.
进阶玩法

给子 Agent 用便宜模型省钱

不是每个子任务都需要最强模型。在 agents.defaults 里统一配:

1{2  "agents": {3    "defaults": {4      "subagents": {5        "model": "cheaper-model/id"6      }7    }8  }9}

主 Agent 用贵的保证理解和调度质量,子 Agent 用便宜的跑具体任务,成本直接砍一半。

嵌套调度:Agent 也可以再派活

1{2  "agents": {3    "defaults": {4      "subagents": {5        "maxSpawnDepth": 26      }7    }8  }9}

允许子 Agent 再 spawn 子子 Agent,形成调度链。适合复杂项目拆解场景。

给每个 Agent 定制独立人设

每个 Agent 的 agentDir 下放自己的人设文件:

1~/.openclaw/agents/a69d5266/agent/2  SOUL.md     # 品牌负责人的性格和风格3  AGENTS.md   # 工作规则4  TOOLS.md    # 工具使用备注

这样品牌负责人写出来的东西是品牌味儿的,硬件工程师回复的是技术范儿的——各司其职,不串味。

▲ 两行关键配置,搞定多 Agent 协作

07.
总结

整个多 Agent 协作,核心就两行配置:

○ tools.agentToAgent.enabled: true — 打开 Agent 间通信

○ agents.list[main].subagents.allowAgents — 授权可调度的 Agent 列表

效果是:用户只跟一个主 Agent 对话,主 Agent 按需调度专业角色,结果汇总后统一回复。像一个真正的团队在协作。

配置五分钟,用起来是另一个级别的体验。

参考来源

[1]https://docs.openclaw.ai

[2]https://github.com/nicepkg/openclaw

如果觉得有收获,欢迎关注「知了星AI」,一起看 AI 能把内容创作带到哪里。