openclaw 接入ollama部署的本地模型

模型与算力

讲清 openclaw 接本地 ollama 的配置写法、模型与参数映射,以及连不上时按什么顺序排查。

用 openclaw 跑 agent,又想让它走本机 ollama 的本地模型,最容易卡在两件事:一是配置文件里模型名、base_url、接口格式对不上,二是 ollama 那边没监听对地址或模型没拉下来,openclaw 报的错又很含糊。这篇按「先确认 ollama 通了、再改 openclaw 配置、最后调参数和排查」的顺序走一遍,给判断标准和可回退的做法。

用 openclaw 跑 agent,又想让它走本机 ollama 的本地模型,最容易卡在两件事:一是配置文件里模型名、base_url、接口格式对不上,二是 ollama 那边没监听对地址或模型没拉下来,而 openclaw 报的错又很含糊,只丢一句连接失败或者模型不存在。这篇按「先确认 ollama 通了、再改 openclaw 配置、最后调参数和排查」的顺序走一遍,每一步都给判断标准和可回退的做法。

整体思路是别同时改两边。先让 ollama 端能被命令行直接调用成功,再去动 openclaw 的配置;配置跑通一个模型之后,才考虑加第二个模型或者调参。本地部署和云端 API 最大的差别在于,出错时责任往往在你这台机器上,而不是对面服务,所以排查方向要反过来。

动手改配置前,先把 ollama 这一端验通

很多人一上来就改 openclaw 的配置,改完报错又怀疑是客户端写得不对,其实问题常常在 ollama 这端根本没通。先做最小验证:用命令行直接向 ollama 发一条最短请求,能拿到像样的回复,再谈接 openclaw。模型名要和当初拉取时用的标签完全一致,大小写、冒号后面的部分都不能想当然。

  1. 确认服务在跑看 ollama 进程是否存活,端口是否在监听。起不来的话先解决这一层,别往下走。
  2. 确认模型已拉到本地列出本地已有模型列表,找到你要用的那一个;列表里没有就说明没拉下来。
  3. 命令行发一条最小请求用最简的请求体问一句话,只关心能不能出结果,不关心质量。
  4. 记下返回结构看清返回的字段长什么样,后面填 openclaw 的接口路径和解析方式要跟它对齐。

还有两个高频坑。一是 ollama 的原生接口和它的 OpenAI 兼容入口路径不同、返回结构也不同,openclaw 里填哪种取决于它支持哪种调用方式,混填是 404 的头号来源。二是如果 openclaw 跑在容器或另一台机器上,配置里的 localhost 指的是它自己,不是你的宿主机,要换成宿主机可达的地址,同时把 ollama 的监听地址放开,改完先确认这个端口从 openclaw 那侧能访问到。想先量一遍连通性和延迟,可以去 接口测速:先量出你的延迟基线 过一遍,比在配置里盲试省事得多。

openclaw 里的模型段怎么填:字段对应关系

openclaw 的模型配置一般分两块:一是服务地址与鉴权,二是模型名与调用格式。两块要成对改,只改一处必然不生效。本地 ollama 通常不需要真的密钥,但不少客户端会校验这个字段非空,随手填个占位符就行,别因为「本地不需要 key」就把这一行留空。

配置项该怎么填常见错法
服务地址 base_url指向 ollama 实际监听的地址和端口填了 localhost,但 openclaw 在容器里
接口路径按 openclaw 支持的调用方式选原生或兼容入口路径和地址混着来,直接 404
模型名与本地拉取的标签一致,必要时加供应商标识多写或少写前缀,报模型不存在
鉴权字段本地一般填占位符保持非空留空被客户端拦下
默认模型先只指定一个一次配一堆,同时排错变量太多

模型名写法随客户端而变:有的要原样标签,有的要加供应商标识前缀,有的只有走 OpenAI 兼容入口时才认这个名字。先用一个能跑通的写法验证,再考虑加别的模型。多个本地模型可以并列配置,但默认模型只能有一个,建议先只配一个跑通,跑通后按同样格式把其余模型追加进去。

