宝塔面板博客官方技术博客
宝塔面板

一台服务器怎么跑多个 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 建一个应用,每个应用都要做同样的四件事:

  1. 创建应用,名称填对应的机器人名(如「OpenClaw Main」「OpenClaw 内容总监」)。
  2. 开启机器人能力。
  3. 开启长连接事件订阅,并订阅 im.message.receive_v1(接收消息)。
  4. 复制下 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 配置的铁律。