此功能符合零数据保留(ZDR)的条件。当您的组织签订了 ZDR 协议时,通过此功能发送的数据在 API 响应返回后不会被存储。
随着对话的增长,您最终会接近上下文窗口的限制。对于长时间运行的对话和智能体工作流,服务器端压缩是上下文管理的主要策略。
"Context window"(上下文窗口)是指语言模型在生成响应时可以参考的所有文本,包括响应本身。这与语言模型训练所用的大型数据语料库不同,而是代表模型的"工作记忆"。较大的上下文窗口允许模型处理更复杂和冗长的提示,但更多的上下文并不一定更好。随着令牌数量的增长,准确性和召回能力会下降,这种现象被称为上下文腐化(context rot)。因此,精心筛选上下文中的内容与可用空间的大小同样重要。
如需进一步了解长上下文为何会退化以及如何通过工程手段应对,请参阅有效的上下文工程。
下图展示了 API 请求的标准上下文窗口行为1:
1聊天界面(如 claude.ai)也可以基于滚动的"先进先出"方式管理上下文窗口。
请求中的所有内容都计入上下文窗口:系统提示、messages 中的每条消息(包括工具结果、图像和文档),以及您的工具定义。Claude 为当前轮次生成的输出(包括其扩展思考)也计入其中。每个响应都会在其 usage 字段中报告该请求消耗的令牌数。如果您使用提示缓存,输入计数会分布在 input_tokens、cache_read_input_tokens 和 cache_creation_input_tokens 三个字段中,这三者都计入上下文窗口。要在发送请求之前进行估算,请使用令牌计数 API。
Claude Opus 4.8、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5 和 Claude Sonnet 4.6 在 Claude API、Amazon Bedrock、Google Cloud 和 Microsoft Foundry 上拥有 1M 令牌的上下文窗口。Claude Mythos Preview 也拥有 1M 令牌的上下文窗口。
Claude Fable 5 和 Claude Mythos 5(claude-fable-5 和 claude-mythos-5)拥有 1M 令牌的上下文窗口,对这些模型的单个请求最多可生成 128k 个输出令牌(max_tokens)。其他 Claude 模型(包括 Claude Sonnet 4.5)拥有 200k 令牌的上下文窗口。
对于所有拥有 1M 令牌上下文窗口的模型,1M 是默认值:您无需使用 beta 标头,长上下文请求按标准定价计费。
单个请求最多可包含 600 张图像或 PDF 页面(对于拥有 200k 令牌上下文窗口的模型,上限为 100)。如果您发送大量图像或大型文档,可能会在达到令牌限制之前先触及请求大小限制。
请参阅模型对比表,查看各模型的上下文窗口大小列表。
使用扩展思考时,所有输入和输出令牌(包括思考令牌)都计入上下文窗口限制,但在多轮对话场景中存在一些细微差别。
思考预算令牌是 max_tokens 参数的子集,按输出令牌计费,并计入速率限制。使用自适应思考时,Claude 会动态确定其思考分配,因此思考令牌的使用量因请求而异。
先前助手轮次的思考块是否保留在上下文窗口中取决于模型。在 Claude Opus 4.5 及更高版本的 Opus 模型、Claude Sonnet 4.6 及更高版本的 Sonnet 模型、Claude Fable 5、Claude Mythos 5 和 Claude Mythos Preview 上,API 默认保留先前的思考块,它们与其他输入令牌一样计入上下文窗口。在更早的 Opus 和 Sonnet 模型以及所有 Haiku 模型上,当您将先前的思考块传回时,API 会自动从对话历史中剥离它们,从而为对话内容保留令牌容量。有关各模型的默认行为,请参阅各模型的思考块保留行为。要在任一方向上覆盖默认行为,请使用思考块清除。
下图展示了在剥离先前思考块的模型上启用扩展思考时令牌的管理方式:
您可以在扩展思考指南中阅读有关上下文窗口和扩展思考的更多信息。
下图展示了在剥离先前思考块的模型上将扩展思考与工具使用相结合时令牌的管理方式:
第一轮架构
工具结果处理(第 2 轮)
tool_result。您必须将扩展思考块与相应的工具结果一起返回。这是唯一需要返回思考块的情况。user 消息之前不会有额外的扩展思考,除非启用了交错思考)。新的用户轮次(第 3 轮)
user 轮次的位置。user 轮次,Claude 会生成新的扩展思考块并从那里继续。assistant 轮次中的思考块也是如此。要减少工具定义本身消耗的上下文,请参阅管理工具上下文,或使用工具搜索工具延迟加载工具定义。
Claude Sonnet 5、Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 具有**上下文感知(context awareness)**能力:这些模型在整个对话过程中会跟踪其剩余的上下文窗口(即"令牌预算")。这使模型能够根据剩余空间来管理长时间运行的任务,而不是猜测还剩多少令牌。上下文感知是自动的:您无需启用任何功能,也永远不需要自己发送本节中显示的标签。这些标签由 API 注入。
在每个请求的系统提示中,API 会向 Claude 提供其总上下文窗口:
<budget:token_budget>200000</budget:token_budget>该预算与您的请求可用的上下文窗口相匹配:Claude Sonnet 5 和 Claude Sonnet 4.6 为 1M 令牌,Claude Sonnet 4.5 和 Claude Haiku 4.5 为 200k 令牌。本节中的示例展示的是拥有 200k 令牌上下文窗口的模型。
每次工具调用后,API 会向 Claude 提供其剩余容量的更新:
<system_warning>Token usage: 35000/200000; 165000 remaining</system_warning>图像令牌包含在这些预算中。
较新的模型不会收到这些注入的标签。在 Claude Opus 4.7 及更高版本、Claude Fable 5 和 Claude Mythos 5 上,您可以通过任务预算(目前处于 beta 阶段)为模型提供明确的预算。
对于跨多个会话的智能体,请设计好您的状态工件,以便在新会话开始时能够快速恢复上下文。内存工具的多会话模式详细介绍了一种具体方法。另请参阅长时间运行智能体的有效框架。
有关使用上下文感知的提示指导,请参阅提示最佳实践。
如果您的对话经常接近上下文窗口限制,请使用服务器端压缩。压缩会在服务器端自动总结对话的早期部分,使对话能够在超出上下文窗口限制后继续进行。该功能目前处于 beta 阶段,适用于 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 5 和 Claude Sonnet 4.6。
对于更专门的需求,上下文编辑提供了额外的策略:
缓存的提示前缀仍然占用上下文窗口:提示缓存改变的是您为这些令牌支付的费用,而不是它们是否计入上下文窗口。
如果仅输入就已超过模型的上下文窗口,API 在所有模型上都会返回 400 invalid_request_error("prompt is too long")。
在 Claude 4.5 及更新的模型上,如果输入令牌加上 max_tokens 超过上下文窗口大小,API 会接受该请求。如果生成过程随后达到上下文窗口限制,生成会停止并返回 stop_reason: "model_context_window_exceeded"。在更早的模型上,API 会返回验证错误。要在这些模型上选择启用 model_context_window_exceeded 行为,请使用 model-context-window-exceeded-2025-08-26 beta 标头。详情请参阅停止原因和回退。
要保持在上下文窗口限制内,请在向 Claude 发送消息之前使用令牌计数 API 估算令牌使用量。
服务器端上下文压缩,用于管理接近上下文窗口限制的长对话。
通过上下文编辑在对话上下文增长时自动管理它。
查看模型对比表,了解各模型的上下文窗口大小以及输入/输出令牌定价。
为 Claude 提供增强的推理能力以处理复杂任务,并控制思考内容的返回方式。
Was this page helpful?