OpenClaw 部署指南:https://www.azman.cn/

平台永久地址:www.azman.cn/

温馨提示: 本站内容精选自优质公开渠道,仅供分享与交流。我们尊重原创,如涉及版权问题,请权利方及时与我们联系,我们将在核实后第一时间处理。感谢您的理解与支持!

一台服务器,五个 AI 角色:OpenClaw 多 Agent 隔离路由完全指南

文章核心摘要:
本文详细介绍了 OpenClaw 多 Agent 隔离路由系统的设计和用法。核心议题是实现多个 AI 角色在同一台服务器上运行时的严格隔离,确保它们拥有独立的身份、记忆、权限和行为边界,而非简单的对话窗口分离。
文章首先通过一个现实案例引入:作者在一台服务器上运行五个不同的 AI Agent,分别服务于私人、工作、家庭、开发、通知等场景。每个 Agent 在 Telegram、WhatsApp、Discord 等不同渠道的特定账号或群组中工作,但彼此在会话历史、工具权限和人格设定上完全隔绝。
文章的核心概念是,在 OpenClaw 中,一个 Agent​ 代表一套完整的独立“身份”,包含以下要素:
  1. 独立的工作目录:每个 Agent 拥有自己的 SOUL.md(人格设定)、AGENTS.md(行为规则)、MEMORY.md(长期记忆)等文件。
  2. 独立的会话历史:不同 Agent 的聊天记录互不共享。
  3. 独立的认证配置:API 密钥、OAuth 令牌等服务凭据各自管理。
  4. 独立的工具权限:每个 Agent 可使用或禁用的工具(如文件读写、代码执行、浏览器操作)可以精确控制。
路由匹配的机制是系统的关键。通过在配置文件(openclaw.json)的 bindings部分设定规则,系统会根据消息来源的渠道(channel)、账号(accountId)或特定的群组/用户(peer)来决定由哪个 Agent 处理消息。匹配遵循“精确优先”原则:peer匹配 > accountId匹配 > channel匹配 > 默认Agent。
工具权限控制是通过在每个 Agent 的配置中设置 allow(白名单)和 deny(黑名单)列表来实现的。例如,家庭群的 Agent 可以只允许读取文件和查看会话列表,而禁止所有执行、写入、浏览等操作,从而从根源上防止越权行为。
人格设定是通过每个 Agent 工作目录下的 SOUL.md等文件实现的。这意味着虽然底层是同一个 AI 模型,但不同的 Agent 可以根据其角色(如温和的家庭助手、专业的工作助手)展现出完全不同的性格和对话边界。
文章还介绍了如何处理同一渠道的多账号、如何验证部署、配置中的注意事项(如 peer id 的获取、binding 规则的顺序),以及 Agent 间的通信问题。默认情况下,Agent 之间是隔离的,如需协作传递任务,必须在配置中显式开启并指定允许通信的 Agent 组合。
最后,作者强调了这套系统的核心价值在于创建清晰的使用边界,让每个 AI 角色“各司其职”,在不同的场景中专注、高效地工作,避免了单一万能助手可能带来的信息混淆和语境干扰。这背后的设计选择是对 AI 使用边界和安全性的深思熟虑。

从0到AI,每天分享 AI 工具的真实用法和落地经验。全文约 2900 字,建议收藏慢读。

一台服务器,五个 AI 角色:OpenClaw 多 Agent 隔离路由完全指南


“多 agent 不是多开几个对话框,而是让不同的 AI 真正活在不同的’身份’里。” “工作群里的 AI 不该知道你家庭群在聊什么。” “一台服务器,五个 AI,各自有自己的记忆、风格和权限。”


我之前写过一篇多 Agent 协作的文章,讲的是 Content、Social、Dev 这几个助手怎么分工干活。

那篇文章关注的是”协作”——Agent 之间怎么传任务、怎么配合。

这篇聊的是另一件事:隔离

当你有多个 AI 角色跑在同一台服务器上,你怎么确保它们互不干扰?你家庭群的 AI 不会知道你工作群在聊什么?给同事用的助手不会有你的个人日历权限?

这就是 OpenClaw 多 Agent 路由系统要解决的问题。


从一个真实的需求说起

我现在跑着五个 Agent:

  • personal:我的私人助手,什么都能做,跑在 Telegram 主账号上
  • work:工作助手,连着公司的 Google Workspace,跑在 WhatsApp 工作号上
  • family:家庭群专用,只能读文件、不能执行命令,跑在家庭 WhatsApp 群里
  • coding:开发助手,有完整的代码执行权限,跑在 Discord 开发服务器
  • alerts:只推送通知的机器人,跑在 Telegram 另一个 bot 账号上

