乐于分享
好东西不私藏

同一台电脑运行多个 OpenClaw 角色?这事儿其实挺有用

同一台电脑运行多个 OpenClaw 角色?这事儿其实挺有用

你有没有想过,能不能在一台电脑上同时跑多个 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 助手中心。挺香的。