Ollama

Ollama 是一款本機 LLM 執行環境,讓你輕鬆在自己的電腦上跑開源模型。OpenClaw 整合了 Ollama 的原生 API(/api/chat),支援串流與工具呼叫,並且在你透過 OLLAMA_API_KEY(或認證 Profile)啟用且未明確定義 models.providers.ollama 時,自動探索本機 Ollama 模型。

注意: 遠端 Ollama 使用者:請勿在 OpenClaw 中使用 /v1 OpenAI 相容網址(http://host:11434/v1),這會導致工具呼叫失效,模型可能將工具 JSON 當作純文字輸出。請改用原生 Ollama API 網址:baseUrl: "http://host:11434"(不帶 /v1)。

快速開始

設定精靈(建議方式)

最快的方式是透過設定精靈來設定 Ollama:

openclaw onboard

從供應商清單中選擇 Ollama,精靈會:

  1. 詢問 Ollama 的 Base URL(預設為 http://127.0.0.1:11434)。
  2. 讓你選擇 Cloud + Local(雲端加本機模型)或 Local(僅本機模型)。
  3. 若你選擇 Cloud + Local 且尚未登入 ollama.com,會開啟瀏覽器進行登入。
  4. 探索可用模型並建議預設值。
  5. 若所選模型尚未下載至本機,自動拉取。

也支援非互動模式:

openclaw onboard --non-interactive \
  --auth-choice ollama \
  --accept-risk

可選擇自訂 Base URL 或模型:

openclaw onboard --non-interactive \
  --auth-choice ollama \
  --custom-base-url "http://ollama-host:11434" \
  --custom-model-id "qwen3.5:27b" \
  --accept-risk

手動設定

  1. 安裝 Ollama:https://ollama.com/download

  2. 若要使用本機推理,先拉取模型:

ollama pull glm-4.7-flash
# 或
ollama pull gpt-oss:20b
# 或
ollama pull llama3.3
  1. 若也要使用雲端模型,先登入:
ollama signin
  1. 執行設定精靈並選擇 Ollama
openclaw onboard
  • Local:僅使用本機模型
  • Cloud + Local:本機模型加上雲端模型
  • 雲端模型如 kimi-k2.5:cloudminimax-m2.5:cloudglm-5:cloud 不需要執行 ollama pull

OpenClaw 目前建議的模型:

  • 本機預設:glm-4.7-flash
  • 雲端預設:kimi-k2.5:cloudminimax-m2.5:cloudglm-5:cloud
  1. 若偏好手動設定,可直接為 OpenClaw 啟用 Ollama(任意值皆可,Ollama 不需要真正的金鑰):
# 設定環境變數
export OLLAMA_API_KEY="ollama-local"

# 或寫入設定檔
openclaw config set models.providers.ollama.apiKey "ollama-local"
  1. 查看或切換模型:
openclaw models list
openclaw models set ollama/glm-4.7-flash
  1. 或在設定檔中指定預設模型:
{
  agents: {
    defaults: {
      model: { primary: "ollama/glm-4.7-flash" },
    },
  },
}

模型探索(隱式供應商)

當你設定了 OLLAMA_API_KEY(或認證 Profile)且未定義 models.providers.ollama 時,OpenClaw 會從 http://127.0.0.1:11434 的本機 Ollama 實例探索模型:

  • 查詢 /api/tags
  • 盡可能透過 /api/show 讀取 contextWindow
  • 根據模型名稱啟發式判斷是否具備推理能力(r1reasoningthink
  • maxTokens 設為 OpenClaw 使用的 Ollama 預設最大 token 上限
  • 所有費用設為 0

這省去了手動建立模型設定的麻煩,同時保持目錄與本機 Ollama 實例同步。

查看可用模型:

ollama list
openclaw models list

新增模型只需用 Ollama 拉取即可:

ollama pull mistral

新模型會自動被探索並可供使用。

若你明確設定了 models.providers.ollama,自動探索會被略過,必須手動定義模型(見下方說明)。

設定

基本設定(隱式探索)

啟用 Ollama 最簡單的方式是透過環境變數:

export OLLAMA_API_KEY="ollama-local"

明確設定(手動模型)

在以下情況使用明確設定:

  • Ollama 執行在其他主機或埠號上。
  • 你想強制指定 context window 或模型清單。
  • 你要完全手動定義模型。
{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://ollama-host:11434",
        apiKey: "ollama-local",
        api: "ollama",
        models: [
          {
            id: "gpt-oss:20b",
            name: "GPT-OSS 20B",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 8192,
            maxTokens: 8192 * 10
          }
        ]
      }
    }
  }
}

