Claude Code 报错 API Error: 400 Invalid signature in thinking block 怎么解决
会话历史里的思考块对不上当前的服务端。最常见的原因是在同一个会话里换了平台或模型。新开一个会话就能恢复。
报错原文
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"messages.1.content.0: Invalid `signature` in `thinking` block"}}同类报错:If an assistant message contains any thinking blocks, the first block must be 'thinking' or 'redacted_thinking'. Found 'text'.
这条报错是什么意思
开启思考的模型会给每段思考内容附一个签名,后续请求要把这些思考块原样带回去,只有生成它的服务端认得这个签名。历史里的思考块被换过后端、被改写或顺序被打乱,服务端就会拒绝整个请求。
常见原因
- 会话中途改了
ANTHROPIC_BASE_URL(比如从官方换到第三方,或者换了一家平台),然后继续或--resume原来的会话。 - 会话中途切换了模型。
- 中间的代理或网关改写、删减了思考块。
怎么排查
执行
/clear,或者退出后新开一个会话,不要恢复报错的旧会话。以后同一个会话里不要切换平台。要换平台,先结束当前会话。
全新的会话里第一次调用工具就报这个错,说明是平台或网关的问题,带上报错里的 request_id 去找平台。
相关报错
配置有问题?
用 配置生成器 重新生成一份环境变量或 settings.json,Key 只在本地拼接。
需要国内能直接连接的 Anthropic 原生协议地址,可以看 TeamoRouter 的 Claude Code 接入文档(利益相关:本站由 TeamoRouter 团队维护,它不是 Anthropic 官方渠道)。