你有没有想过,能不能在一台电脑上同时跑多个 AI 助手?
比如:一个专门帮你写代码,另一个负责日常聊天;或者一个给自己用,另一个给家人用。
OpenClaw 这个框架支持这种玩法,而且实现起来比想象中简单。今天就来聊聊这事儿的好处、怎么实现、以及需要注意什么。
为什么要搞多个角色?
场景一:工作生活分离
你肯定不希望工作相关的代码、文档混到日常聊天记录里。用两个独立的角色:
• 工作角色:配置了你的代码仓库路径、开发工具,专注于编程辅助 • 生活角色:了解你的日常偏好、饮食习惯,帮你记生日、查天气
两个角色的记忆完全隔离,互不干扰。
场景二:多人共享一台电脑
如果你家里有台常开的服务器或 NAS,可以让每个家庭成员都有自己的 AI 助手:
• 你用自己的 WhatsApp 和 AI 聊天 • 家人用他们的 WhatsApp 和同一个服务器上的另一个 AI 聊天 • 每个人的对话历史、偏好设置都是独立的
场景三:不同模型干不同的事
有些任务需要强大的推理能力,有些只需要日常对话:
• 快角色:用便宜的模型处理日常闲聊、简单问答 • 强角色:用高级模型处理复杂任务、代码审查、长文写作
这样既省成本,又能在关键时刻用上好模型。
场景四:做"救援机器人"
万一主机器人出问题了,你还需要一个能登录上去调试的备用通道。这就是所谓的 rescue bot——独立的配置、独立的端口,主机器人挂了也不影响它。
怎么实现?
OpenClaw 提供了两种方式:单 Gateway 多角色和多 Gateway。
方式一:单 Gateway 多角色(推荐)
一个 Gateway 进程里跑多个角色,资源占用少,配置简单。
第一步:创建多个角色
openclaw agents add codingopenclaw agents add daily每个角色会自动创建独立的工作空间,里面有 SOUL.md(人格设定)、AGENTS.md(行为规则)等配置文件。
第二步:绑定不同的通讯渠道
让 WhatsApp 走日常角色,Telegram 走工作角色:
// ~/.openclaw/openclaw.json{ agents: { list: [ { id: "daily", workspace: "~/.openclaw/workspace-daily" }, { id: "coding", workspace: "~/.openclaw/workspace-coding" }, ], }, bindings: [ { agentId: "daily", match: { channel: "whatsapp" } }, { agentId: "coding", match: { channel: "telegram" } }, ],}第三步:重启并验证
openclaw gateway restartopenclaw agents list --bindings方式二:一个 WhatsApp 号码,分给多个人
如果只有一个 WhatsApp 号,但想给不同的人用不同的角色:
{ agents: { list: [ { id: "alex", workspace: "~/.openclaw/workspace-alex" }, { id: "mia", workspace: "~/.openclaw/workspace-mia" }, ], }, bindings: [ { agentId: "alex", match: { channel: "whatsapp", peer: { kind: "direct", id: "+8613800138001" } }, }, { agentId: "mia", match: { channel: "whatsapp", peer: { kind: "direct", id: "+8613800138002" } }, }, ], channels: { whatsapp: { dmPolicy: "allowlist", allowFrom: ["+8613800138001", "+8613800138002"], }, },}这样,不同的人发消息给同一个 WhatsApp 号,会路由到不同的角色。
方式三:多 Gateway(高级玩法)
如果你需要完全隔离——比如救援机器人——可以跑多个独立的 Gateway:
# 主机器人openclaw --profile main gateway --port 18789# 救援机器人(隔离配置和端口)openclaw --profile rescue gateway --port 19001注意端口要隔开至少 20 个,因为 Gateway 会占用一系列派生端口(浏览器控制、Canvas 等)。
需要注意什么?
1. 配置隔离是关键
多角色模式下,每个角色必须有:
• 独立的工作空间:文件、记忆、人格设定互不干扰 • 独立的 agentDir:认证信息、模型配置分开存 • 独立的会话存储:聊天历史不会串台
如果这些配置混了,会出现各种奇怪的问题。
2. 端口冲突要避免
多 Gateway 模式下,每个 Gateway 的端口必须错开。不只是主端口,还有派生端口:
• 主端口: gateway.port• 浏览器控制端口:主端口 + 2 • CDP 端口范围:主端口 + 11 到 + 110
所以两个 Gateway 的主端口最好差 20 以上,比如 18789 和 19001。
3. DM 访问控制是全局的
在 WhatsApp 上,配对白名单是针对账号的,不是针对角色的。所以你不能让角色 A 只能收到某些人的消息,角色 B 只能收到另一些人的——消息先到达账号层面,然后才路由到角色。
4. 资源消耗
每个角色都会占用内存。如果角色很多,或者启用了沙箱模式,要留意服务器资源是否够用。
5. 安全问题
如果多个用户共享一台服务器:
• 默认情况下,所有私信共享同一个主会话,可能泄露隐私 • 务必设置 session.dmScope: "per-channel-peer"来隔离每个用户的会话
{ session: { dmScope: "per-channel-peer", },}小结
同一台电脑运行多个 OpenClaw 角色,核心价值是隔离:
• 数据隔离:工作归工作,生活归生活 • 人格隔离:每个角色有自己的"性格"和"记忆" • 模型隔离:简单任务用便宜模型,复杂任务用强模型
实现方式主要是配置绑定——告诉系统哪条消息该路由到哪个角色。多 Gateway 模式适合需要完全独立运行的场景(比如救援机器人)。
用好了,一台服务器就能变身成全家人的 AI 助手中心。挺香的。
夜雨聆风