改完配置,启动后还是老样子,不一定是 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 | 组织策略;个人文件通常无法覆盖 |
确认文件被读取,只说明来源已加载,不等于你刚改的值就是最终值。
第二步:按优先级查谁覆盖了谁
对同一个普通设置键,文档给出的从高到低顺序是:
- 组织 managed settings
- 命令行
--settings(仅当次会话) - 项目 local(
.claude/settings.local.json) - 项目共享(
.claude/settings.json) - 用户设置(
~/.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 官方文档整理配置诊断步骤,不是一次新的产品实测,也不保证所有第三方网关行为相同。一切以你控制台与当前官方文档为准。