这五个角色,跑在同一台 VPS 上,但彼此之间完全隔离——不同的聊天历史、不同的工具权限、不同的性格设定。

做到这一切,只需要一个 OpenClaw 配置文件。


核心概念:Agent 是什么?

在 OpenClaw 里,一个 Agent 不是一个对话,而是一整套独立的”身份”:

  • 独立的工作目录:有自己的 SOUL.mdAGENTS.mdMEMORY.md
  • 独立的会话历史:不同 Agent 的聊天记录完全分开
  • 独立的认证配置:API key、OAuth token、外部服务登录,各管各的
  • 独立的工具权限:可以精确控制这个 Agent 能用哪些工具

你和 personal Agent 说的每一句话,work Agent 完全不知道。这不是”对话隔离”,而是真正意义上的身份隔离。


一份完整的配置

先看整体结构,再一块一块解释:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line{  "agents": {    "list": [      {        "id": "personal",        "name": "Personal Assistant",        "default": true,        "workspace": "~/.openclaw/workspace-personal"      },      {        "id": "work",        "name": "Work Assistant",        "workspace": "~/.openclaw/workspace-work"      },      {        "id": "family",        "name": "Family Bot",        "workspace": "~/.openclaw/workspace-family",        "tools": {          "allow": ["read", "sessions_list"],          "deny": ["exec", "write", "edit", "browser"]        }      },      {        "id": "coding",        "name": "Coding Agent",        "workspace": "~/.openclaw/workspace-coding"      },      {        "id": "alerts",        "name": "Alerts Bot",        "workspace": "~/.openclaw/workspace-alerts"      }    ]  },
  "bindings": [    { "agentId": "personal", "match": { "channel": "telegram", "accountId": "default" } },    { "agentId": "work", "match": { "channel": "whatsapp", "accountId": "biz" } },    {      "agentId": "family",      "match": {        "channel": "whatsapp",        "peer": { "kind": "group", "id": "120363xxxxxxxx@g.us" }      }    },    { "agentId": "coding", "match": { "channel": "discord", "accountId": "coding-bot" } },    { "agentId": "alerts", "match": { "channel": "telegram", "accountId": "alerts" } }  ]}

路由是怎么决定的?

每条消息进来,OpenClaw 会自动找最匹配的 binding 来决定由哪个 Agent 处理。

