因为众所周知的原因,在国内用Claude限制非常明显,所以在用Claude模型时我会经常用到中转站 如果你也用过,那么大概率撞过这个报错: API Error: 400 Invalid signature in thinking block 如果没有,那么可能是你使用的中转站帮你解决了这个问题,或者他们一直帮你路由到同一个渠道。 key 没问题、模型也能调,就是隔三差五炸,而且只在多轮对话的第二轮往后报。查了一圈才搞明白。Claude 开了扩展思考(thinking)后,每轮思考会带一个 signature(签名),和思考内容,两者跟着会话上下文回传,下一轮服务端要验它。关键是——这个签名跟渠道绑定的。中转站的渠道,可能是来自不同的地方,那么就导致了一个问题:报错里 messages.1.content.0 = 你第二条消息的第一个 block,就是那个 thinking 块,signature 验不过。 中转站在多轮对话里可能会路由到不同的渠道(上一次使用的渠道负载过大,或者不可用,或者路由策略),第一轮路由到渠道 A,第二轮路由到渠道 B,A 签的 thinking 签名 B 不认,直接 400。 直连官方 API 全程同一渠道,不会有这问题。 用户侧(临时,马上能用): 报错了就重启 /clear 会话,把带签名的旧 thinking 上下文清掉重开一轮,立刻能过。 中转站侧(根治): 路由切换渠道时,把请求里的 thinking 签名去掉(openrouter 就是这么干的),跨渠道也不会因签名验证失败而 400 使用中转/agent/重度用 Claude Code 的,应该都撞过这坑,你当时卡了多久,最后怎么绕过去的?评论区交流下#AI工具 #大模型 #claudecode #agent
ClaudeCode报错400?调查中转站后我发现...
刘耀文的大沙雕
论文
降低AIGC
知网
作者:ClaudeCode报错400?调查中转站后我发现...