Appearance
OpenClaw进阶指南:多Agent路由、协作与权限配置全解析
上一篇讲完怎么把多个助理跑起来,这篇讲进阶:路由怎么设计得精确、助理间怎么直接传话、权限怎么分、出问题怎么查。
bindings进阶:路由规则怎么设计
OpenClaw的路由遵循一个原则:最精确的规则优先。
优先级从高到低
| 优先级 | 匹配规则 |
|---|---|
| 1 | 精确到某个用户或群(peer匹配) |
| 2 | 精确到某个账号(accountId) |
| 3 | 精确到某个频道(channel) |
| 4 | 兜底到默认助理 |
实际场景举例
有一个重要的私聊,想让ops来处理,其他Telegram消息走普通助理:
json
"bindings": [
{
"agentId": "ops",
"match": {
"channel": "telegram",
"accountId": "ops",
"peer": {"kind": "direct", "id": "tg:123456789"}
}
},
{
"agentId": "main",
"match": {"channel": "telegram", "accountId": "main"}
}
]第一条精确到具体用户,优先匹配;其他消息走第二条兜底。
两个容易踩的坑
| 坑 | 说明 |
|---|---|
| 不写accountId | 只匹配默认账号,多Bot时消息会路由到错误助理 |
| 多条binding同时匹配 | 配置文件里靠前的优先,精确规则写前面 |
sessions_send:让助理之间直接传话
多个助理默认完全隔离,各干各的。但很多场景需要协作。
实际效果
你给小皮说「让小众帮我想三个选题」,小皮自己去联系小众,小众处理完回复给小皮,小皮整理后告诉你。全程不用你转达。
两种发法
等待模式(需要结果才能继续):
python
sessions_send(
sessionKey="agent:xiaozhong:main",
message="帮我想三个多Agent相关的选题",
timeoutSeconds=30
)即发即走(不急着要结果):
python
sessions_send(
sessionKey="agent:xiaozhong:main",
message="今天的选题任务已派发",
timeoutSeconds=0
)配置开启
这个功能默认关闭,需要显式开启并指定允许互发的助理:
json
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["ops", "xiaozhong", "xiaowen", "xiaoji"]
}
}防死循环机制:两个助理互发消息,来回最多5轮,超过自动停止。
助理分工示例
| 助理 | 职责 |
|---|---|
| 小皮(主控) | 日常对话入口,任务分发,跨助理协调 |
| 小维(ops) | 系统运维和配置管理,技术类问题 |
| 小众 | 公众号内容,从选题到发布全流程 |
| 小文 | 内容统筹,AI日报、选题推送 |
| 小记 | 个人日记,只记私人内容 |
| 小设 | 配图和视觉设计 |
| dev | 代码开发,编程任务才找它 |
核心原则:边界比能力更重要。每个助理的AGENTS.md写清楚只做什么、不做什么、找谁汇报。
权限分级配置
OpenClaw支持给每个助理单独配工具权限:
json
{
"id": "xiaozhong",
"tools": {
"allow": ["read", "write", "web_search", "sessions_send"],
"deny": ["exec", "browser"]
}
}分级示例
| 助理类型 | 权限 |
|---|---|
| 小皮(主控) | 全权限:执行命令、改文件、操作浏览器 |
| 内容类助理 | 读写文件、搜索、给其他助理发消息;不能执行shell |
| 对外助理 | 只开读取和搜索,其他全关 |
沙箱隔离(执行代码的助理):
json
{"id": "dev", "sandbox": {"mode": "all", "scope": "agent"}}出了问题怎么查
第一步:看日志
bash
openclaw gateway logs配置错误、Token错误、路由错误大多在这里报出来。
第二步:确认路由
bash
openclaw agents list --bindings列出所有助理和路由规则,直观看到消息会被交给哪个助理。
第三步:单独私聊测
直接私聊某个Bot,不在群里。私聊没问题但群里没响应,99%是BotFather隐私模式没关。
第四步:检查agentToAgent
助理间协作没反应,先确认开关开了,再查allow列表里有没有对应的助理id。
总结
| 要点 | 说明 |
|---|---|
| 路由优先级 | peer > accountId > channel > 默认 |
| 助理协作 | sessions_send,默认关闭需显式开启 |
| 权限分级 | allow/deny精细化控制 |
| 排查四步 | 日志→路由→私聊→agentToAgent |
分工比智商重要。搭完之后不是多了几个AI可以问,而是有了一支可以并行干活的团队。
关键词:OpenClaw多Agent, Agent路由, sessions_send, Agent协作, 权限配置, bindings
