1. OpenClaw 本地部署后模型接入卡点:settings 文件到底改哪一行
OpenClaw(原 Clawdbot / Moltbot)本地部署跑通之后,很多人会卡在同一个地方:Web UI 能打开,http://127.0.0.1:18789也进得去,但一发消息就报错,或者干脆一直转圈。这个环节的核心检索词就是OpenClaw 本地部署模型接入配置,说白了就是让本地实例知道「去哪个地址、用哪个 Key、调哪个模型」。
我先把场景说清楚。你已经完成了 Node.js 环境准备(建议 22 以上,实测 24 更稳),用官方脚本装好了 OpenClaw,QuickStart 也走完了。此时 OpenClaw 的配置文件默认落在用户目录下的~/.openclaw/openclaw.json,Windows 下是C:\Users\你的用户名\.openclaw\openclaw.json。这个文件里管着模型供应商、API Key、Base URL、频道(Channel)、技能(Skill)等一堆东西。
问题在于,QuickStart 阶段如果你跳过了模型配置,或者随手填了一个不完整的 Key,后面所有对话请求都会失败。表现通常是三种:一是 Web UI 里发消息后提示鉴权失败;二是终端日志里出现401或invalid api key;三是请求发出去了但返回体里读不到choices字段,前端直接白屏。
适合谁看这篇?适合已经跑通 Node.js、Git,OpenClaw 主程序能启动,但模型这一环没配利索的开发者。你不需要重新装一遍,只要把 settings 里那几行改对,再发一次请求验证连通性就行。下面我会给出可直接复制的 JSON 片段,路径和字段名都按 OpenClaw 实际结构来,改完重启服务即可生效。
先明确一个概念:OpenClaw 本身是个「壳」,它负责调度、频道接入、技能执行,真正干活的大模型要靠外部 API。所以配置的本质是告诉它——Base URL 指向谁、Key 用哪个、Model ID 叫什么。这三件套缺一不可,后面每一节都会围绕它们展开。
2. TaoToken 前置准备:Base URL、Key 与 Model ID 三件套怎么拿
在改 OpenClaw 的 settings 之前,得先把「三件套」准备好。这里我用 TaoToken 作为模型接入方,原因是它的接口格式和主流 OpenAI 兼容协议一致,OpenClaw 这类工具接起来几乎零改造。你需要准备的是:一个 Base URL、一个 API Key、一个 Model ID。
Base URL 固定写成https://taotoken.net/api,注意结尾不要多加/v1之类的后缀,OpenClaw 内部会自己拼路径。API Key 需要你去控制台生成,入口在 API Keys 页面,生成后复制那一串以sk-开头的字符串,只显示一次,丢了就重新建一个。Model ID 则取决于你想用哪个模型,比如常见的对话模型直接填对应名称即可,具体可选项在模型对话页面能看到当前可用的列表。
操作顺序建议这样:先打开官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 注册并登录,然后进控制台 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console 确认账户状态,接着到 API Keys 页面 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys 生成 Key。如果你不确定该选哪个模型,可以先在模型对话 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat 里试一句,确认能正常返回,再把这个 Model ID 填进 OpenClaw。
这里有个容易踩的坑:很多人把 Base URL 写成带/v1/chat/completions的完整路径,结果 OpenClaw 又拼了一次,变成双份路径,直接 404。记住只写到/api为止。另一个坑是 Key 前后带了空格或换行,复制时肉眼看不出来,粘进 JSON 就报鉴权失败,建议粘贴后手动检查首尾。
如果你打算长期跑编码类或 Agent 类任务,可以顺带了解 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan ,它更适合高频调用场景。但本篇只聚焦本地实例的连通性配置,套餐的事后面按需再看。三件套备齐后,就可以进 settings 文件动手了。
3. 可复制配置:openclaw.json 里 Base URL 与 Key 的改法
现在进入正题,改~/.openclaw/openclaw.json。改之前先备份一份,命令是cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak,Windows 下直接复制粘贴一份改名即可。然后用编辑器打开,找到models或providers这一段。不同版本字段名略有差异,但结构大同小异,核心是填一个 OpenAI 兼容的 provider。
下面这段是可直接复制的 JSON 片段,路径与 OpenClaw 实际结构一致,你把它合并进自己的配置文件即可,注意 JSON 不允许尾逗号:
{ "models": { "default": "your-model-id", "providers": { "taotoken": { "type": "openai", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的Key粘贴在这里", "models": [ { "id": "your-model-id", "name": "TaoToken Chat" } ] } } } }几个字段逐个说明。type填openai,表示走 OpenAI 兼容协议,OpenClaw 会用标准格式发请求。baseUrl就是上一步拿到的https://taotoken.net/api,不要带多余路径。apiKey填你生成的sk-开头的串。models数组里的id必须和你在模型对话里验证过的 Model ID 完全一致,大小写敏感。default指向默认使用的模型 id。
如果你之前 QuickStart 时已经填过别的 provider,比如 MiniMax,建议把旧的 provider 整段删掉或注释掉,避免 OpenClaw 按顺序取到旧配置。JSON 没有注释语法,删掉最干净。改完保存,然后重启 OpenClaw 服务。重启命令取决于你的启动方式,如果是前台跑的,Ctrl+C 后重新执行启动命令;如果是后台服务,用对应的 restart。
改完配置后,建议用一条命令快速校验 JSON 语法,避免因为一个逗号导致整个文件解析失败:
node -e "JSON.parse(require('fs').readFileSync(process.env.HOME + '/.openclaw/openclaw.json','utf8')); console.log('JSON OK')"Windows PowerShell 下把process.env.HOME换成process.env.USERPROFILE。输出JSON OK就说明格式没问题。这一步能帮你提前排掉一大半「配置改了但没生效」的假故障。确认无误后,进入下一节发真实请求验证。
4. 验证请求:发一次对话确认本地实例连通
配置改完、服务重启后,别急着开 Web UI 点按钮,先用最直接的方式验证——发一条 curl 请求,确认 Base URL 和 Key 本身是通的。这一步能把「网络问题」和「OpenClaw 配置问题」分开,排障效率高很多。
在终端执行:
curl https://taotoken.net/api/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的Key" \ -d '{ "model": "your-model-id", "messages": [{"role": "user", "content": "你好,回复一句话确认连通"}] }'如果返回体里能看到choices数组,且message.content里有正常文字,说明三件套没问题。如果这里就报 401,那是 Key 的问题;报 404,那是 Base URL 或路径的问题;报模型不存在,那是 Model ID 写错了。先把这一层跑通,再回到 OpenClaw。
接着打开 Web UIhttp://127.0.0.1:18789,在对话框里发一句「帮我查一下当前磁盘使用情况」。正常情况下它会调用模型并返回结果。如果 Web UI 报错,去看 OpenClaw 的终端日志,日志里会打印实际发出的请求地址和返回码,对照上一段的三种错误类型定位。
实测下来,最容易出问题的是 Model ID 和 Base URL 这两处。Model ID 建议直接从模型对话页面复制,别手打。Base URL 确认结尾是/api,没有斜杠结尾。两个都对上,基本一次就通。连通之后,你就可以继续接飞书频道、配 Skill 和 Hooks 了,那些属于上层功能,前提是模型这一层稳。
5. 本篇常见错排查:401、local proxy failed 与 reading choices
这一节把几个高频报错摊开讲,都是真实会遇到的,对照着改就行。
401 Unauthorized / invalid api key:九成是 Key 的问题。检查三处——Key 是否复制完整、前后是否有空格换行、是否已经过期或在控制台被删除。还有一种情况是配置文件里同时存在多个 provider,OpenClaw 取到了旧的那个 Key。解决方法是只保留一个 provider,或确认default指向正确。
local proxy failed / connection refused:这个报错通常和 Base URL 有关。如果你填了http://127.0.0.1:xxxx这类本地地址,但本地并没有对应服务在跑,就会 refused。用 TaoToken 的话 Base URL 是https://taotoken.net/api,是公网地址,出现这个错多半是你把地址写成了别的。另外检查系统代理设置,某些环境变量如HTTP_PROXY会干扰请求,临时 unset 掉再试。
Cannot read properties of undefined (reading 'choices'):这个错说明请求发出去了,但返回体结构不对,OpenClaw 按 OpenAI 格式去读choices没读到。常见原因是 Base URL 写成了带/v1的完整路径,导致实际请求打到了错误端点,返回的是错误页而不是标准响应。把 Base URL 改回https://taotoken.net/api即可。也有可能是 Model ID 不存在,服务端返回了错误对象。
OAuth / 鉴权跳转类报错:如果你在配置里误开了某些需要 OAuth 的 provider 类型,OpenClaw 会尝试走授权流程,但本地环境没有回调地址,就会卡住。确认type填的是openai,不要填成需要 OAuth 的类型。
配置改了不生效:先确认你改的是当前用户目录下的~/.openclaw/openclaw.json,而不是项目目录里的示例文件。再确认服务真的重启了。最后用第 3 节的 JSON 校验命令确认文件语法正确。三件套(Base URL + Key + Model ID)任何一项写错都会导致失败,建议逐项对照。
6. 把配置固化下来:一次改对,后续复用
配置跑通之后,建议把这份openclaw.json单独备份到一个安全位置,比如你的私有笔记或密码管理器里,只保留结构、Key 单独存。这样下次换机器或重装时,直接替换文件、补上 Key 就能用,不用再从头摸一遍字段。
另外,如果你后续要接 Claude Code 或做更复杂的 Agent 编排,可以看接入文档 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc 里的协议说明,Base URL 和 Key 的用法是一致的,换的只是调用方。本地 OpenClaw 这一层配好之后,它就是个稳定的模型出口,上层接飞书、接定时任务、接文件操作,都建立在这次连通性验证成功的基础上。
最后提醒一句:改配置时养成先备份、再改、后校验的习惯,node -e那行 JSON 校验命令值得存成快捷方式。模型接入这一环没有玄学,就是三件套对齐,对齐了就通。