AI News HubLIVE
站内改写4 分鐘閱讀

將Claude Code與本地模型配對使用

本文介紹瞭如何將Claude Code與本地推理後端(Ollama、LM Studio、llama.cpp)配對,以降低API成本並避免速率限制。詳細説明了環境變量配置、模型選擇建議以及常見問題的解決方法。

來源KDnuggets作者: Shittu Olumide

引言

代理式編碼會話成本高昂。一次Claude Code會話——讀取文件、編寫代碼、運行測試、迭代——消耗的令牌數可能是普通聊天對話的10到50倍。大規模使用時,成本會迅速累積。再加上可能中斷長時間工作流的速率限制,以及對第三方API的依賴(價格變動、政策收緊、服務中斷),本地推理的案例變得直截了當。

2026年的本地模型已經足夠好。對於Claude Code日常處理的代碼補全、重構、調試、代碼庫解釋等任務,精心選擇的量化本地模型可以覆蓋絕大多數實際用例,且零令牌成本、無速率限制。本文將介紹三個推理後端(Ollama、LM Studio和llama.cpp),配置Claude Code連接到每個後端所需的環境變量和配置文件,一張值得運行的模型推薦表,以及實際會遇到的故障排除方案。

Claude Code如何連接任何本地模型

機制比大多數指南看起來更簡單。Claude Code以Anthropic Messages API格式發送請求。默認情況下,這些請求發送到Anthropic的服務器。設置ANTHROPIC_BASE_URL可以將它們重定向到任何支持相同格式的服務器,現在Ollama、LM Studio和llama.cpp原生支持該格式。

根據官方Claude Code環境變量文檔,與此設置相關的變量包括:

  • ANTHROPIC_BASE_URL:將所有API調用從Anthropic的服務器重定向到您設置的URL。
  • ANTHROPIC_API_KEY:請求頭中發送的API密鑰。本地服務器通常忽略身份驗證,因此通常設置為佔位符字符串,如"local"或"ollama"。
  • ANTHROPIC_AUTH_TOKEN:替代的身份驗證頭。某些本地服務器會檢查此字段而非API密鑰。設置為相同的佔位符。
  • ANTHROPIC_DEFAULT_SONNET_MODEL、ANTHROPIC_DEFAULT_HAIKU_MODEL、ANTHROPIC_DEFAULT_OPUS_MODEL:Claude Code根據任務內部請求不同的模型層級。這三個變量將每個層級映射到您本地模型的名稱。沒有它們,Claude Code會向本地服務器發送請求(如claude-sonnet-4-20250514),而本地沒有該模型,導致請求被拒絕。

2026年1月,Ollama增加了對Anthropic Messages API的原生支持,這是使此工作流無需翻譯代理即可實用的技術變革。LM Studio在0.4.1版本中增加了原生/v1/messages端點。llama.cpp更早就有直接的Anthropic API支持。現在三者都支持Claude Code的原生協議。

後端1:Ollama

Ollama是正確的起點。它通過簡單的命令行界面處理所有模型管理複雜性:下載權重、量化、GPU和CPU分配以及服務。一個命令安裝,一個命令拉取模型,幾個環境變量配置。安裝後作為後台服務運行,無需手動啓動服務器。

前提條件

  • macOS、Linux或Windows(推薦WSL2)
  • 至少16 GB RAM(推薦32 GB)
  • GPU推理需要8+ GB VRAM,或僅CPU但足夠RAM
  • Ollama v0.14.0或更高版本(需要Anthropic Messages API支持)

安裝Ollama

# macOS和Linux一鍵安裝
curl -fsSL https://ollama.com/install.sh | sh

# 驗證版本——必須0.14.0+才兼容Claude Code
ollama version
# 預期:ollama version is 0.14.x or higher

# Windows:從https://ollama.com下載安裝程序

安裝後,Ollama自動在後台啓動,監聽端口11434。驗證是否運行:

curl http://localhost:11434
# 預期響應:Ollama is running

拉取編碼模型

# GLM-4.7-Flash——推薦起點,強大的工具調用,128K上下文,適合8 GB VRAM,Apache 2.0許可證
ollama pull glm-4.7-flash:latest

# Qwen3-Coder——強大的代碼生成和指令遵循,需要20+ GB VRAM
ollama pull qwen3-coder

# Devstral-Small——專為代理編碼工作流設計,社區測試兼容Claude Code,24B,需要16+ GB VRAM
ollama pull devstral-small-2:24b

# 驗證模型已下載
ollama list

配置Claude Code使用Ollama

選項1:Shell導出(僅當前終端會話)

# 將Claude Code重定向到本地Ollama服務器
export ANTHROPIC_BASE_URL="http://localhost:11434"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_AUTH_TOKEN="ollama"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-4.7-flash:latest"

# 啓動Claude Code
claude

選項2:~/.claude/settings.json(永久,適用於所有會話)

創建或編輯~/.claude/settings.json:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:11434",
    "ANTHROPIC_API_KEY": "ollama",
    "ANTHROPIC_AUTH_TOKEN": "ollama",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "glm-4.7-flash:latest",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "glm-4.7-flash:latest",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "glm-4.7-flash:latest"
  }
}

