PuppyIP 资源中心
AI 工具排障 5 分钟 发布于 2026-11-12

Claude preserved thinking 报错:哪些历史上下文不能改?

如果 Claude Messages API 在压缩历史、改写 system prompt 或更换工具后拒绝多轮请求,先检查 preserved thinking:受影响的模型与账户必须原样保留某个 thinking block 之前产生它的上下文。Fable 5.2、Mythos 5.2 对所有 API 账户适用;部分较早模型则按账户创建时点区分。排查时还要分清“上下文不匹配报错”和“无关联账户的思考块被丢弃但请求继续”。

Claude Messages API Preserved thinking 上下文管理

服务对象与地域限制

PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。

代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。

本文要点

  • API 会核对 thinking block 对应的 system prompt、工具与此前消息;受影响请求改动这些上下文后,会返回错误。
  • Fable 5.2、Mythos 5.2 对所有 API 账户适用;Fable 5.1、Opus 5.5、Sonnet 5.5、Haiku 5.5 的该规则适用于 2026 年 8 月 31 日 00:00 UTC 起创建的账户。
  • 官方提供主动丢弃受影响思考块的选项,但模型将看不到这些块,输出 token 可能显著增加;这是过渡办法,不是建议长期默认开启。
  • 指定模型还限制思考块由原账户或关联账户读取。来自无关联账户的块会被丢弃,请求继续,不按同一种错误处理。
  • 普通 Claude Code、Cowork、Claude.ai 用户无需为此修改集成;自行调用 API 的应用需核对历史改写、工具变化与压缩路径。

先确认:改了哪个思考块之前的上下文

Anthropic 当前帮助说明把 thinking block 描述为 Claude 在处理回答时产生、通过 API 返回的加密推理记录。多轮调用会把这些块连同 system prompt、工具和旧消息一起传回;preserved thinking 会验证产生某个块的前置上下文是否一致。

对受影响的模型和账户,如果修改了该块之前的 system prompt、工具或消息,API 会返回错误。重点是改动发生在已有思考块之前;不能把重写旧历史、压缩早期轮次或会话中替换工具,当作不影响已有块的普通编辑。

例如,假设第一轮使用工具集合 A 生成了思考块,第二轮把此前的工具定义直接替换为 B,却继续传回原块,就应检查这条校验边界。这个例子用于说明条件,本文没有对真实账户执行 API 复现。

按模型和账户创建时间核对范围

Claude Fable 5.2 和 Claude Mythos 5.2 的 preserved thinking 对所有 API 账户适用,不按新旧账户豁免。对于 Claude Fable 5.1、Claude Opus 5.5、Claude Sonnet 5.5 和 Claude Haiku 5.5,帮助说明列出的门槛是 API 账户创建于 2026 年 8 月 31 日 00:00 UTC 或之后;更早创建的账户不适用这一前置上下文校验。

说明覆盖 Claude Platform 组织、Amazon Bedrock 账户、Google Cloud Vertex AI 项目与 Microsoft Foundry 项目。应按实际平台的对应账户或项目核对创建时点,不用个人订阅日期替代,也不要把一种语言或所在地当作豁免条件。

该适用规则不授予模型访问权限,不改变 Mythos 的独立准入要求。官方帮助页只显示“本周更新”,没有给出本文可确认的精确发布或逐账户生效时刻;这里报告当前说明,不把它写成今天才开始的统一上线。

先保留原上下文,再安排受支持的变化

排查时,先在本地把失败请求与产生相关块的原请求作对照,检查 system prompt、工具定义和此前消息是否被中间件、提示注入提醒或压缩逻辑改写。只比较最终用户问题,可能看不到真正发生变化的位置;不要为排查而把真实会话、凭据或加密块发到公共日志或工单。

官方列出三类调整入口:preserved thinking 技术文档、Compaction(beta)和会话中工具变化(beta)。Compaction 可总结较早轮次并逐字保留最近轮次,还可在后台构建摘要;工具变化机制用于不改写早期轮次地增减工具。它们属于需要核对当前支持条件的方案,不代表每个平台、模型和账户都已经开放。

为改造做验证时,应分别覆盖原样续接、压缩早期历史、加入提醒及增减工具的路径,记录实际错误、响应与用量。这里是建议的检查顺序,不是本文已完成的运行或性能验收。

主动丢弃思考块是过渡方案

对于需要修改前置上下文的请求,官方说明可以主动选择丢弃受影响的 thinking blocks,让请求继续;模型将看不到这些块,响应会说明哪些块被丢弃。请求成功并不表示原推理上下文仍完整保留。

Anthropic 提醒,这可能显著增加输出 token,建议只作为更新集成期间的临时办法。所核帮助说明未给出固定增幅、统一费用或可直接复制的请求头与设置语法;具体参数和各云平台可用性应以当前技术文档为准,不能猜一个开关就投入生产。

跨账户丢弃思考块,与上下文报错分开看

另一个独立规则适用于 Claude Mythos 5.2、Claude Fable 5.2、Claude Sonnet 5.5 和 Claude Haiku 5.5:思考块只能由产生它的账户或与之关联的账户读取。不要把这个模型清单,或账户关联条件,与上一节按创建日期判定的前置上下文规则混成一条。

如果请求包含无关联账户产生的思考块,API 会丢弃这些块并继续请求,不返回错误。下一次响应可能更慢、使用更多 token,效果类似压缩后续接;因此“没报错”不能证明思考上下文没有被移除。

帮助说明明确列出的自动关联范围是同一个 Claude Platform 父组织、AWS organization 或 Google Cloud organization 内的账户。不要由此推定所有不同组织或 Microsoft Foundry 项目也自动关联;按各平台当前说明核实。

用实际响应区分兼容性与连接问题

处理自建 API 集成时,按顺序确认所用平台与模型、相应账户或项目的创建时间、原上下文是否改写,以及响应是否报告丢弃思考块。恢复兼容性后,再比较输出 token、响应时间和任务结果;本文没有测量固定成本或速度变化。

若返回内容明确指向上下文校验,重试相同请求或更换代理出口不会改变已发送的历史。只有出现连接、DNS、TLS 或代理认证的实际证据时,才另行排查网络层。代理也不会改变模型资格或账户关联规则。

官方说明普通 Claude Code、Claude Cowork 与 Claude.ai 已自行处理思考块,用户无需为此修改集成。自行封装 Messages API 的客户端或 agent,才需要检查自己的历史、压缩与工具管理逻辑。

资料来源

常见问题

在 Claude Code 的同一会话中切换账户,会有什么影响?

帮助说明称,切换账户有同样的思考块读取影响:下一次响应会更慢、使用更多 token。应把它与普通使用无需手动改造区分开;也不要把它误写为所有账户切换都会产生上下文校验错误。

加密的 thinking block 是否可以当作普通可读文本检查?

不能。官方说明思考块采用加密形式,查看会话记录时看不到其中可能包含的私人信息。排查重点是原账户、关联关系和产生该块的前置上下文,而不是尝试解密、改写或公开这些块。