Ollama OpenClaw 怎么本地部署:模型选择、端口、权限与记忆插件排错

将 Ollama 本地模型接入 OpenClaw:选择支持工具调用的模型,确认原生 11434 端口与 provider 配置,限制权限,并排查 TencentDB Agent Memory 的长期记忆和日志压缩。

把 Ollama 接到 OpenClaw,最常见的失败并不是“模型太小”,而是端口写错、把 OpenAI 兼容 URL 用在原生 provider、Gateway 与 Ollama 不在同一网络命名空间,或给 Agent 开了过大的工具权限。正确顺序应是:先让 Ollama 原生 API 可用,再让 OpenClaw 识别模型,最后才启用记忆与自动化能力。OpenClaw 的 Ollama Provider 文档

本文以本机或私有局域网部署为目标,默认不把 Ollama 或 OpenClaw Gateway 暴露到公网。

先选对模型:能聊天不等于能做 Agent

OpenClaw 会使用模型处理工具调用、多步骤上下文和失败恢复。选择模型时优先确认:

  1. 模型已被 Ollama 拉取,且能正常生成。
  2. 模型在你的硬件上有可接受的首 token 时间和持续输出速度。
  3. 需要工具调用时,先用一个最小工具任务验证,不要只测“你好”。
  4. 为长任务预留上下文和显存/内存,避免其他服务挤占资源后频繁卸载模型。

不要照搬别人的“最佳模型”。小模型适合简单总结、分类和固定流程;涉及复杂工具调用、代码库理解或多轮任务时,先用真实任务做烟雾测试,再决定是否需要更大的模型或云端 fallback。

拉取并确认本地模型:

1
2
ollama pull <model>
ollama list

Ollama 的原生 API 默认监听 http://localhost:11434/api。先确认 daemon 与模型目录正常:

1
2
curl http://127.0.0.1:11434/api/tags
curl http://127.0.0.1:11434/api/generate -d '{"model":"<model>","prompt":"Reply with exactly: ok","stream":false}'

第二个请求返回 ok 前,不要开始排查 OpenClaw 配置。

用原生 Ollama 地址接入 OpenClaw

OpenClaw 的 Ollama provider 需要原生 API 地址,重点是:不要在 baseUrl 后面加 /v1。官方文档说明,若把 OpenAI 兼容地址用作原生 provider,工具调用可能失败,模型还可能把工具 JSON 当纯文本输出。

本机本地模式可先设置本地标记:

1
export OLLAMA_API_KEY="ollama-local"

然后通过 OpenClaw onboarding 选择 Ollama 的 Local 模式,或写入明确配置。以下示例用于本机原生端口:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://127.0.0.1:11434",
        apiKey: "ollama-local",
        api: "ollama"
      }
    }
  },
  agents: {
    defaults: {
      model: {
        primary: "ollama/<model>"
      }
    }
  }
}

baseUrl 是当前推荐键名;baseURL 仅为兼容旧示例保留。对 loopback、私有网段、.local 或裸主机名,ollama-local 可作为本地标记;若连接公网 Ollama host 或 Ollama Cloud,则必须使用真实凭据。

用三条命令确认模型真的被 OpenClaw 使用

配置保存后,不要只看 UI 是否有模型名称。按顺序执行:

1
2
3
openclaw models list --provider ollama
openclaw models status
openclaw infer model run --model ollama/<model> --prompt "Reply with exactly: ok"

如果 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 能操作文件、命令和外部服务时,风险来自权限范围而非模型是否离线。

建议的最小权限做法:

  1. 以普通用户运行 OpenClaw,不使用管理员/root。
  2. 将工作目录限制到专门的项目或沙盒目录,避免读写整个用户目录。
  3. 先关闭或人工批准高风险操作:删除、发布、外发消息、凭据读取、生产环境连接。
  4. 单独保存密钥,不把它们写进模型提示、记忆、日志或版本库。
  5. 安装 Skill/插件前查看来源和内容;Agent 会以你授予的权限执行它们。

模型能力越强、工具权限越广,越需要把“可执行”与“可自动执行”分开。

为慢模型设置超时和常驻策略

本地模型第一次加载通常更慢。OpenClaw 官方建议优先做 provider 级调优,而不是一味提高整个 Agent runtime 超时:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  models: {
    providers: {
      ollama: {
        timeoutSeconds: 300,
        models: [
          {
            id: "<model>",
            name: "<model>",
            params: { keep_alive: "15m" }
          }
        ]
      }
    }
  }
}

timeoutSeconds 覆盖模型 HTTP 请求的连接、流式响应与总超时;keep_alive 可减少短时间内重复冷启动。若 Agent 任务本身有更短的总超时,也要分别调整,否则 provider 超时再长也无法延长整个任务。

接入记忆插件时的排错顺序

TencentDB Agent Memory 可以为 OpenClaw 增加本地长期记忆和工具日志压缩,但不要在 Ollama 连通性未验证前就启用它。推荐顺序:

1
2
3
4
1. Ollama /api/tags 与最小生成请求成功。
2. OpenClaw models list、status、infer 均成功。
3. 安装并启用记忆插件,测试跨会话的一条明确事实。
4. 最后开启 offload,验证 node_id 能回溯原始工具日志。

安装插件:

1
2
openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
openclaw gateway restart

如果启用后“记不住”,先看插件是否已启用、存储路径是否可写、是否真的开始了新会话;如果开启 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,最后按最小权限开放工具与记忆能力。把模型、端口、进程边界和插件拆开验证,排错会比反复重装更快也更安全。

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计