選項3:項目目錄中的.env文件(按項目覆蓋)

# .env在項目根目錄
ANTHROPIC_BASE_URL=http://localhost:11434
ANTHROPIC_API_KEY=ollama
ANTHROPIC_AUTH_TOKEN=ollama
ANTHROPIC_DEFAULT_SONNET_MODEL=qwen3-coder
ANTHROPIC_DEFAULT_HAIKU_MODEL=qwen3-coder
ANTHROPIC_DEFAULT_OPUS_MODEL=qwen3-coder

驗證連接:

claude
# 在Claude Code中輸入:> What model are you running?
# 應返回本地模型,且無Anthropic API調用

# 使用詳細日誌確認:
claude --verbose
# 查找指向localhost:11434的請求

從頭開始的完整工作序列:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull glm-4.7-flash:latest
export ANTHROPIC_BASE_URL="http://localhost:11434"
export ANTHROPIC_API_KEY="ollama"
export ANTHROPIC_AUTH_TOKEN="ollama"
export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-4.7-flash:latest"
export ANTHROPIC_DEFAULT_OPUS_MODEL="glm-4.7-flash:latest"
claude

後端2:LM Studio

如果您想要圖形界面來瀏覽和管理模型,而不是完全在終端中操作,那麼LM Studio是正確的選擇。自0.4.1版本起,它包含原生Anthropic兼容的/v1/messages端點——正是Claude Code期望的路徑——因此無需翻譯層或代理。

前提條件

  • macOS、Windows或Linux
  • 推薦GPU至少6 GB VRAM(僅CPU也可以但較慢)
  • 從lmstudio.ai下載或使用CLI安裝程序

安裝和配置LM Studio

# 在無GUI的服務器或VM上——CLI安裝程序
curl -fsSL https://releases.lmstudio.ai/cli/install.sh | bash

# 或從https://lmstudio.ai下載桌面應用

GUI設置步驟:

  1. 打開LM Studio,搜索編碼模型(如"qwen coder"或"devstral")。
  2. 下載模型。LM Studio自動處理量化選擇。
  3. 轉到"本地服務器"選項卡(左側邊欄圖標)。
  4. 設置上下文大小。建議從至少25,000個令牌開始,然後增加以獲得更好結果。
  5. 單擊"啓動服務器"。
  6. 注意端口(默認1234)並精確複製模型名稱。

配置Claude Code

export ANTHROPIC_BASE_URL="http://localhost:1234"
export ANTHROPIC_API_KEY="lm-studio"
export ANTHROPIC_AUTH_TOKEN="lm-studio"
export ANTHROPIC_DEFAULT_SONNET_MODEL="qwen2.5-coder-32b-instruct"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="qwen2.5-coder-32b-instruct"
export ANTHROPIC_DEFAULT_OPUS_MODEL="qwen2.5-coder-32b-instruct"

或在~/.claude/settings.json中持久化:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:1234",
    "ANTHROPIC_API_KEY": "lm-studio",
    "ANTHROPIC_AUTH_TOKEN": "lm-studio",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "qwen2.5-coder-32b-instruct",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "qwen2.5-coder-32b-instruct",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "qwen2.5-coder-32b-instruct"
  }
}

運行步驟

  1. 從GUI啓動LM Studio服務器(本地服務器選項卡 > 啓動服務器)。
  2. 設置環境變量。
  3. 啓動Claude Code。

後端3:llama.cpp

當您需要直接控制推理參數(量化類型、KV緩存配置、批大小、線程數)或在服務器上運行且需要最低開銷時,llama.cpp是正確的選擇。它原生支持Anthropic Messages API,無需代理或翻譯層。

前提條件

  • GGUF格式的模型文件(從Hugging Face下載,搜索任何模型的"GGUF"版本)
  • 支持CUDA的GPU用於GPU推理,或僅CPU(較慢)
  • CMake和C++編譯器用於源碼構建(在Linux/CUDA上,推薦源碼)

安裝llama.cpp

# macOS——Homebrew最簡單
brew install llama.cpp

# Linux with CUDA——從源碼構建以獲得最佳GPU性能
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release
# 二進制文件在./build/bin/

# Linux CPU-only構建
cmake -B build
cmake --build build --config Release

# Windows——預構建二進制文件:
# https://github.com/ggml-org/llama.cpp/releases
# 下載匹配硬件的CUDA或CPU變體

下載GGUF模型

# 安裝Hugging Face CLI
pip install huggingface-hub

# 下載Q4_K_XL量化的GLM-4.7-Flash(約4.5 GB)
huggingface-cli download THUDM/glm-4-9b-gguf glm-4-9b-Q4_K_XL.gguf --local-dir ./models

(後續配置步驟因文章截斷未完整顯示,但核心思想與其他後端類似。)

結論

將Claude Code與本地模型配對使用,可以顯著降低成本並消除對第三方API的依賴。通過本文介紹的三個後端,開發者可以根據自己的硬件和偏好選擇最合適的方案,並通過簡單的環境變量配置實現無縫集成。

*(注:本文基於KDnuggets文章,內容有所刪減和重組。)*