若已設定 OLLAMA_API_KEY,供應商設定中可省略 apiKey,OpenClaw 會在可用性檢查時自動填入。

自訂 Base URL(明確設定)

若 Ollama 執行在不同的主機或埠號(明確設定會停用自動探索,需手動定義模型):

{
  models: {
    providers: {
      ollama: {
        apiKey: "ollama-local",
        baseUrl: "http://ollama-host:11434", // 不加 /v1 — 使用原生 Ollama API URL
        api: "ollama", // 明確設定以確保使用原生工具呼叫
      },
    },
  },
}

注意: 不要在 URL 後面加 /v1/v1 路徑使用 OpenAI 相容模式,工具呼叫在此模式下不穩定。請使用不帶路徑後綴的 Ollama Base URL。

模型選擇

設定完成後,所有 Ollama 模型皆可使用:

{
  agents: {
    defaults: {
      model: {
        primary: "ollama/gpt-oss:20b",
        fallbacks: ["ollama/llama3.3", "ollama/qwen2.5-coder:32b"],
      },
    },
  },
}

雲端模型

雲端模型讓你在本機模型之外,同時使用雲端託管的模型(例如 kimi-k2.5:cloudminimax-m2.5:cloudglm-5:cloud)。

使用雲端模型需在設定精靈中選擇 Cloud + Local 模式。精靈會檢查是否已登入,必要時開啟瀏覽器登入流程。若無法驗證身分,精靈會退回本機模型預設值。

你也可以直接在 ollama.com/signin 登入。

進階設定

推理模型

OpenClaw 會將名稱中包含 deepseek-r1reasoningthink 的模型預設視為具備推理能力:

ollama pull deepseek-r1:32b

模型費用

Ollama 免費且在本機執行,因此所有模型費用皆為 $0。

串流設定

OpenClaw 的 Ollama 整合預設使用原生 Ollama API/api/chat),完整支援串流與工具呼叫同時運作,不需額外設定。

舊版 OpenAI 相容模式

注意: OpenAI 相容模式下工具呼叫不穩定。 除非你需要 OpenAI 格式(例如代理伺服器僅支援 OpenAI 格式)且不依賴原生工具呼叫,否則不建議使用此模式。

若需使用 OpenAI 相容端點(例如代理伺服器僅支援 OpenAI 格式),請明確設定 api: "openai-completions"

{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://ollama-host:11434/v1",
        api: "openai-completions",
        injectNumCtxForOpenAICompat: true, // 預設值:true
        apiKey: "ollama-local",
        models: [...]
      }
    }
  }
}

此模式可能無法同時支援串流與工具呼叫。你可能需要在模型設定中透過 params: { streaming: false } 停用串流。

使用 api: "openai-completions" 搭配 Ollama 時,OpenClaw 會預設注入 options.num_ctx,避免 Ollama 靜默退回 4096 的 context window。若你的代理伺服器或上游服務拒絕未知的 options 欄位,可停用此行為:

{
  models: {
    providers: {
      ollama: {
        baseUrl: "http://ollama-host:11434/v1",
        api: "openai-completions",
        injectNumCtxForOpenAICompat: false,
        apiKey: "ollama-local",
        models: [...]
      }
    }
  }
}

Context window

自動探索的模型會使用 Ollama 回報的 context window(若可用),否則退回 OpenClaw 使用的 Ollama 預設 context window。你可以在明確供應商設定中覆寫 contextWindowmaxTokens

疑難排解

偵測不到 Ollama

確認 Ollama 正在執行、已設定 OLLAMA_API_KEY(或認證 Profile),且明確定義 models.providers.ollama

ollama serve

同時確認 API 可以存取:

curl http://localhost:11434/api/tags

沒有可用的模型

若你的模型未列出,可能原因:

  • 尚未在本機拉取該模型
  • 未在 models.providers.ollama 中明確定義

新增模型:

ollama list  # 查看已安裝的模型
ollama pull glm-4.7-flash
ollama pull gpt-oss:20b
ollama pull llama3.3     # 或其他模型

連線被拒

確認 Ollama 在正確的埠號上執行:

# 檢查 Ollama 是否正在執行
ps aux | grep ollama

# 或重新啟動 Ollama
ollama serve

參考