匹配的优先级从高到低:

  1. 精确匹配特定群/用户peer 字段)——最优先
  2. 账号级别匹配accountId 字段)
  3. 渠道级别匹配(只写了 channel
  4. 默认 Agent(没有匹配时,用 default: true 的那个)

实际效果:

  • 家庭群的消息来了 → 精确匹配到家庭群的 peer id → 交给 family Agent
  • WhatsApp 工作号收到消息 → 匹配到 biz accountId → 交给 work Agent
  • Telegram 主 bot 收到私信 → 匹配 default 账号 → 交给 personal Agent
  • alerts bot 收到消息 → 匹配 alerts accountId → 交给 alerts Agent

每条路由都是确定性的,没有歧义,没有”猜”。


工具权限怎么配?

家庭群的 AI,我不希望它能执行命令或者写文件。

配置很直接:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line{  "id": "family",  "workspace": "~/.openclaw/workspace-family",  "tools": {    "allow": ["read", "sessions_list"],    "deny": ["exec", "write", "edit", "browser", "canvas"]  }}

allow 是白名单,deny 是黑名单。配了 deny 之后,就算有人在群里说”帮我执行这段脚本”,Agent 也做不到——工具根本不在它的可用列表里。

coding Agent 则相反,需要完整的执行能力:

ounter(lineounter(lineounter(lineounter(line{  "id": "coding",  "workspace": "~/.openclaw/workspace-coding"}

不设限制,默认所有工具都可用。


每个 Agent 有自己的人格

每个 workspace 目录里放的是这个 Agent 的”灵魂文件”:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line~/.openclaw/workspace-personal/  ├── SOUL.md       ← 性格、角色设定  ├── AGENTS.md     ← 行为规则  ├── USER.md       ← 用户信息  └── MEMORY.md     ← 长期记忆
~/.openclaw/workspace-family/  ├── SOUL.md       ← 温和、简洁、不涉及工作话题  ├── AGENTS.md     ← 只回答家庭相关问题  └── MEMORY.md     ← 家庭共同记忆

family Agent 的 SOUL.md 可以是:

ounter(lineounter(lineounter(lineounter(lineounter(line你是家庭群的助手。- 语气温和,适合所有年龄段- 只讨论生活相关话题,不讨论工作- 遇到技术问题,引导家人联系 Victor- 不执行任何代码或文件操作

work Agent 的 SOUL.md 是另一套:

ounter(lineounter(lineounter(lineounter(line你是工作助手。- 专业、简洁、重点导向- 熟悉公司项目背景(见 projects/)- 邮件草稿直接给出,不需要确认

同一套 AI 底层,完全不同的人格和行为边界。


多账号怎么处理?

以 WhatsApp 为例,我有两个号:个人号和工作号。登录的时候分别给不同的 accountId:

ounter(lineounter(lineopenclaw channels login --channel whatsapp --account personalopenclaw channels login --channel whatsapp --account biz

然后在 bindings 里,personal 的 WhatsApp 给 personal Agent,biz 的给 work Agent:

ounter(lineounter(lineounter(lineounter(line"bindings": [  { "agentId": "personal", "match": { "channel": "whatsapp", "accountId": "personal" } },  { "agentId": "work", "match": { "channel": "whatsapp", "accountId": "biz" } }]

Telegram 同理——两个 bot token,两个 accountId,两个 Agent:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line"channels": {  "telegram": {    "accounts": {      "default": { "botToken": "主 bot 的 token" },      "alerts": { "botToken": "alerts bot 的 token" }    }  }}

部署完之后,验证一下

配置改完,重启 Gateway:

ounter(lineopenclaw gateway restart

然后检查路由是否正确:

ounter(lineopenclaw agents list --bindings

输出会显示每个 Agent 绑定了哪些渠道/账号/群组。如果哪条规则不对,可以直接在 openclaw.json 里调整,再重启。


一个常见的小坑:peer 匹配要精确

家庭群的 binding 需要填群的 peer id:

ounter(line{ "agentId": "family", "match": { "channel": "whatsapp", "peer": { "kind": "group", "id": "120363xxxxxxxx@g.us" } } }

这个 id 在哪找?第一次收到群消息后,OpenClaw 的日志里会打出来。或者运行:

ounter(lineopenclaw sessions --json | grep group

找到对应的群 session,里面有 peer id。

另外要注意顺序:更精确的 binding 要排在前面。同一个 WhatsApp 个人号,我可能既有”默认给 personal Agent”的规则,又有”这个特定的群给 family Agent”的规则——群规则要放在前面,否则会被默认规则拦截。


多 Agent 之间能互相通信吗?

默认不能,这是安全设计。

如果你需要 Agent 之间传递任务(比如 personal Agent 让 coding Agent 去跑一段代码),需要在配置里显式开启:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineounter(line{  "tools": {    "agentToAgent": {      "enabled": true,      "allow": ["personal", "coding"]    }  }}

只有 allow 列表里的 Agent 组合才能互发消息。不在列表里的,即使你告诉 Agent “去联系 work Agent”,它也做不到。


实际用下来的感受

这套多 Agent 路由系统最值得称道的地方,不是”功能强大”,而是边界清晰

以前我试过用一个 AI 处理所有事,结果它什么都知道一点,每件事都做得凑合。你问它工作上的事,它可能会联想到你家里的话题;你在家庭群里问它,它会给出过于专业的答复。

隔离之后就不一样了。家庭群的 AI 就是朴实地答家庭问题,工作助手就是专注在工作语境里,互不打扰。

这种”各司其职”的感觉,比一个万能助手更顺手。


写在最后

多 Agent 隔离路由,看起来是个配置问题,背后其实是一个设计选择:你想要一个什么样的 AI 使用边界?

几个核心点回顾:

  • Agent = 独立身份:工作目录、历史、认证、工具权限,全部隔离
  • Binding = 路由规则:根据渠道、账号、群组,精确分发到对应 Agent
  • 精确优先:peer 匹配 > accountId 匹配 > channel 匹配 > 默认 Agent
  • 工具限制:按 Agent 配置 allow/deny,细粒度控制能力边界
  • 互通需显式开启:默认 Agent 之间是隔离的,需要通信要单独配置

一台服务器,五个性格各异、各有边界的 AI 角色。你需要的,可能比想象中少。

给TA打赏
共{{data.count}}人
人已打赏
技能技巧

Claude 工程师亲授 OpenClaw 调教指南:Skills 的工程化心法

2026-3-27 3:07:43

技能技巧

openclaw + skill使用探索 -- 吐槽版

2026-3-21 23:44:15

版权与安全声明:本站所发布的内容来源于互联网,我们致力于传递有价值的信息,同时也尊重并维护原作者的权益。若文章内容出现版权问题,或文中使用的图片、资料、下载链接等,如涉及侵权,请联系我们删除或调整。联系6065565#qq.com(请替换#为@)

网络信息繁杂,请读者自行甄别内容真实性,谨防受骗。本站目前无任何收费项目,官方福利群https://t.me/

官方福利群: https://t.me/

觉得内容不错?欢迎分享给好友,复制链接使用浏览器打开,让更多朋友看到!

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索