openclaw 和别的客户端配置键名不通用,别把别处的示例整段照搬,改键名比改值更常出问题。

选模型规模之前,先确认自己的机器跑不跑得动,站内的 部署测算 可以拿来对照你选的模型规模是否合适,免得配完了发现加载都费劲,白白浪费一轮调试时间。

参数怎么定:上下文、并发和超时三个坑

配置连上了,不等于能稳定用。本地模型在参数上和云端差异很大,尤其这三个最容易翻车:上下文长度、并发数、超时时间。它们的共同点是,配错了不会明确告诉你哪里错,只会表现成「很慢」「偶尔失败」「答一半断了」。

  • 上下文长度按实际能接受的显存来设,客户端里设得比模型实际支持更长只会报错或者被截断,不确定就先调小,跑通后往上加。
  • 本地单机的并发上限远低于云端,agent 场景经常并发发请求,容易互相抢显存导致全都变慢甚至一起失败,并发压到一两个起步,看响应再放。
  • 超时时间要给足,本地模型首 token 可能明显慢于云端,默认超时往往太短,表现就是「配置没错但一直失败」。
  • 留意模型是否被设成空闲即卸载,卸载之后第一次调用会额外慢一截,agent 短时间反复调用时这个体验落差很明显。

想知道当前输出速度、显存占用和并发之间的实际关系,先用 接口测速:先量出你的延迟基线 记录一条基线,再对照 几张卡够用:按模型算一遍 判断是不是硬件先到顶了。如果是硬件限制,调参数救不回来,只能减并发、缩上下文或者换更小的模型。

连不上或答不对时的排查顺序

报错含糊的时候,最忌讳两边同时改。按「ollama 进程 → 端口可达 → 接口返回 → openclaw 配置 → 参数」的顺序逐层确认,从下往上查,确认一层再进下一层。换模型仍然失败时,回到最小验证:命令行发一条请求,成功说明问题在客户端侧,失败说明问题在 ollama 侧。

报错表现大概率原因先查哪
连接被拒地址填错或 ollama 没监听对外端口可达性
404 找不到接口路径错或模型名不对路径与模型标签
一直超时本地速度慢或超时设太短超时设置与模型加载
返回解析失败走错了接口类型原生还是兼容入口
答非所问 / 不按格式调工具模型本身对 agent 场景支持有限换更适配的模型

最后一种情况要单独说:模型答非所问、不遵守工具调用格式,往往不是配置能修的,换一个更适配 agent 场景的模型,比继续调参划算。哪些模型在工具调用和长上下文上更稳,可以看 AI 模型库 里当时的对比口径,别只凭模型大小判断。要注意的是,能力强一些的模型对显存和速度的要求也更高,换之前先确认机器扛得住,否则只是把问题从「答不对」换成「跑不动」。

下一步配置和参数定下来之后,把接口响应速度也纳进日常观察,速度掉下来往往是显存被占满或者模型被卸载的信号,早点发现比 agent 中途报错强。

常见问题

openclaw 只认云端 API,能接本地 ollama 吗?

取决于 openclaw 这一版支持的接入方式:只要它能自定义服务地址和模型名,或者支持 OpenAI 兼容格式,本地 ollama 就能顶上去。先在配置里找「自定义 base_url / 自定义模型」这类入口,找不到就别硬改配置文件,升级或换调用方式更省事。

本地 ollama 要不要填 API key?

本地部署一般不做鉴权,但不少客户端要求该字段非空才会保存,随便填个占位值即可,不要留空。需要区分的是:如果你加了反代或网关,鉴权可能就变成真需要的,这时按网关那边的要求填。配置好之后用命令行走一遍请求,能通就说明鉴权这块没问题。

配置看着都对,但一调用就超时,先动哪里?

先别改 openclaw,直接在命令行给同一个模型发一条最短请求,看要多久出第一个字。如果本身就很慢,那是模型和硬件的问题,去调并发、上下文或换更小的量化版本;如果命令行很快,那是客户端的超时或并发设置太紧,把超时调大、并发压到 1 再试。

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