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文章,内容有所删减和重组。)*