Claude Code + LM Studio 完整排障手册

Claude Code 接入 LM Studio 完整指南

Claude Code + LM Studio 快速上手

这份文档专门针对接入过程中常见的失败场景,适合出现异常时逐项检查。


1. 典型问题清单

常见问题一般集中在下面几类:

  • Claude Code 启动后仍然提示 /login
  • 明明设置了本地地址,却没有走 LM Studio
  • 出现 Auth conflict
  • 出现 Cannot read properties of undefined (reading 'input_tokens')
  • 新终端可用,换个目录或新窗口又失效
  • 模型已下载但 Claude Code 切不过去


2. 第一步:先验证 LM Studio 本地接口

不要一开始就怀疑 Claude Code。先验证 LM Studio 自己是否正常工作。

$token = "你的 LM Studio token"
$body = @{
  model = "google/gemma-4-26b-a4b"
  max_tokens = 64
  messages = @(
    @{
      role = "user"
      content = "hello"
    }
  )
} | ConvertTo-Json -Depth 10

Invoke-RestMethod `
  -Method Post `
  -Uri "http://localhost:1234/v1/messages" `
  -Headers @{
    "Authorization" = "Bearer $token"
    "Content-Type" = "application/json"
  } `
  -Body $body

预期结果:

  • 返回 type = message
  • 返回 content
  • 返回 usage.input_tokens
  • 返回 usage.output_tokens

如果这一步失败,问题在 LM Studio,不在 Claude Code。


3. 第二步:检查模型是否真的被服务端识别

列出服务端可见模型:

Invoke-RestMethod -Method Get -Uri "http://localhost:1234/v1/models" -Headers @{ "Authorization" = "Bearer $token" }

如果你要用的模型不在这里,就算它已经下载了,Claude Code 也未必能直接使用(请重启终端重试)。


4. 第三步:区分 lms ls 和 lms ps

这两个命令不是一回事。

4.1 已下载模型

lms ls

表示磁盘上已经有模型文件。

4.2 已加载模型

lms ps

表示模型已经进内存,当前可以被本地 API 服务使用。

如果模型只出现在 lms ls,但不在 lms ps,很多时候还不能稳定切到它。


5. 第四步:检查 Claude Code 的全局配置位置

Claude Code 的用户级配置文件是:

C:\Users\你的用户名\.claude\settings.json

不是:

  • 当前项目下的别的 JSON
  • 某个终端临时变量缓存
  • C:\Users\你的用户名\.claude\.claude\settings.json

如果你希望在任意目录都能默认连接本地模型,必须写对这个文件。

推荐内容:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:1234/",
    "ANTHROPIC_AUTH_TOKEN": "你的 LM Studio token"
  },
  "model": "google/gemma-4-26b-a4b"
}


6. 第五步:排查 Auth conflict

如果出现:

Auth conflict: Both a token (ANTHROPIC_AUTH_TOKEN) and an API key (ANTHROPIC_API_KEY) are set.

说明 Claude Code 同时读到了:

  • ANTHROPIC_AUTH_TOKEN
  • ANTHROPIC_API_KEY

6.1 常见来源

  • PowerShell 当前会话里的环境变量
  • Windows 用户级环境变量
  • Windows 系统级环境变量
  • C:\Users\love\.claude\settings.json 中的 env

6.2 当前会话检查

Get-ChildItem Env:ANTHROPIC*
Get-ChildItem Env:CLAUDE*

6.3 用户级环境变量检查

[Environment]::GetEnvironmentVariables('User').GetEnumerator() | Where-Object { $_.Key -like 'ANTHROPIC*' -or $_.Key -like 'CLAUDE*' }

6.4 系统级环境变量检查

[Environment]::GetEnvironmentVariables('Machine').GetEnumerator() | Where-Object { $_.Key -like 'ANTHROPIC*' -or $_.Key -like 'CLAUDE*' }

6.5 解决原则

只保留一套认证来源。

