一台服务器怎么跑多个 OpenClaw?多 Agent + 多飞书机器人配置指南
一台服务器不用只跑一个 OpenClaw。OpenClaw 支持在同一台服务器、同一个 Gateway 下跑多个相互隔离的 Agent,每个 Agent 绑定一个独立的飞书机器人,用户在不同机器人里发消息,就会自动路由到对应的 Agent——比如 main 负责日常聊天、content-director 负责写内容、code-agent 负责写代码,各干各的活、各记各的账。下面按官方教程讲清这套「分身术」怎么配。
三个概念先分清:Agent、机器人、路由
搞混这三者,配置一定会乱:
- Agent:一个独立的工作单元,有自己的 workspace、身份文件(SOUL.md / IDENTITY.md / USER.md)、模型和记忆。
openclaw agents list里列出的每一条都是一个 Agent。 - 飞书机器人:一个飞书应用开启「机器人能力」后,就是飞书里的一个机器人账号,对应一对 App ID 和 App Secret。
- bindings(路由):把「哪个飞书机器人」映射到「哪个 Agent」的规则。私聊某个机器人时,Gateway 按这条规则把消息交给对应 Agent 处理。
一句话总结:Agent 是干活的,机器人是入口,bindings 是连接两者的路由。
第一步:在飞书开放平台创建 N 个应用
每个 Agent 需要一个独立的飞书机器人。以先配 2 个为例:main(日常聊天)和 content-director(内容创作)。
打开 飞书开放平台,为每个 Agent 建一个应用,每个应用都要做同样的四件事:
- 创建应用,名称填对应的机器人名(如「OpenClaw Main」「OpenClaw 内容总监」)。
- 开启机器人能力。
- 开启长连接事件订阅,并订阅
im.message.receive_v1(接收消息)。 - 复制下 App ID 和 App Secret,先存好,最后点发布。

最容易漏的一步是「发布」。应用没发布就不生效,配完收不到消息时先回来检查这里。
第二步:配置飞书权限与回调事件
应用建好后,在飞书开放平台的权限管理里导入机器人运行所需的权限,然后在回调事件里添加事件并开启长连接:
im.message.receive_v1(接收消息)im.chat.member.bot.added_v1(机器人进群)

权限没加全、回调事件没订阅,是机器人「收不到消息或无法回复」的两大主因。
第三步:OpenClaw 侧做三层配置
飞书侧准备好后,回到服务器用命令行配置。动手前先备份:
cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak_$(date +%Y%m%d_%H%M%S)
然后按「建 Agent → 加飞书账号 → 绑路由」三层往下走。
1. 创建 Agent
用 openclaw agents add 创建一个隔离 Agent,指定独立的 workspace 和模型:
openclaw agents add content-director \
--workspace ~/.openclaw/workspace-content \
--model <模型ID> \
--non-interactive
--workspace 给这个 Agent 一个独立目录,--non-interactive 走非交互模式(需要配合 --workspace 使用)。每个 Agent 一个独立目录,身份文件和记忆才互不干扰。
2. 添加飞书账号并填凭证
用 openclaw channels add 把飞书应用登记为账号,再用 openclaw config set 写入 App ID 和 App Secret:
openclaw channels add --channel feishu --account content-director --name "OpenClaw 内容总监"
openclaw config set "channels.feishu.accounts.content-director.appId" "cli_xxxx"
openclaw config set "channels.feishu.accounts.content-director.appSecret" "xxxx"
3. 绑定路由
用 openclaw agents bind 把飞书账号绑定到 Agent,--bind 的格式是 频道:账号:
openclaw agents bind --agent content-director --bind "feishu:content-director"
至此,私聊「OpenClaw 内容总监」这个机器人时,消息就会路由到 content-director 这个 Agent。
重启并验证
openclaw gateway restart
openclaw agents list
openclaw channels status --probe
验证要点:
openclaw agents list能看到新建的 Agent,且每个 Agent 都显示了独立的 Identity、Workspace、Model 和 Routing。openclaw channels status --probe显示飞书通道在线。- 分别给两个机器人发消息,确认回复风格不同、互不串台。

进阶:一个机器人按群聊分流
如果你只有一个飞书机器人,但想让不同群聊走不同 Agent,不用建多个应用,在 bindings 里给同一个账号加 peer 条件即可——私聊走默认 Agent,指定群聊路由到另一个 Agent:
"bindings": [
{ "agentId": "main", "match": { "channel": "feishu", "accountId": "main" } },
{
"agentId": "content-director",
"match": {
"channel": "feishu",
"accountId": "main",
"peer": { "kind": "group", "id": "oc_xxxxxxx" }
}
}
]
效果:私聊找 main,特定群聊找 content-director,一个机器人也能做到场景化分流。
常见报错与处理
Error: Session file path must be within sessions directory:OpenClaw 版本过低(低于 2026-02-12),重新运行官方安装脚本升级即可。- 机器人收不到消息 / 无法回复:回飞书开放平台确认权限已加、回调事件
im.message.receive_v1已订阅、应用已发布。 - bindings 不生效:执行
openclaw agents list看 Routing 规则、openclaw channels status --probe看通道状态,再看 Gateway 日志里有没有路由报错。
常见问题
一台服务器能跑几个 OpenClaw Agent?
没有硬性上限。每个 Agent 是独立的隔离单元,有各自的 workspace、身份文件、模型和记忆,互不干扰,资源够就能一直加。
多个飞书机器人怎么和多个 Agent 对应?
每个飞书应用对应一个机器人账号,再通过 bindings 路由规则把这个账号绑定到指定 Agent,私聊该机器人就会路由到对应 Agent。
创建飞书应用必须开哪些关键配置?
三个必做:开启机器人能力、开启长连接事件订阅并订阅 im.message.receive_v1、点发布让应用生效,另外还要在权限管理里导入所需权限。
配完不生效怎么排查?
先执行 openclaw gateway restart 重启,再用 openclaw agents list 确认 Agent 已建、openclaw channels status --probe 确认通道在线,最后看日志里有没有路由错误。
只想用一个飞书机器人,不同群聊走不同 Agent 可以吗?
可以。在 bindings 里给同一账号加 peer 条件(指定群聊 id),私聊走默认 Agent,指定群聊路由到另一个 Agent。
动手改配置前要注意什么?
先备份 openclaw.json,再折腾。配置错乱时能一键回滚,这是改任何 OpenClaw 配置的铁律。