ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从0到1云服务器搭建 OpenClaw(龙虾)接入飞书教程:把 codex auth.json 改到 TaoToken

从0到1云服务器搭建 OpenClaw(龙虾)接入飞书教程:把 codex auth.json 改到 TaoToken 1. 云服务器上跑 OpenClaw 到底难在哪从零部署飞书机器人的真实链路OpenClaw龙虾是一个可以常驻在服务器上的智能体网关它能把你常用的聊天工具和模型 API 串起来让飞书机器人具备对话、写代码、查资料的能力。适合谁适合手里有一台闲置云服务器、想让飞书群里多一个能干活的 AI 助手、又不想折腾复杂前端的人。核心检索词就三个OpenClaw、飞书、codex auth.json 改到 TaoToken。我这次的目标很明确在一台 2 核 4G 的云服务器上用 pnpm 从零装好 OpenClaw接入飞书机器人并且把原本指向 codex 的认证配置统一改到 TaoToken 的 API 通道上。为什么非要改因为 codex 默认的 auth.json 走的是它自己的登录态一旦换机器、换环境token 过期就得重新登录非常烦。而 TaoToken 提供的是标准的 OpenAI 兼容接口一个 Key 就能覆盖多种模型配置一次长期稳定。整个链路分四段服务器基础环境Node 24 pnpm、OpenClaw 安装与初始化、飞书应用创建与事件订阅、codex auth.json 改到 TaoToken 并验证消息收发。每一步我都会给出可复制的命令和配置你照着敲就行。踩过的坑主要集中在 Node 版本冲突和飞书事件订阅的回调地址上后面会单独讲。先说服务器。你可以在任意云厂商开一台 2 核 4G 的实例系统选 Ubuntu 22.04 或 24.04 都行。开好后重置密码用 SSH 终端连上去。第一件事是更新软件源并装基础工具apt update apt install -y curl git接着处理 Node。很多系统自带的 Node 版本太低OpenClaw 要求 Node 20 以上我实测 Node 24 最稳。如果系统里已经有旧版本先移除再装apt-get remove -y libnode-dev apt-get --fix-broken install -y curl -fsSL https://deb.nodesource.com/setup_24.x | bash - apt-get install -y nodejs node -v npm -v看到v24.x.x就对了。然后装 pnpm这是 OpenClaw 推荐的包管理器npm install -g pnpm pnpm -vpnpm 装好后要配置一下环境变量否则全局安装的包可能找不到pnpm setup source /root/.bashrc export PNPM_HOME/root/.local/share/pnpm export PATH$PNPM_HOME:$PATH到这里服务器基础环境就齐了。这一段看起来简单但 Node 版本和 pnpm 路径是两个高频翻车点务必确认node -v和pnpm -v都能正常输出。2. TaoToken 前置准备为什么要把 codex auth.json 改到统一 Key 通道在装 OpenClaw 之前先把模型通道准备好。OpenClaw 本身不生产模型它需要一个能调用的 API 端点。默认情况下如果你用 codex 的登录态它会去读~/.codex/auth.json里的凭证这个文件是 codex CLI 登录后生成的包含 access token 和 refresh token。问题在于这个 token 有有效期过期后需要重新走登录流程在服务器上操作很别扭而且它绑定的是 codex 自己的账号体系换模型、换额度都不灵活。TaoToken 的思路是把认证统一成一个 API Key。你只需要在控制台生成一个 Key然后把它填到 OpenClaw 的模型 provider 配置里Base URL 指向 TaoToken 的 API 地址Model ID 填你要用的模型。这样 OpenClaw 调用模型时走的就是标准 OpenAI 兼容协议不再依赖 codex 的本地登录态。codex auth.json 改到 TaoToken本质就是把「本地登录凭证」替换成「可移植的 API Key」。具体操作先访问 TaoToken 官网注册并登录然后进入控制台创建 API Key。地址是 https://taotoken.net/api-keys 生成后复制保存这个 Key 只显示一次。接着确认你要用的模型 ID比如gpt-5.4或claude-sonnet-4-5在模型列表里能查到。Base URL 统一用https://taotoken.net/api注意不要加多余的路径。这里有个关键点OpenClaw 的模型 provider 配置里api字段要选openai-responses或openai-completions取决于模型。TaoToken 的接口兼容 OpenAI 格式所以填openai-responses通常没问题。auth字段填api-keyapiKey填你刚生成的 Key。这样配置后OpenClaw 就不会再去读 codex 的 auth.json 了。如果你之前已经在服务器上跑过 codex~/.codex/auth.json里可能有旧凭证。改到 TaoToken 后这个文件可以保留不管但 OpenClaw 的配置里不要再引用它。换句话说codex auth.json 改到 TaoToken 是一次「配置迁移」不是删除文件而是让 OpenClaw 的模型调用走新的通道。这样做的好处是Key 可以随时在控制台轮换模型可以随时切换服务器上不需要任何交互式登录。另外提醒一句TaoToken 的 API 地址是https://taotoken.net/api不要写成带 UTM 的官网地址那是给浏览器用的。API 调用只认这个基础路径。Key 的权限建议只开模型调用不要开管理权限降低泄露风险。3. 可复制配置pnpm 安装 OpenClaw 并写入 openclaw.json环境准备好后开始装 OpenClaw。用 pnpm 全局安装最新版pnpm add -g openclawlatest pnpm approve-builds -gapprove-builds会列出需要允许构建的包用方向键选到 openclaw按空格选中回车确认。安装时间可能比较久耐心等。装完后运行初始化向导openclaw onboard --install-daemon输入Yes继续选择Quickstart快速开始。向导会显示 Gateway 端口默认18789记住这个端口后面配置文件里要用。模型选择界面先随便选一个因为我们要手动改配置。接入平台选飞书Feishu然后用手机飞书 App 扫码授权。在「选择飞书应用」界面如果你还没创建应用先跳过后面手动填 App ID 和 App Secret。可选配置如 Tailscale、额外工具全部选Skip for now或No。看到Youre all set!就表示初始化完成。接下来是核心修改配置文件/root/.openclaw/openclaw.json。改之前先备份并记录下原来的 gateway token因为覆盖后要填回去。下面是我实测可用的配置重点字段已经标出你替换成自己的值{ agents: { defaults: { workspace: /root/.openclaw/workspace, model: { primary: taotoken/gpt-5.4 }, models: { taotoken/gpt-5.4: { alias: GPT-5.4 } }, compaction: { mode: safeguard }, maxConcurrent: 4, subagents: { maxConcurrent: 8 } } }, channels: { feishu: { enabled: true, appId: cli_xxxxxxxx, appSecret: xxxxxxxxxxxxxxxx, domain: feishu, connectionMode: websocket, groupPolicy: allowlist } }, tools: { profile: coding }, gateway: { auth: { mode: token, token: 你原来的gateway token }, mode: local, port: 18789, bind: loopback, tailscale: { mode: off, resetOnExit: false }, controlUi: { allowInsecureAuth: true }, nodes: { denyCommands: [ camera.snap, camera.clip, screen.record, contacts.add, calendar.add, reminders.add, sms.send, sms.search ] } }, session: { dmScope: per-channel-peer }, models: { providers: { taotoken: { baseUrl: https://taotoken.net/api, apiKey: 你的TaoToken API Key, auth: api-key, api: openai-responses, models: [ { id: gpt-5.4, name: GPT-5.4, reasoning: true, input: [text, image], cost: { input: 1.75, output: 14, cacheRead: 0.175, cacheWrite: 0.175 }, contextWindow: 400000, maxTokens: 128000 } ] } } }, auth: { profiles: { taotoken:default: { provider: taotoken, mode: api_key } } }, plugins: { entries: {} } }三个必填项channels.feishu.appId和appSecret从飞书开放平台拿models.providers.taotoken.apiKey填你的 TaoToken Keygateway.auth.token填你之前记录的旧 token。baseUrl固定https://taotoken.net/apiapi填openai-responses。这样 codex auth.json 改到 TaoToken 就完成了OpenClaw 不再读 codex 的本地凭证。飞书 App ID 和 App Secret 在 https://open.feishu.cn/app 查看进入你创建的应用在「凭证与基础信息」里能找到。填好后重启服务pkill -f openclaw || true sleep 1 nohup openclaw /root/.openclaw/openclaw.log 21 sleep 1 pgrep -af openclaw tail -n 50 /root/.openclaw/openclaw.log看到进程存在、日志没有报错就说明服务起来了。4. 验证请求与成功结果飞书消息收发和模型调用确认服务起来后先验证 Gateway 是否正常。在服务器上执行curl -s http://127.0.0.1:18789/health如果返回{status:ok}之类的 JSON说明 Gateway 活着。接着验证模型通道可以直接用 curl 打 TaoToken 的接口curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的TaoToken API Key \ -H Content-Type: application/json \ -d {model:gpt-5.4,messages:[{role:user,content:你好}]}返回里有choices字段和内容就说明 Key 和 Base URL 都对。这一步很关键它把「模型通道」和「OpenClaw 服务」分开验证出问题时能快速定位是哪一层。然后回到飞书。在飞书里给机器人发「你好」。如果提示「匹配码未配置」说明飞书的 pairing 还没批准。用下面命令查看待批准的配对openclaw pairing list feishu找到配对码后执行openclaw pairing approve feishu xxxxx把xxxxx换成实际的配对码。批准后再发「你好」机器人应该能正常回复。如果回复内容是模型生成的说明整条链路通了飞书消息 → OpenClaw Gateway → TaoToken API → 模型 → 返回飞书。再验证一下模型调用是否真的走了 TaoToken。查看日志tail -n 100 /root/.openclaw/openclaw.log | grep -i taotoken\|provider\|model日志里应该能看到 provider 是taotoken而不是 codex 或 rayincode。如果看到baseUrl: https://taotoken.net/api就确认 codex auth.json 改到 TaoToken 成功了。此时你可以把~/.codex/auth.json重命名备份再发一条消息如果机器人依然正常回复说明 OpenClaw 完全不依赖 codex 的本地凭证了。飞书事件订阅这块如果你用的是 websocket 模式配置里connectionMode: websocket就不需要公网回调地址省去了内网穿透的麻烦。这是 OpenClaw 比较友好的设计。如果日志里出现 websocket 连接失败检查飞书应用的「事件订阅」里是否开启了长连接模式以及应用是否发布了版本。未发布的应用机器人收不到消息。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth第一个高频错误401 Unauthorized。出现在 curl 模型接口或 OpenClaw 日志里。原因通常是 TaoToken API Key 填错、Key 被禁用、或者 Base URL 写成了带 UTM 的官网地址。检查models.providers.taotoken.apiKey是否和 https://taotoken.net/api-keys 里生成的一致baseUrl必须是https://taotoken.net/api不要加/v1以外的路径。如果 Key 刚生成等几秒再试。第二个local proxy failed。这个报错通常出现在 OpenClaw 启动时表示它尝试走本地代理但失败了。检查配置文件里gateway.mode是否为localbind是否为loopback。如果你之前设置过系统代理环境变量用env | grep -i proxy看一下有的话 unset 掉。OpenClaw 的模型调用应该直连 TaoToken不需要额外代理。第三个reading choices相关报错比如error reading choices: unexpected end of JSON input。这说明模型接口返回的不是标准 OpenAI 格式或者返回为空。先单独用 curl 验证 TaoToken 接口是否正常。如果 curl 正常但 OpenClaw 报错检查api字段是否填了openai-responses。有些模型需要openai-completions可以试着切换。另外确认models.providers.taotoken.models[].id和请求里的 model 名一致。第四个OAuth相关报错。如果你之前用 codex 登录过日志里可能出现 OAuth token 刷新失败。这是因为 OpenClaw 还在尝试读 codex 的 auth.json。解决办法就是本篇的核心把配置里的 provider 从 codex 改成 taotoken并确保auth.profiles里指向taotoken:default。改完后重启服务OAuth 报错就会消失。如果还残留检查~/.openclaw/openclaw.json里是否还有rayincode或codex的 provider 定义删掉它们。第五个飞书消息发了没反应。先看openclaw pairing list feishu是否有待批准项有就 approve。然后看日志里 websocket 是否连接成功。如果飞书应用没发布版本事件订阅不会生效。去飞书开放平台「版本管理与发布」里创建版本并发布。另外groupPolicy是allowlist群聊里需要把机器人加入白名单单聊不受影响。第六个pnpm 安装 openclaw 时卡在 approve-builds。这是 pnpm 的安全机制需要手动允许构建脚本。运行pnpm approve-builds -g用空格选中 openclaw回车。如果列表里没有 openclaw先pnpm add -g openclawlatest再 approve。6. 长期编码与 Agent 场景把 TaoToken 接入文档和 Coding Plan 用起来整条链路跑通后你手里就有了一台常驻的飞书 AI 机器人。日常用法很简单在飞书里直接发消息OpenClaw 会调用 TaoToken 的模型接口返回结果。如果你要做长期编码或 Agent 任务建议把模型换成更适合代码的 ID比如claude-sonnet-4-5或gpt-5.4在openclaw.json的models.providers.taotoken.models数组里加一项然后改agents.defaults.model.primary指向新的模型别名。TaoToken 的接入文档在 https://taotoken.net/doc 里面有各语言的调用示例和模型列表。如果你需要长期跑 Agent 任务可以看看 Coding Plan地址是 https://taotoken.net/coding-plan 它针对高频编码场景做了额度优化。模型对话调试可以用 https://taotoken.net/chat 直接在浏览器里验证 Key 和模型是否正常不用每次都改服务器配置。日常维护上建议把openclaw.json纳入版本管理但 API Key 不要提交到仓库。可以用环境变量注入或者单独放一个secrets.json并在.gitignore里排除。Key 轮换时只需在 TaoToken 控制台生成新 Key更新配置文件重启 OpenClaw 即可整个过程不影响飞书机器人的使用。最后说一个实用技巧OpenClaw 的日志会记录每次模型调用的耗时和 token 用量。你可以定期tail -n 200 /root/.openclaw/openclaw.log看看有没有异常。如果发现某个模型响应慢在配置里换一个 ID 就行不用重装任何东西。codex auth.json 改到 TaoToken 之后最大的好处就是这种切换变得非常轻量一个字段的事。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进