推荐只保留:

  • ANTHROPIC_BASE_URL
  • ANTHROPIC_AUTH_TOKEN

不要再保留:

  • ANTHROPIC_API_KEY


7. 第六步:排查 input_tokens 报错

如果出现:

Cannot read properties of undefined (reading 'input_tokens')

先不要直接下结论说 Claude Code 坏了。

先确认 LM Studio 的 /v1/messages 返回里是否真的有:

  • usage.input_tokens
  • usage.output_tokens

如果直接调用接口时这些字段都存在,那么这类报错通常是:

  • Claude Code 在混用错误的认证配置
  • 当前会话读到了错误 provider 配置
  • 某次会话状态或旧配置残留导致兼容异常

这次实际排查里,根因还是认证冲突。


8. 第七步:为什么某个终端能用,换个终端就不行

这通常说明你依赖的是“当前会话里的临时环境变量”,而不是全局配置。

比如你在一个终端里执行了:

$env:ANTHROPIC_BASE_URL="http://localhost:1234"
$env:ANTHROPIC_AUTH_TOKEN="token"

这只对当前 PowerShell 会话有效。新开一个终端,这些值就没了。

真正要做到任意目录、任意新终端都可用,必须把配置写进:

C:\Users\你的用户名\.claude\settings.json


9. 第八步:为什么 claude 仍然提示 /login

如果出现:

Not logged in · Please run /login

常见原因有三种:

  • 全局配置文件没写到正确位置
  • 配置文件结构不对
  • LM Studio 本地地址或 token 没有被 Claude Code 成功读取

优先检查:

  1. C:\Users\你的用户名\.claude\settings.json 是否存在
  2. ANTHROPIC_BASE_URL 是否是 http://localhost:1234/
  3. ANTHROPIC_AUTH_TOKEN 是否存在
  4. model 是否填了实际存在的模型名
  5. 是否有 IDE 缓存影响
  6. 是否多开了 本地 Claude Code 窗口
  7. 是否有 终端窗口 残留进程干扰


10. 第九步:为什么模型下载了,Claude Code 还不能切换

下载完成不等于已经可服务。

先看:

lms ls

再看:

lms ps

如果模型不在 lms ps 里,先加载:

lms load "google/gemma-4-26b-a4b" --ttl 3600

然后再在 Claude Code 中:

/model google/gemma-4-26b-a4b


11. 第十步:为什么不建议直接改 LM Studio 模型名字

如果 LM Studio 同时还被其他工具使用,比如 OpenClaw,那么直接修改 LM Studio 侧的名字可能影响其他工具引用。

更稳的做法是:

  • 保持 LM Studio 原始模型名不变
  • 在 PowerShell 的 $PROFILE 中给 claude --model ... 做快捷命令

例如:

function cc-gemma4 { claude --model "google/gemma-4-26b-a4b" }
function cc-code { claude --model "qwen3.5-9b-claude-4.6-highiq-instruct-heretic-uncensored" }
function cc-gptoss { claude --model "openai/gpt-oss-20b" }


12. 第十一步:如果 Claude Code 内部模型表现异常

即使连接成功,也不代表模型一定适合代码代理任务。

典型表现包括:

  • 错误判断当前目录几乎没有文件
  • 看不懂项目结构
  • 工具调用不稳定
  • 对上下文状态理解差

这类问题通常不是 Claude Code 配置问题,而是底层本地模型能力不足。

可以尝试:

  • 换更强的模型
  • 给代码任务单独准备一个主力模型
  • 小模型只用于简单问答或轻任务


13. 推荐排障顺序

建议每次都按这个顺序排:

  1. 先测 http://localhost:1234/v1/messages
  2. 再测 http://localhost:1234/v1/models
  3. 再看 lms ls
  4. 再看 lms ps
  5. 再检查 C:\Users\love\.claude\settings.json
  6. 再检查 Env:ANTHROPIC*
  7. 最后再看 Claude Code 本身的行为


14. 推荐链接

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