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 設計