把 Ollama 接到 OpenClaw,最常见的失败并不是“模型太小”,而是端口写错、把 OpenAI 兼容 URL 用在原生 provider、Gateway 与 Ollama 不在同一网络命名空间,或给 Agent 开了过大的工具权限。正确顺序应是:先让 Ollama 原生 API 可用,再让 OpenClaw 识别模型,最后才启用记忆与自动化能力。OpenClaw 的 Ollama Provider 文档
本文以本机或私有局域网部署为目标,默认不把 Ollama 或 OpenClaw Gateway 暴露到公网。
先选对模型:能聊天不等于能做 Agent
OpenClaw 会使用模型处理工具调用、多步骤上下文和失败恢复。选择模型时优先确认:
- 模型已被 Ollama 拉取,且能正常生成。
- 模型在你的硬件上有可接受的首 token 时间和持续输出速度。
- 需要工具调用时,先用一个最小工具任务验证,不要只测“你好”。
- 为长任务预留上下文和显存/内存,避免其他服务挤占资源后频繁卸载模型。
不要照搬别人的“最佳模型”。小模型适合简单总结、分类和固定流程;涉及复杂工具调用、代码库理解或多轮任务时,先用真实任务做烟雾测试,再决定是否需要更大的模型或云端 fallback。
拉取并确认本地模型:
|
|
Ollama 的原生 API 默认监听 http://localhost:11434/api。先确认 daemon 与模型目录正常:
|
|
第二个请求返回 ok 前,不要开始排查 OpenClaw 配置。
用原生 Ollama 地址接入 OpenClaw
OpenClaw 的 Ollama provider 需要原生 API 地址,重点是:不要在 baseUrl 后面加 /v1。官方文档说明,若把 OpenAI 兼容地址用作原生 provider,工具调用可能失败,模型还可能把工具 JSON 当纯文本输出。
本机本地模式可先设置本地标记:
|
|
然后通过 OpenClaw onboarding 选择 Ollama 的 Local 模式,或写入明确配置。以下示例用于本机原生端口:
|
|
baseUrl 是当前推荐键名;baseURL 仅为兼容旧示例保留。对 loopback、私有网段、.local 或裸主机名,ollama-local 可作为本地标记;若连接公网 Ollama host 或 Ollama Cloud,则必须使用真实凭据。
用三条命令确认模型真的被 OpenClaw 使用
配置保存后,不要只看 UI 是否有模型名称。按顺序执行:
|
|
如果 curl /api/tags 成功而 openclaw models list 没有结果,通常是 provider 没被启用、环境变量没有被运行 Gateway 的服务账户继承,或 Gateway 实际运行在容器/远端机器上。先解决这个网络与进程边界,不要盲目修改模型名。
端口和容器:localhost 经常不是你以为的 localhost
Ollama 默认绑定 127.0.0.1:11434,这对同一台宿主机上的 OpenClaw 最安全;但 Docker、WSL、systemd 服务和远端 Gateway 都会改变 localhost 的含义。
| 场景 | 应检查什么 |
|---|---|
| OpenClaw 与 Ollama 都在宿主机 | 127.0.0.1:11434 是否能由同一用户访问 |
| OpenClaw 在 Docker,Ollama 在宿主机 | 容器里的 localhost 指向容器自身;使用宿主机可达地址并限制网络暴露 |
| OpenClaw 在另一台机器 | Ollama 是否绑定到私有网络地址、防火墙是否只放行可信来源、是否使用真实认证策略 |
| WSL 与 Windows 混合 | 分别从两侧运行 curl /api/tags,确认实际路由而非猜测 |
不要为了“连得上”就把 11434 绑定到所有公网网卡。局域网访问也应配合防火墙、专用网段和最小权限;远程节点可优先使用受控隧道或内部网络,而不是裸露 HTTP 端口。
权限先收紧,再逐项开放
本地模型并不会自动让 Agent 的工具行为变安全。OpenClaw 能操作文件、命令和外部服务时,风险来自权限范围而非模型是否离线。
建议的最小权限做法:
- 以普通用户运行 OpenClaw,不使用管理员/root。
- 将工作目录限制到专门的项目或沙盒目录,避免读写整个用户目录。
- 先关闭或人工批准高风险操作:删除、发布、外发消息、凭据读取、生产环境连接。
- 单独保存密钥,不把它们写进模型提示、记忆、日志或版本库。
- 安装 Skill/插件前查看来源和内容;Agent 会以你授予的权限执行它们。
模型能力越强、工具权限越广,越需要把“可执行”与“可自动执行”分开。
为慢模型设置超时和常驻策略
本地模型第一次加载通常更慢。OpenClaw 官方建议优先做 provider 级调优,而不是一味提高整个 Agent runtime 超时:
|
|
timeoutSeconds 覆盖模型 HTTP 请求的连接、流式响应与总超时;keep_alive 可减少短时间内重复冷启动。若 Agent 任务本身有更短的总超时,也要分别调整,否则 provider 超时再长也无法延长整个任务。
接入记忆插件时的排错顺序
TencentDB Agent Memory 可以为 OpenClaw 增加本地长期记忆和工具日志压缩,但不要在 Ollama 连通性未验证前就启用它。推荐顺序:
|
|
安装插件:
|
|
如果启用后“记不住”,先看插件是否已启用、存储路径是否可写、是否真的开始了新会话;如果开启 offload 后找不到完整日志,检查 context engine 槽位和 after-tool-call 补丁是否正确应用。具体配置和回溯流程见 TencentDB Agent Memory 接入 OpenClaw 教程。
常见故障快速定位
| 现象 | 优先检查 |
|---|---|
connection refused |
Ollama 是否运行、端口是否为 11434、当前网络命名空间是否正确 |
| 能列模型但工具调用失败 | 是否把 /v1 用在原生 Ollama provider 的 baseUrl,模型是否实际支持工具任务 |
| OpenClaw 报缺少 API key | 本地是否设置 OLLAMA_API_KEY=ollama-local,Gateway 服务账户是否读取到该变量 |
| 模型频繁超时 | 硬件负载、模型大小、timeoutSeconds、Agent 总超时和 keep_alive |
| 插件使任务变慢或丢上下文 | 先关闭 offload,仅验证长期记忆;再检查 node_id 到原始日志的回溯链路 |
小结
Ollama + OpenClaw 的稳定部署从原生 API 开始:先确认 127.0.0.1:11434/api 和模型,再用原生(非 /v1)地址让 OpenClaw 识别 provider,最后按最小权限开放工具与记忆能力。把模型、端口、进程边界和插件拆开验证,排错会比反复重装更快也更安全。