代理翻车:ANTHROPIC_BASE_URL 触发 advisor 标签 400 怎么修
你把 ANTHROPIC_BASE_URL 指到自家代理、公司网关或兼容端点之后,终端里忽然每条请求都 400,报错里还夹着 Input tag 'advisor_20260301'。官方通道正常,一走代理就全挂——这通常不是密钥写错,而是 2.1.275 的一处回归:CLI 会把只该给官方通道的输入标签一并塞进经 ANTHROPIC_BASE_URL 发出的请求,代理或第三方端点不认这个标签,整批打回。
2.1.276 已修:走代理 / 网关时不再错误附带该标签,请求可以恢复。国内部署、自建反代、以及「订阅壳 + 兼容推理」混用的人,优先确认版本。
症状长什么样
常见组合:
| 现象 | 含义(大致) |
|---|---|
每条请求 400,正文含 advisor_20260301 | 输入标签不被当前端点接受 |
只在设置了 ANTHROPIC_BASE_URL 时复现 | 路径走代理 / 网关 / 兼容端点 |
清掉 ANTHROPIC_BASE_URL 又好了 | 更像标签 / 路由问题,不是「模型坏了」 |
| 版本正好是 2.1.275 | 与 changelog 写明的回归窗口一致 |
报错文案可能被代理改写一层,但关键词仍是 advisor 或 Input tag。先 claude --version,再决定是升级还是改环境。
为什么代理会踩雷
Claude Code 对官方 Anthropic 通道会使用一些协议侧能力(含带版本号的输入标签)。代理与多数兼容端点只实现「对话 + 工具」的子集:多出来的标签要么被原样拒绝,要么被中间层剥坏。
2.1.275 把这类标签也带进了 ANTHROPIC_BASE_URL 路径;2.1.276 纠正了边界:官方通道继续用完整能力,代理路径不再误带 advisor_20260301。
这和「兼容模型能不能用」是两件事。壳还在、账单变了的整体取舍,见 Claude Code 接下兼容模型;本文只处理「能连但标签 400」这一刀。
怎么修
升级到 ≥ 2.1.276
官方脚本、Homebrew、WinGet 按你的安装方式更新后,再开新会话。claude --version确认数字。确认环境变量仍指向你要的端点
echo $ANTHROPIC_BASE_URL(Windows 用对应语法)。升级不会替你清空变量;修好的是请求内容,不是帮你改 URL。仍 400 时缩小面
- 临时取消
ANTHROPIC_BASE_URL,看官方通道是否正常 → 区分「CLI 回归」与「代理本身故障」。 - 查代理是否改写了请求体、是否只允许部分模型名。
- 企业网关若做了输入白名单,把升级说明转给网关负责人,避免他们把「已修复的 CLI」误判成「要在网关侧吞掉所有未知标签」。
- 临时取消
别用降级硬扛
退回更旧版本可能暂时躲开 2.1.275,但会丢掉同窗口其它修复。能升级就升级。
安装与登录类对照,可顺带看 安装失败对照表。
和网关、CLAUDE_CODE_USE_GATEWAY 的关系
若你还叠了网关相关环境变量(例如历史上出现过的 CLAUDE_CODE_USE_GATEWAY),行为以当前版本文档与 changelog为准。2.1.266 曾修过「未同时设 ANTHROPIC_BASE_URL + ANTHROPIC_AUTH_TOKEN 时网关变量被误强制」一类问题;标签 400 是另一条线。原则一样:先对齐版本,再改开关,最后才动代理配置。
小结
- 2.1.275:
ANTHROPIC_BASE_URL路径可能带上advisor_20260301,代理 / 网关整批 400。 - 2.1.276:已修;升级后新会话验证。
- 仍失败:对照官方通道、查代理改写与模型白名单,而不是盲目换 Key。
先看版本号,再谈代理调优。