把 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,最後按最小權限開放工具與記憶能力。把模型、端口、進程邊界和插件拆開驗證,排錯會比反覆重裝更快也更安全。