改完配置,启动后还是老样子,不一定是 Key 错了。先别连续换凭据,也别让 Agent 围着同一条报错重试。按 Claude Code 官方设置文档,第一步应确认配置来源,而不是猜哪个文件「应该生效」。

范围:本机终端 / VS Code / JetBrains / 桌面端读取同一套设置文件。云会话来源不同,不要把下面步骤整表套过去。

第一步:用 /status 确认加载来源

在 Claude Code 输入 /status,查看 Setting sources。它会列出当前加载的设置来源(例如 User settings、Project local settings),但不会逐项标明每个值来自哪份文件。

本机常见文件:

文件 作用
~/.claude/settings.json 用户设置(本机各项目)
.claude/settings.json 项目共享设置
.claude/settings.local.json 项目个人覆盖
组织 managed settings 组织策略;个人文件通常无法覆盖

确认文件被读取,只说明来源已加载,不等于你刚改的值就是最终值。

第二步:按优先级查谁覆盖了谁

对同一个普通设置键,文档给出的从高到低顺序是:

  1. 组织 managed settings
  2. 命令行 --settings(仅当次会话)
  3. 项目 local(.claude/settings.local.json)
  4. 项目共享(.claude/settings.json)
  5. 用户设置(~/.claude/settings.json)

permissions.allow 这类列表键会合并,而不是整份文件互相替换;不能把上面的顺序理解成「高层文件整份覆盖低层文件」。

环境变量不是这条栈里的统一一层:哪个变量能盖过哪个设置键,要按官方环境变量说明逐对核对。文档明确举例:shell 里的 ANTHROPIC_MODEL 可覆盖文件中的 model;启动参数 --model 又可覆盖它。因此只改 JSON、不查启动命令和 shell,容易改错位置。

检查凭据时只确认变量是否已设置,不要把 Key 打进截图或求助帖。

第三步:用 claude doctor 查被跳过的设置

设置文件是严格 JSON:// 注释或尾逗号都是语法错误。交互会话可能弹出 Settings Error;非交互 -p 没有修复弹窗,可能跳过坏文件或坏值后继续跑——任务还能运行,不代表所有设置都加载成功。

终端运行:

claude doctor 

看哪些项被拒绝。多数设置文件改动能热加载;但 model、effortLevel 等键有单独规则(例如改模型应用 /model),不要默认「保存即全部即时生效」。修好后再看一次 /status。

第四步:最短请求验证,不靠模型自报身份

确认配置后发一个最短请求,记录时间、版本、错误码和可用的请求 ID。若经过第三方网关,客户端显示的模型名只反映客户端配置或报告,不能独立证明实际上游;应交叉核对网关与上游可获得的记录。证据不够就写「尚未核实」。

问模型「你是谁」不能代替路由验证;核对请求记录也不等于保证上游身份。

普通排错先留脱敏信息。官方监测文档说明:完整请求/响应正文日志可能包含整段会话,默认不要为了求助直接开启或粘贴。

披露: 我维护 QuickRouter。本文依据 Claude Code 官方文档整理配置诊断步骤,不是一次新的产品实测,也不保证所有第三方网关行为相同。一切以你控制台与当前官方文档为准。

来源