用 Ollama 在本地跑 LLM:OpenClaw 整合指南
我以前開發 AI Agent 時,最頭痛的就是 API 帳單。每次只是想測試一個簡單的邏輯,都要噴掉幾塊美金,累積下來也是一筆開銷。後來我開始在本地跑 Ollama,雖然隱私和成本問題解決了,但手動設定模型參數和 Tool Calling 簡直是災難。這就是為什麼我喜歡 OpenClaw 的設計——它能自動幫你搞定這一切。
需要準備的東西
Section titled “需要準備的東西”在開始之前,請確保你已經準備好以下環境:
- 安裝好的 Ollama(點此下載)
- 至少一個支援 Tool Calling 的本地模型
- 運作中的 OpenClaw 環境
只要 5 分鐘,你就能讓本地模型跑起來:
-
下載模型: 建議選擇支援工具呼叫的模型,效果最好。
Terminal window ollama pull llama3.3# 或者ollama pull qwen2.5-coder:32b -
啟用 Ollama 支援: OpenClaw 只要偵測到
OLLAMA_API_KEY就會啟動自動發現功能。雖然 Ollama 本身不需要 key,但你需要隨便填一個值來觸發它。Terminal window # 直接設定環境變數export OLLAMA_API_KEY="ollama-local"# 或使用 OpenClaw 指令設定openclaw config set models.providers.ollama.apiKey "ollama-local" -
在 Agent 中使用: 在你的設定檔中指定模型,記得加上
ollama/前綴。{agents: {defaults: {model: { primary: "ollama/llama3.3" },},},}
自動模型發現 (Implicit Provider)
Section titled “自動模型發現 (Implicit Provider)”這是 OpenClaw 最聰明的地方。只要你設定了 OLLAMA_API_KEY 且沒有手動定義 models.providers.ollama,系統就會自動去掃描你本地 http://127.0.0.1:11434 的模型。
它會幫你處理這些瑣事:
- 自動過濾掉不支援
tools的模型,確保你的 Agent 不會當機。 - 偵測模型是否支援
thinking過程並標記為reasoning模型。 - 自動讀取
contextWindow(上下文視窗)大小。 - 將所有模型成本設為
0,看著帳單是 0 元就是爽。
想知道目前有哪些模型可用?跑這兩行指令:
ollama listopenclaw models list手動指定模型 (Explicit Setup)
Section titled “手動指定模型 (Explicit Setup)”如果你遇到以下狀況,就得放棄「自動發現」,改用手動設定:
- Ollama 跑在不同的 IP 或 Port。
- 你想強行使用不支援 Tool 的模型。
{ models: { providers: { ollama: { baseUrl: "http://your-server-ip:11434/v1", apiKey: "ollama-local", api: "openai-completions", models: [ { id: "llama3.3", name: "Llama 3.3 Local", contextWindow: 8192, maxTokens: 81920 } ] } } }}關於 Streaming 的重要提醒
Section titled “關於 Streaming 的重要提醒”這是一個技術上的實務建議:在 Ollama 上請預設關閉串流 (Streaming)。
因為目前底層 SDK 與 Ollama 的回應格式存在相容性問題,開啟串流時,模型輸出的 Tool Calling 內容(例如 memory_get 等指令)可能會跟一般文字混在一起,導致解析失敗。為了穩定性,OpenClaw 預設會關閉 Ollama 的串流功能,改用一次性回傳。
如果你非要挑戰看看,可以這樣強行開啟:
{ agents: { defaults: { models: { "ollama/llama3.3": { streaming: true }, }, }, },}找不到 Ollama 模型?
Section titled “找不到 Ollama 模型?”請檢查兩件事:
- 你的 Ollama 真的有在跑嗎?試試
curl http://localhost:11434/api/tags。 - 該模型是否支援 Tool?OpenClaw 預設會隱藏不支援 Tool 的模型。你可以改用
ollama pull llama3.3試試看。
回應出現亂碼或奇怪的工具名稱?
Section titled “回應出現亂碼或奇怪的工具名稱?”這通常是因為你開啟了 streaming: true。請回到設定檔將其移除,或明確設定為 false。本地模型跑得很快,不差那幾秒鐘的打字機效果,穩定才是王道。
連線被拒絕 (Connection Refused)
Section titled “連線被拒絕 (Connection Refused)”如果你是把 Ollama 跑在 Docker 或是另一台電腦,記得檢查 OLLAMA_HOST 環境變數,確保它允許外部連線,而不只是綁定在 127.0.0.1。
如果你在設定過程中卡住了,可以隨時詢問我們的 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。