此功能符合零数据保留(ZDR)的条件。当您的组织签订了 ZDR 协议时,通过此功能发送的数据在 API 响应返回后不会被存储。
随着对话的增长,您最终会接近上下文窗口的限制。本指南解释了上下文窗口的工作原理,并介绍了有效管理上下文窗口的策略。
对于长时间运行的对话和智能体工作流,服务器端压缩是上下文管理的主要策略。对于更专业的需求,上下文编辑提供了额外的策略,例如工具结果清除和思考块清除。
"Context window"(上下文窗口)是指语言模型在生成响应时可以参考的所有文本,包括响应本身。这与语言模型训练所用的大型数据语料库不同,而是代表模型的"工作记忆"。较大的上下文窗口允许模型处理更复杂和冗长的提示,但更多的上下文并不自动意味着更好。随着令牌数量的增长,准确性和召回率会下降,这种现象被称为上下文腐化(context rot)。这使得精心管理上下文中的内容与可用空间的大小同样重要。
Claude 在 MRCR 和 GraphWalks 等长上下文检索基准测试中取得了最先进的结果,但这些成果取决于上下文中的内容,而不仅仅是能容纳多少内容。
如需深入了解长上下文为何会退化以及如何围绕这一问题进行工程设计,请参阅 Effective context engineering(有效的上下文工程)。
下图展示了 API 请求的标准上下文窗口行为1:
1对于聊天界面(例如 claude.ai),上下文窗口也可以设置为滚动的"先进先出"系统。
使用扩展思考时,所有输入和输出令牌(包括用于思考的令牌)都会计入上下文窗口限制,但在多轮对话场景中存在一些细微差别。
思考预算令牌是 max_tokens 参数的子集,按输出令牌计费,并计入速率限制。使用自适应思考时,Claude 会动态决定其思考分配,因此每个请求的实际思考令牌使用量可能有所不同。
然而,之前的思考块会被 Claude API 自动从上下文窗口计算中剥离,并且不属于模型在后续轮次中"看到"的对话历史的一部分,从而为实际对话内容保留令牌容量。
下图展示了启用扩展思考时的专门令牌管理:
context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens。thinking 块。这种架构具有令牌效率,允许进行大量推理而不浪费令牌,因为思考块的长度可能相当可观。
您可以在扩展思考指南中阅读有关上下文窗口和扩展思考的更多信息。
下图展示了结合扩展思考与工具使用时的上下文窗口令牌管理:
第一轮架构
工具结果处理(第 2 轮)
tool_result。扩展思考块必须与相应的工具结果一起返回。这是您必须返回思考块的唯一情况。user 消息之前不会有额外的扩展思考,除非启用了交错思考)。新的用户轮次(第 3 轮)
user 轮次的位置。user 轮次,Claude 会生成一个新的扩展思考块并从那里继续。assistant 轮次中的思考块也计入上下文窗口。context_window = input_tokens + current_turn_tokens。Claude 的工具选择设计为在处理大型输入文档时依然稳定,即使对话包含超过 10 万个非工具上下文令牌,也能选择正确的工具(或正确地不使用工具)。如需减少工具本身消耗的上下文,请参阅管理工具上下文,或使用工具搜索工具延迟工具定义。
Claude Opus 4.8、Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 在 Claude API、Amazon Bedrock 和 Vertex AI 上拥有 100 万令牌的上下文窗口。在 Microsoft Foundry 上,Claude Opus 4.8 拥有 20 万令牌的上下文窗口。其他 Claude 模型(包括 Claude Sonnet 4.5)拥有 20 万令牌的上下文窗口。
Claude Fable 5 和 Claude Mythos 5(claude-fable-5 和 claude-mythos-5)在 Claude API 上拥有 100 万令牌的上下文窗口。100 万的最大值也是默认值,单个请求最多可生成 12.8 万个输出令牌(max_tokens)。
单个请求最多可包含 600 张图片或 PDF 页面(对于拥有 20 万令牌上下文窗口的模型,上限为 100)。发送大量图片或大型文档时,您可能会在达到令牌限制之前先接近请求大小限制。
Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 具备上下文感知功能。此功能使这些模型能够在整个对话过程中跟踪其剩余的上下文窗口(即"令牌预算")。这使 Claude 能够通过了解其可用的工作空间来更有效地执行任务和管理上下文。Claude 经过训练可以精确使用此上下文,坚持执行任务直到最后,而不是猜测剩余多少令牌。对于模型而言,缺乏上下文感知就像在没有时钟的情况下参加烹饪比赛。上下文感知模型通过明确接收有关剩余上下文的信息改变了这一点,因此它们可以最大限度地利用可用令牌。
工作原理:
在对话开始时,Claude 会收到有关其总上下文窗口的信息:
<budget:token_budget>1000000</budget:token_budget>预算设置为 100 万个令牌(对于上下文窗口较小的模型为 20 万个)。
每次工具调用后,Claude 会收到有关剩余容量的更新:
<system_warning>Token usage: 35000/1000000; 965000 remaining</system_warning>这种感知能力帮助 Claude 确定剩余多少工作容量,并能够更有效地执行长时间运行的任务。图片令牌也包含在这些预算中。
优势:
上下文感知对以下场景特别有价值:
对于跨多个会话的智能体,请设计您的状态工件,以便在新会话开始时能够快速恢复上下文。内存工具的多会话模式详细介绍了一种具体方法。另请参阅 Effective harnesses for long-running agents(长时间运行智能体的有效框架)。
有关利用上下文感知的提示指导,请参阅提示最佳实践指南。
如果您的对话经常接近上下文窗口限制,服务器端压缩是推荐的方法。压缩提供服务器端摘要功能,可自动压缩对话的早期部分,从而以最少的集成工作实现超出上下文限制的长时间运行对话。该功能在 Claude Fable 5、Claude Mythos 5、Claude Opus 4.8、Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 中以测试版形式提供。
对于更专业的需求,上下文编辑提供了额外的策略:
在 Claude 4.5 及更新的模型上,如果输入令牌加上 max_tokens 超过上下文窗口大小,API 会接受该请求。如果生成随后达到上下文窗口限制,则会以 stop_reason: "model_context_window_exceeded" 停止。在早期模型上,API 会返回验证错误;可通过 model-context-window-exceeded-2025-08-26 测试版标头选择启用 model_context_window_exceeded 行为。有关详细信息,请参阅处理停止原因。
要保持在上下文窗口限制内,请使用令牌计数 API 在向 Claude 发送消息之前估算令牌使用量。
请参阅模型比较表,了解各模型的上下文窗口大小列表。
管理长时间运行对话中上下文的推荐策略。
工具结果清除和思考块清除等细粒度策略。
查看模型比较表,了解各模型的上下文窗口大小以及输入/输出令牌定价列表。
详细了解扩展思考的工作原理,以及如何将其与工具使用和提示缓存等其他功能一起实现。
Was this page helpful?