
1. 多飞书 bot 共用一个网关为什么配置总是打架如果你正在用 openclaw 接飞书而且手上不止一个机器人账号大概率会遇到这种局面bot1 是客服号、bot2 是运营号、bot3 是内部工具号三个账号各自要有独立人设、独立会话、独立权限但你把它们塞进同一份openclaw.json之后消息开始串台A 群的问题被 B 号回答或者干脆只有一个 bot 能连上。openclaw 的多 bot 模型其实很清晰它把「平台通道」「机器人账号」「智能体」拆成了三层。channel 是平台大类比如 feishu、wechat 各算一条通道bot 是通道里的具体账号一个 channel 可以挂多个 botagent 是真正干活的大脑带思考、人设、会话和技能。规则上一个 bot 只能绑一个 agent但一个 agent 可以被多个 bot 复用。理解这三层关系多 bot 配置就不会乱。这篇聚焦的是落地在一套配置里管理多个飞书 bot每个 bot 路由到自己的 agent同时所有模型请求统一走 TaoToken 的 Key 和 API 通道不用给每个 bot 单独配一套模型凭证。适合需要单网关跑多个飞书账号的开发者。下面给出一份可直接复制的settings.json骨架再逐字段说明路由逻辑最后附上启动后的验证动作。2. 接入前先把 TaoToken 的 Key 和通道准备好多 bot 场景下最容易踩的坑是每个 bot 各配一份模型 Key改一次要改 N 个地方。更省事的做法是让 openclaw 的模型请求统一走一个入口TaoToken 就是干这个的它提供统一的 API 通道和 Keyopenclaw 里所有 agent 共用同一个 Key换模型、调额度都只动一处。你需要先拿到两样东西一个 API Key以及确认接入地址。Key 在控制台的 API Keys 页面创建地址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接作为 base URL 填进配置即可。创建 Key 的入口在 https://taotoken.net/console/api-keys 登录后新建一个复制出来先存好后面配置里要用。如果你还没决定用哪个模型可以先去模型对话页面试一下手感确认某个模型在中文对话和工具调用上的表现符合预期再写进配置。地址是 https://taotoken.net/model-chat 。对于长期跑编码类 agent 的场景比如让某个飞书 bot 专门做代码助手可以考虑 Coding Plan入口在 https://taotoken.net/coding-plan 它更适合高频、长会话的编码任务。这里有个细节值得强调TaoToken 是作为模型 API 通道接入的不是替代 openclaw 本身。openclaw 负责网关、通道、bot 和 agent 的编排TaoToken 负责把 agent 的模型请求稳定地送出去。两者职责分开配置才不会互相污染。3. 可复制的 settings.json 骨架与多 bot 路由字段openclaw 的主配置默认在~/.openclaw/openclaw.json部分版本读取settings.json字段结构一致。下面这份骨架把「模型通道」「飞书多账号」「bot 到 agent 的路由」三块放在一起你可以整体复制后替换成自己的值。{ models: { provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, defaultModel: 你的默认模型名 }, channels: { feishu: { enabled: true, connectionMode: websocket, domain: feishu, groupPolicy: open, requireMention: true, accounts: { bot1: { appId: cli_你的bot1_appId, appSecret: 你的bot1_appSecret, groupPolicy: allowlist, groupAllowFrom: [oc_你的群组会话ID] }, bot2: { appId: cli_你的bot2_appId, appSecret: 你的bot2_appSecret }, bot3: { appId: cli_你的bot3_appId, appSecret: 你的bot3_appSecret } } } }, bindings: [ { agentId: bot2, match: { channel: feishu, accountId: bot2 } }, { agentId: bot3, match: { channel: feishu, accountId: bot3 } } ] }逐块说明。models这一段就是统一通道的关键baseUrl填 TaoToken 的 API 地址apiKey填你刚创建的 Key所有 agent 默认都走这里不需要在每个 agent 里重复写模型凭证。channels.feishu.accounts下每个键就是一个 bot 账号键名bot1/bot2/bot3是你自己起的逻辑名appId和appSecret从飞书开放平台对应应用里复制。bot1 额外加了groupPolicy: allowlist和groupAllowFrom表示它只在指定群组里响应其他 bot 不设就沿用通道级的open。bindings是路由表也是多 bot 最容易写错的地方。每条 binding 的agentId要和后面创建的 agent 名字一致match.accountId要和accounts下的键名一致。上面只显式绑定了 bot2 和 bot3bot1 没写 binding它会落到默认 agent 上。如果你希望 bot1 也独立就照葫芦画瓢再加一条。创建 agent 的工作空间用命令行更省事它会自动生成好各类 md 模板openclaw agents add bot2 --workspace ~/.openclaw/workspace-bot2 openclaw agents add bot3 --workspace ~/.openclaw/workspace-bot3设置人设时注意一个坑下面这条命令只写入 json 配置不会改动 workspace 里的 md 文件。openclaw agents set-identity --agent bot2 --name 账号运营 --theme 选题规划、账号运维真正决定对话中机器人自我认知的是 workspace 下的IDENTITY.md。你手动改完它再 restartopenclaw agents list显示的就是文件里的设定而不是 config 里的临时值。如果只跑了 set-identity 没改 md机器人对话时还会反过来问你「给我起个名字吧」。4. 启动服务并验证每个 bot 是否按预期绑定配置写完先别急着发消息按顺序验证三件事网关是否起来、通道是否连上、agent 绑定是否正确。openclaw gateway restart openclaw gateway status openclaw channels status feishu openclaw agents listgateway restart让改动的 config、channel、agent 生效这一步不能省。channels status feishu会列出每个 bot 账号的连接状态正常应该是 connected 或 online。agents list会显示每个 agent 的 id 和 name如果 name 显示的是 config 而不是你写在IDENTITY.md里的内容说明 md 没生效回去检查文件路径和 restart。验证请求是否走统一通道可以看网关日志里模型请求的目标地址确认是https://taotoken.net/api而不是其他地址。再进飞书里分别 三个 bot观察是不是各自按预期的人设和权限回应bot1 只在白名单群响应bot2、bot3 在各自绑定的 agent 下工作。如果某个 bot 不响应先看channels status里它是否在线再看bindings里的accountId有没有拼错。群组白名单可以用命令补设不用手改 jsonopenclaw config set channels.feishu.accounts.bot2.groupPolicy allowlist openclaw config set channels.feishu.accounts.bot2.groupAllowFrom [oc_你的群组会话ID]群组会话 ID 建议在飞书手机 App 的群设置最底部查看电脑端有时找不到。如果某个 bot 的dmPolicy设成了pairing需要先在机器人对话框里随便发一条消息它会返回一个配对码把配对码填进命令行完成绑定否则私聊不会响应。5. 本篇常见错误排查bot 连不上、channels status 显示离线。九成是appId或appSecret复制时带了空格或漏字符。重新从飞书开放平台复制注意别把应用凭证和机器人凭证搞混。改完 restart 再看状态。消息串台A 号回了 B 群的问题。检查bindings里每条match.accountId是否和accounts的键名严格一致大小写都算。再确认没有两个 bot 绑到同一个 agent 却期望不同人设——一个 agent 被多个 bot 共用时它们共享同一套人设和会话上下文这是设计如此不是 bug。agent list 显示 config 而不是自定义名字。说明你只跑了set-identity没改 workspace 里的IDENTITY.md。进对应 workspace 改文件restart 后生效。改了 json 但行为没变。忘了openclaw gateway restart。config、channel、agent 的改动都要重启才生效。模型请求报鉴权失败。检查models.apiKey是否是有效的 TaoToken KeybaseUrl是否精确为https://taotoken.net/api不要多加斜杠或路径。Key 失效就去控制台重新生成一个。群组里 了没反应。确认requireMention为 true 时确实 了机器人以及该群是否在groupAllowFrom白名单内。白名单模式下非白名单群一律不响应。6. 把统一通道和多 bot 路由固化下来多 bot 配置真正省心的地方是模型通道只维护一份。所有 agent 共用 TaoToken 的 Key 和 API 地址新增一个飞书 bot 时你只需要在accounts加一段、在bindings加一条模型侧完全不用动。接入文档在 https://taotoken.net/doc 里面有 base URL、鉴权和常见模型名的说明配置前扫一眼能少走弯路。如果你更习惯先验证模型再写配置模型对话页面可以直接试长期跑编码或 Agent 类 botCoding Plan 的额度模型更适合高频调用。Key 管理统一在控制台的 API Keys 页面轮换或新增都在那里操作。把这份骨架存成模板下次加 bot 就是复制粘贴改三个字段的事。