openclaw.json ollama 本地模型

模型与算力

讲清 openclaw.json 里怎么把 Ollama 本地模型接进来并生效:字段怎么写、服务地址怎么给、改完为什么不生效怎么查。

你本地 Ollama 已经能对话了,想把 openclaw 指过去用本地模型,结果卡在 openclaw.json 这段配置上:字段名记不准、base URL 填了没反应、模型名对不上就报错。这篇不讲 Ollama 怎么装,也不比哪家模型好,只把配置文件这一环拆开:配置写在哪个位置、需要哪几个字段、服务端要不要先起、改完按什么顺序验证。照着一节一节对,能自己定位是哪一环没通。

你本地 Ollama 已经能正常对话了,下一步想把 openclaw 指过去用本地模型,结果卡在 openclaw.json 这段配置上:字段名记不准、base URL 填了没反应、模型名对不上就报错。这篇不讲 Ollama 怎么装,也不比哪家模型好,只把配置文件这一环拆开:配置写在哪个位置、需要哪几个字段、服务端要不要先起、改完按什么顺序验证。照着一节一节对,能自己定位是哪一环没通。

下面每一节都按「先做什么、怎么验证、什么情况不适用」来写。不建议一口气全改完再测,那样出了错根本不知道是哪一层的问题。改一处、验一处,成本最低。

先确认你改的是哪个 openclaw.json

同名文件可能有多个:全局一份、项目目录下一份。很多人改完没反应,九成是改了全局那份,但实际运行是在某个项目目录里启动的,进程读的是另一份。动手前先把「当前实际被加载的是哪一份」找出来,不确定就别嫌麻烦,先复制一份备份,改坏了能立刻回退。

  • 同名配置文件可能存在于全局和项目两个位置,先确认进程启动时读的是哪一份再动手;
  • 动手前先备份原文件,改乱了用备份覆盖回来比重装省事;
  • 不同 openclaw 版本的配置形态不固定,字段以你本机版本的说明为准,别照抄网上旧写法;
  • 改完看文件有没有被格式化工具改写过,缩进和逗号错一处,整段配置可能被静默忽略,不会给你任何报错。

Ollama 那一侧:先让服务真的在监听

openclaw 要连的是 Ollama 暴露出来的 HTTP 地址,不是某个模型文件的磁盘路径,这两个东西经常被混为一谈。所以第一步不是改配置,而是单独确认这个地址真的能访问:在命令行里能列出模型清单、能正常发一句问话,再去改 openclaw。否则你是在给一个根本没起来的服务配地址。

现象先查什么大概率原因
openclaw 里一直连不上单独访问 Ollama 地址能否返回模型清单服务没起,或端口写错
本机能通,容器里不通容器内 localhost 指的是谁容器和宿主机不是同一台机器
改完地址毫无反应进程重启后日志有没有新报错配置没被加载,或改了另一份文件
能连上但调不动模型配置里的模型标识和列表是否逐字一致名字差一个字符或漏了标签

还有一个容易忽略的点:Ollama 默认只监听本机。如果 openclaw 和它不在同一台机器上,或者跑在容器里,必须先把监听地址调成外部可达,这一步没做,配置怎么写都是连不上。这个开关通常靠环境变量控制,改完记得让服务重新加载。

模型名必须一字不差,不然连接成功也调不动

这是最常见的第二种坑:地址通了,但配置里引用的模型标识和 Ollama 列表里的名字对不上。带不带标签后缀,通常是两个不同的条目。最稳的做法是命令行里把名字整段复制出来,直接粘进配置,手打很容易多一个空格或者少一段后缀,而这种错误经常不报错,只是调不动或者行为怪异。

  • 配置里的模型标识要和 Ollama 列表里的名字逐字一致,把名字复制粘贴,别手打;
  • 带标签后缀和不带后缀可能是两个不同条目,别想当然替换;
  • 同名不同量化版本在你机器上可能显示为两条,选错不一定报错,只是又慢又差;
  • 改完模型名建议重启 openclaw 进程,很多客户端只在启动时读一次配置,不重启看不到变化。

如果只是想验证配置通不通,先用最简单、你确定存在的那一个模型试,别一上来就配一个名字很长、来源复杂的模型。跑通了再换,排查范围小很多。

改完按这个顺序验,别一步跳到聊天窗口

  1. 第一步:验服务脱离 openclaw,直接用命令行访问 Ollama 地址,确认能列出模型清单。这一步不过,后面都不用看。
  2. 第二步:看日志启动或重启 openclaw,看日志里有没有加载新配置的记录,有没有连接被拒、地址解析失败这类关键字。
  3. 第三步:发一句最普通的提问别用复杂提示词,就用一句普通问话,确认能返回内容;回复异常慢通常是算力问题,不是配置问题。
  4. 第四步:一次只动一个字段跑不通就回退到上一个能通的版本,再改下一处。一次改五处再去猜哪处错,最费时间。

日志里那几类报错其实各对应一件事:连接被拒多半是服务没起或端口不对,地址解析失败多半是地址写错,模型不存在就是名字对不上。先把这三件事分开,再去抠细节,效率会高很多。

这几种情况别在配置上死磕

有些问题看起来像配置没写对,其实是方向错了。认清下面这几种,能省下大量反复试字段的时间。

  • Ollama 服务版本过旧、接口行为和文档不一致时,改配置文件没用,先把服务端升级到能和客户端对上的版本;
  • 机器本身跑不动你选的模型规模,配置写得再对也只会一直等,这是硬件和模型档位的问题;
  • 团队多人共用一套 openclaw 时,本地模型只在配了的那台机器上有效,别人连不上属于预期,要走统一的服务地址;
  • 需要跨机访问或多人并发时,本地 Ollama 往往不是终点,该考虑换成服务化的推理方案。

一句话判断:如果你已经确认过服务可达、模型名一致、配置文件也被正确加载,问题还没解决,那大概率就不在配置这一层了,别再围着 json 打转。

下一步配好本地模型之后,如果你还想对比云端接口的延迟和稳定性,或者搞清楚中转站靠不靠谱,去站内对应页面看当时的实测数字和目录,比只看文档更有参考价值。

常见问题

openclaw.json 里填了 Ollama 地址,为什么还是连不上?

先确认三件事:Ollama 服务确实在运行并能列出模型;配置里的地址是 openclaw 所在环境能访问到的地址,容器里写 localhost 通常指容器本身;配置改完后进程重启过。这三步里任意一步没做,都会表现为连不上。

模型名写对了一半会怎样?

多数情况直接报模型不存在,这类最好查。麻烦的是同名不同量化版本被当成两个条目,你选错也能跑起来,只是速度和输出质量明显不对。建议从命令行把模型名原样复制到配置里,别手敲。

本地模型和线上模型能在同一份配置里共存吗?

一般可以,同一份配置里挂多个模型入口,用哪个由调用时指定。要注意的是本地那条只在装了 Ollama 的机器上有效,换台机器就调不动。共用配置的团队建议把这条单独说明,避免别人照着配却连不上。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。