OpenClaw多Agent路由配置
目录
多 agent + 渠道路由(bindings)示例
| |
说明
agents.list[].workspace为每个 agent 的默认工作区目录,bindings使用match.channel / accountId / peer / guildId / teamId进行路由匹配,peer.kind常用为dm或group,不同渠道含义一致,但 ID 需使用该渠道原生 ID
查看当前配置是否已被加载:
openclaw agents list
绑定规则怎么用
- 位置:
openclaw.json的agents.bindings数组里,每条规则包含agentId和match两部分, match支持字段:channel、accountId、peer(含kind+id)、guildId、teamId、roles,- 常见场景:
- 私聊:使用
peer.kind: "dm"+ 对方 ID - 群聊:使用
peer.kind: "group"+ 群 ID - Discord:可用
guildId或roles - Slack:常用
teamId+peer
- 私聊:使用
最小可用示例
使用流程
- 把规则加到
openclaw.json的agents.bindings,保存后重启 gateway/CLI 进程 - 用
openclaw agents list --bindings查看当前路由命中情况
使用不同 agents 的方式
- CLI 手动指定:用
openclaw agent --agent <id> --message "..."直接选择某个 agent - 渠道路由自动分配:在
agents.bindings里按channel/accountId/peer/guildId/teamId写规则,让消息自动路由到对应 agent, - 默认 agent:
agents.list里default: true的那一个会作为默认主会话的 agent
常用命令
- 查看有哪些 agent:
openclaw agents list, - 查看路由绑定:
openclaw agents list --bindings, - 直接指定 agent 发消息:
| |
绑定规则结构
agentId:目标 agent 的 idmatch.channel:渠道名(如whatsapp/slack/discord/telegram)match.accountId:同一渠道多账号时区分账号(可选)match.peer.kind:dm或groupmatch.peer.id:对端或群组的原生 IDmatch.guildId/match.teamId:Discord/Slack 的组织范围路由(可选)
最小可用示例
使用流程
- 写好
agents.bindings→ 重启 gateway/CLI - 用
openclaw agents list --bindings查看路由是否命中
协作优化代码
| |
- tools.agentToAgent.enabled: true :开启 agent-to-agent 消息工具,让一个 agent 可以主动调用另一个 agent 协作处理任务(默认是关闭的)。
- tools.agentToAgent.allow: [“main”,“coder”,“writer”] :只允许这三个 agent 互相发送 agent-to-agent 消息,避免其他未列出的 agent 参与协作。
这些规则在多代理协作与工具策略文档中明确:agent-to-agent 默认关闭,必须显式开启并做 allowlist 限制。 Multi-Agent Routing Tools
其他优化方向
- 按职责分离工具权限 :给 coder 开启文件/执行相关工具, writer 仅保留文本与消息类工具,减少误操作面。
- 按渠道或账号更细路由 :在 bindings 里增加 accountId 或 peer 规则,让不同来源流量更精准分配。
- 会话隔离策略 :设置 session.dmScope 为更细的粒度,避免不同人或渠道的对话混在一起。
- 模型与成本分层 : main 用强模型做统筹, writer / coder 用性价比模型做执行,降低成本且保持质量。
- Sandbox 隔离 :对有风险的 agent 开启 sandbox,限制其访问路径和工具范围。
- 消息权限收紧 :对敏感渠道设置 dmPolicy / allowFrom ,减少不必要的入口。
概念说明
- accountId :同一渠道下的“账号实例”。当一个渠道支持多账号(或多连接)时,用 accountId 区分不同账号。例如同一个 Feishu/WhatsApp 配置下的多个账户路由到不同 agent。 types.agents.ts
- peer :具体的聊天对象或群组。由 kind (direct/group/thread 等)和 id (该对象的唯一 ID)组成,用于把特定人或特定群的消息路由到某个 agent。 types.agents.ts
- accountId 解决“同一渠道多账号”的问题
- peer 解决“同一账号下按具体联系人/群组细分”的问题
目前已经实现多agent多项目多任务
原文链接:
https://www.17you.com/programming/openclaw%E5%A4%9Aagent%E8%AE%BE%E7%BD%AE/
已复制!
编程和技术
寻找技术支持帮助和技术合伙人一起搞事。