你有没有想过:能不能用一个 OpenClaw 实例,同时服务多个人?
比如:
• 一个机器人给家人用,管日程、提醒家务
• 一个机器人给自己用,处理工作事务
• 一个机器人给部门群用,回答常见问题
答案是:可以!
OpenClaw 支持多智能体(Multi-Agent)配置,一个网关就能托管多个完全隔离的 AI "大脑"。
什么是"一个智能体"?
在 OpenClaw 里,一个智能体(Agent)是一个完全独立的作用域,拥有自己的:
• 工作区:独立的文件、人设(SOUL.md)、用户信息(USER.md)
• 会话存储:聊天历史完全隔离
• 认证配置:每个智能体可以有自己的权限和凭证
• 工具权限:可以限制某些智能体只能用特定工具
简单说:每个智能体就是独立的一套人格,互不干扰。
快速开始:添加一个新智能体
用一条命令就能创建:
openclaw agents add work
这会:
1. 创建新智能体 work
2. 生成独立的工作区 ~/.openclaw/workspace-work
3. 创建独立的状态目录 ~/.openclaw/agents/work/agent
查看所有智能体:
openclaw agents list --bindings
配置多智能体路由
要让消息正确路由到不同智能体,需要在 ~/.openclaw/openclaw.json 里配置 bindings。
场景一:不同渠道 → 不同智能体
比如:飞书用于日常聊天,Telegram 用于深度工作。
{ "agents": { "list": [ { "id": "chat", "name": "日常小助手", "workspace": "~/.openclaw/workspace-chat" }, { "id": "deepwork", "name": "深度工作", "workspace": "~/.openclaw/workspace-deepwork" } ] }, "bindings": [ { "agentId": "chat", "match": { "channel": "feishu" } }, { "agentId": "deepwork", "match": { "channel": "telegram" } } ]}这样,飞书消息自动走 chat 智能体,Telegram 消息走 deepwork 智能体。
场景二:同一渠道,不同人 → 不同智能体
假设你有一个飞书机器人应用,想让团队里两个人各自有自己的 AI 助手:
{ "agents": { "list": [ { "id": "alex", "name": "Alex 的助手", "workspace": "~/.openclaw/workspace-alex" }, { "id": "mia", "name": "Mia 的助手", "workspace": "~/.openclaw/workspace-mia" } ] }, "bindings": [ { "agentId": "alex", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxxxxxx1" } } }, { "agentId": "mia", "match": { "channel": "feishu", "peer": { "kind": "dm", "id": "ou_xxxxxxx2" } } } ]}这里解释一下配置里的几个概念:
• DM:Direct Message,即"私信"。一对一聊天。
• peer.kind: "dm":表示匹配的是私信场景。
• peer.id:用户的唯一标识。在飞书里叫 open_id,格式像 ou_xxxxxxx。
open_id 从哪来?
当用户给飞书机器人发消息时,OpenClaw 会自动识别发送者的 open_id。你不需要手动去查——只要用户给你发过消息,你就能从日志或管理界面看到他的 open_id。
也可以在飞书开放平台的"开发者工具"里,通过用户手机号或邮箱查到对应的 open_id。
配置之后的效果是:不同用户给同一个飞书机器人发私信,会被路由到不同的智能体。但对外看来,都是同一个机器人在回复。
场景三:特定群组 → 专用智能体
比如一个部门群想用专门的"部门助手":
{ "agents": { "list": [ { "id": "team", "name": "部门助手", "workspace": "~/.openclaw/workspace-team", "groupChat": { "mentionPatterns": ["@部门助手", "@team"] } } ] }, "bindings": [ { "agentId": "team", "match": { "channel": "feishu", "peer": { "kind": "group", "id": "oc_xxxxxxx" } } } ]}给每个智能体不同的权限
OpenClaw 支持为每个智能体设置不同的沙箱隔离和工具权限。
示例:个人助手无限制,部门助手严格限制
{ "agents": { "list": [ { "id": "personal", "workspace": "~/.openclaw/workspace-personal", "sandbox": { "mode": "off" } }, { "id": "team", "workspace": "~/.openclaw/workspace-team", "sandbox": { "mode": "all", "scope": "agent" }, "tools": { "allow": ["read"], "deny": ["exec", "write", "edit"] } } ] }}这样配置的好处:
• 安全隔离:限制不受信任的智能体
• 资源控制:某些智能体跑在沙箱里
• 灵活策略:不同智能体不同权限
路由规则:消息怎么选智能体?
绑定的匹配优先级(从高到低):
1. 精确 peer 匹配(特定私信/群组 ID)
2. guildId(Discord 服务器)
3. teamId(Slack 团队)
4. accountId 匹配(渠道账户)
5. 渠道级匹配(整个飞书/Telegram)
6. 默认智能体(default: true 的那个)
记住:更具体的规则优先!
给智能体设置人设
每个智能体可以有独立的"人格"。在工作区根目录创建 IDENTITY.md:
# IDENTITY.md - **Name:** 工作助手 - **Creature:** AI 秘书 - **Vibe:** 专业、高效、不废话 - **Emoji:** 💼然后用命令加载:
openclaw agents set-identity --agent work --from-identity
这样每个智能体就有自己的名字、头像和性格了。
常见问题
Q:多智能体需要多个进程吗?
不需要。一个 Gateway 网关进程就能托管所有智能体。
Q:智能体之间能通信吗?
默认关闭。需要在配置里显式启用:
{ "tools": { "agentToAgent": { "enabled": true, "allow": ["home", "work"] } }}Q:会话历史会混在一起吗?
不会。每个智能体有独立的会话存储,完全隔离。
总结
OpenClaw 的多智能体能力让你可以:
• 一个实例服务多个人
• 不同渠道用不同人格
• 每个智能体独立权限
• 完全会话隔离
非常适合家庭共享、团队协作、多角色场景。
夜雨聆风