1. 为什么 Ubuntu 虚拟机里的 OpenClaw 一开口就报错OpenClaw 装完那一刻其实挺有成就感的openclaw dashboard能打开、界面能点、输入框能打字但真正发第一条消息时很多人会卡在同一个地方请求转了一圈最后返回一个连接失败或者鉴权错误。我见过最多的现象是终端里刷出ECONNREFUSED 127.0.0.1:11434或者浏览器控制台里提示local proxy failed再或者干脆卡在reading choices不动。这不是 OpenClaw 本身坏了而是它默认把模型请求指向了本机端点。OpenClaw 的设计逻辑是自带一个本地推理入口安装脚本会假设你本机跑着 Ollama 或者类似的本地服务于是 settings 里默认写的是http://127.0.0.1:11434这类地址。可 Ubuntu 虚拟机里大概率没装本地模型或者装了但没启动请求自然打不通。这里要区分两个概念。OpenClaw 是手脚负责调度工具、读写文件、控制浏览器模型是大脑负责理解和决策。默认配置把大脑放在了本地但本地没有大脑于是整个流程就断了。你要做的不是重装 OpenClaw而是把大脑的地址改成一个可用的远程推理服务让鉴权和调用都走通。TaoToken 在这里扮演的角色就是那个稳定的远程大脑入口。它提供兼容 OpenAI 风格的 APIOpenClaw 的 settings 只要把 base URL、API Key、模型 ID 三个字段指过去就能完成从本地端点切换到远程端点的收尾。这篇记录聚焦的就是这个收尾动作默认 settings 指向本地导致失败怎么改字段怎么用一次最小对话验证最后在虚拟机里稳定跑起来。适合谁看已经在 Ubuntu 22.04 或 24.04 虚拟机里装完 OpenClaw、能打开 dashboard、但一发消息就报错的人。如果你还没装 OpenClaw前面的安装步骤网上很多这里不重复如果你装完就能用那说明你本机恰好有本地模型也不用改。真正需要这篇的是那些装完了但跑不通的中间状态。我试过在 2 vCPU / 4 GB 的虚拟机上折腾安装过程本身没问题卡点全在配置收尾。下面按顺序把每一步写清楚你可以直接照着改。2. 改 settings 前先确认 TaoToken 的接入信息在动 OpenClaw 的配置文件之前先把 TaoToken 这边的三件套准备好Base URL、API Key、Model ID。这三样缺一不可而且顺序不能乱——先有 Key再填地址最后选模型。Base URL 用https://taotoken.net/api注意这里不加任何查询参数就是干净的 API 根路径。OpenClaw 内部会在这个根路径后面拼接/v1/chat/completions之类的标准路径所以你填的时候不要自己补/v1否则会变成/api/v1/v1/...这种重复路径直接 404。API Key 需要你去控制台生成。打开https://taotoken.net/console登录后在 API Keys 页面创建一个新的 Key。创建时建议给它起个能认出来的名字比如openclaw-ubuntu-vm方便以后区分是哪个环境在用。Key 只在创建时完整显示一次复制下来存好后面填进 settings 里。如果你还没账号可以先从官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content进去注册流程不复杂。Model ID 取决于你想用哪个模型。OpenClaw 的 settings 里模型字段通常写成provider/model的形式比如openai/gpt-4o或者anthropic/claude-sonnet-4这类。具体支持哪些模型可以在模型对话页面https://taotoken.net/models里看当前可用的列表选一个你熟悉的复制过去。如果你打算长期跑编码类任务也可以考虑 Coding Plan 那条线地址是https://taotoken.net/coding-plan它针对代码场景做了优化模型选择和额度策略不太一样。这里有个容易踩的坑很多人以为 Base URL 要填到/v1为止结果 OpenClaw 又拼了一层请求路径就错了。记住原则——填到/api就停后面的路径交给 OpenClaw 自己拼。另一个坑是 Key 复制时带了空格或者换行填进去后鉴权一直 401排查半天以为是 Key 失效其实是多了个不可见字符。复制后建议在终端里echo一下确认长度和内容。准备好这三样之后先别急着改 OpenClaw用 curl 在虚拟机里直接打一次 API确认网络和 Key 都没问题。这一步能帮你把网络问题和配置问题分开后面排障会省很多事。curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的API_KEY \ -H Content-Type: application/json \ -d { model: openai/gpt-4o, messages: [{role: user, content: ping}], max_tokens: 16 }如果这条命令返回了正常的 JSON里面有choices字段说明网络通、Key 有效、模型可用。如果返回 401检查 Key如果返回 404检查路径如果超时检查虚拟机网络。这一步过了再去改 OpenClaw 的 settings成功率会高很多。3. 把 OpenClaw 的 settings 指向 TaoToken 的可复制配置OpenClaw 的配置文件位置在~/.openclaw/settings.json这是主配置文件。有些版本还会在~/.openclaw/config.toml里放一部分设置但模型相关的字段基本都在 settings.json 里。改之前先备份一份出问题能回滚。cp ~/.openclaw/settings.json ~/.openclaw/settings.json.bak然后打开文件找到模型相关的段落。默认情况下你会看到类似这样的结构指向本地端点{ model: { provider: ollama, baseUrl: http://127.0.0.1:11434, modelId: llama3, apiKey: } }你要把它改成指向 TaoToken。注意字段名可能因版本略有差异有的版本用base_url而不是baseUrl有的把modelId写成model。以你实际文件里的字段名为准只改值不改键名。改完大概是这样{ model: { provider: openai, baseUrl: https://taotoken.net/api, modelId: openai/gpt-4o, apiKey: 你的API_KEY } }三个关键点再强调一遍。provider改成openai因为 TaoToken 走的是 OpenAI 兼容协议OpenClaw 看到这个 provider 就会用标准的/v1/chat/completions路径去请求。baseUrl填https://taotoken.net/api不要带/v1。modelId填你在模型列表里选的那个格式通常是厂商/模型名。apiKey填你创建的那个 Key。如果你的 OpenClaw 版本用的是 TOML 格式配置会长这样[model] provider openai base_url https://taotoken.net/api model_id openai/gpt-4o api_key 你的API_KEY改完之后保存然后重启 OpenClaw 的 gateway 服务让新配置生效openclaw gateway restart如果 restart 命令不认用 systemd 的方式systemctl --user restart openclaw-gateway重启后跑一次openclaw doctor它会检查配置完整性。如果它提示模型连接测试失败先别慌往下看验证步骤。有时候 doctor 的测试用的是缓存配置实际请求是好的。还有一个细节如果你之前用openclaw onboard走过引导它可能在别的地方也写了一份模型配置比如~/.openclaw/workspace/config.json。改完主 settings 后搜一下整个.openclaw目录里还有没有旧的本地端点地址grep -r 127.0.0.1:11434 ~/.openclaw/如果有残留一并改掉否则 OpenClaw 可能读到旧的那份你又得排查半天。4. 用一次最小对话验证鉴权和调用是否打通配置改完最直接的验证方式不是打开 dashboard 点来点去而是用 OpenClaw 自带的 CLI 发一条最小消息。这样能把 UI 层的干扰排除掉直接看模型调用链路通不通。openclaw chat --message 你好请回复 pong如果配置正确你会看到终端里流式输出模型的回复类似pong或者一句问候。这时候说明鉴权过了、模型调通了、OpenClaw 的请求组装也没问题。整个过程大概几秒钟取决于模型响应速度。如果 CLI 这条通了再打开 dashboard 验证openclaw dashboard浏览器打开它给的地址在输入框里发一条消息。正常情况下你会看到回复逐字出现。如果 dashboard 里报错但 CLI 是好的那问题在 dashboard 的前端配置或者浏览器缓存跟模型配置无关清一下缓存或者换个浏览器试试。验证的时候注意看终端日志。OpenClaw 的 gateway 日志会打印每次请求的路径和状态码。如果看到POST /v1/chat/completions 200说明请求成功。如果看到401是 Key 的问题404是路径的问题ECONNREFUSED说明还在打本地端点配置没生效。journalctl --user -u openclaw-gateway -f这条命令可以实时看 gateway 日志发消息的时候盯着看报错信息一目了然。成功的结果长这样CLI 里模型正常回复dashboard 里对话流畅日志里状态码是 200。到这一步Ubuntu 虚拟机里的 OpenClaw 就算真正跑通了鉴权和调用都稳定。你可以接着去配消息渠道、装 skills那些都是在这个基础上叠加的功能。如果验证失败别急着重装下一节把常见报错逐个拆开。5. 常见报错排查401、local proxy failed、reading choices排障的核心思路是看报错定位环节。不同的报错对应不同的失败点对症下药比盲目重装快得多。401 Unauthorized是最常见的。原因通常是三个Key 填错、Key 前后有空格、Key 已失效。先在终端里用 curl 直接打一次 API如果 curl 也 401那就是 Key 本身的问题去控制台重新生成一个。如果 curl 通了但 OpenClaw 还 401那就是 settings 里的 Key 字段有问题检查有没有多余字符。可以用这条命令看配置文件里的 Key 长度grep apiKey ~/.openclaw/settings.json | wc -c对比一下你实际 Key 的长度差太多就是复制出问题了。local proxy failed这个报错说明 OpenClaw 还在尝试走本地代理。根因是配置没生效或者有残留的旧配置。先确认~/.openclaw/settings.json里的baseUrl已经是https://taotoken.net/api然后搜一遍有没有别的配置文件还写着本地地址grep -rn 127.0.0.1\|localhost ~/.openclaw/把搜出来的旧地址全改掉重启 gateway。如果还不行检查环境变量里有没有HTTP_PROXY或者OPENCLAW_MODEL_URL这类覆盖项env | grep -i proxy env | grep -i openclaw有的话 unset 掉再重启。reading choices 卡住或者报错通常发生在请求发出去了但响应格式不对的时候。OpenClaw 期待标准的 OpenAI 响应结构里面有choices数组。如果返回的是错误信息或者非标准格式它解析choices就会失败。先用 curl 看原始响应curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer 你的API_KEY \ -H Content-Type: application/json \ -d {model:openai/gpt-4o,messages:[{role:user,content:test}]} | head -c 500如果返回里有error字段看错误信息是什么。常见的是模型 ID 写错了比如写成了gpt-4o而不是openai/gpt-4o。模型 ID 必须和列表里的一致大小写和斜杠都不能错。OAuth 相关报错一般出现在你之前配过某个需要 OAuth 的 provider切换后旧凭证还在。清理一下凭证缓存rm -rf ~/.openclaw/credentials openclaw gateway restart然后重新用 API Key 的方式配置。Codex auth.json 冲突如果你同时装了 Codex 或者类似的工具它可能在~/.codex/auth.json里也写了模型配置OpenClaw 某些版本会读这个文件。检查一下cat ~/.codex/auth.json 2/dev/null如果有内容且指向旧端点要么改掉要么临时移走。三件套Base URL、Key、Model ID在这类工具里是通用的确保每个地方都指向https://taotoken.net/api。排障的时候记住一个原则先用 curl 验证 API 本身再验证 OpenClaw 的配置最后验证 UI。一层一层来不要跳步。大部分问题都在前两层UI 层很少出模型相关的错。6. 稳定跑起来之后把 Key 和文档收好配置改完、验证通过之后建议把这次用到的信息整理一下方便以后换环境或者重装时快速恢复。Base URL 固定是https://taotoken.net/api这个不会变。API Key 建议在控制台里管理地址是https://taotoken.net/api-keys可以随时查看、轮换、删除。如果你要接入别的工具文档在https://taotoken.net/doc里面有各语言的示例和字段说明。长期在虚拟机里跑编码或者 Agent 任务的话Coding Plan 那条线值得看一下地址是https://taotoken.net/coding-plan它在模型选择和额度上针对代码场景做了调整比通用模型更省。如果只是想快速验证某个模型的效果直接用模型对话页面https://taotoken.net/models就行不用改配置。最后提醒一句虚拟机快照是个好东西。配置跑通之后打个快照下次折腾坏了直接回滚比重新配一遍快得多。Key 不要写进会提交到 git 的文件里settings.json 最好加进.gitignore。这些习惯能帮你省下不少重复劳动。