This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
随着对话的增长,你最终会接近上下文窗口限制。本指南解释了上下文窗口的工作原理,并介绍了有效管理它们的策略。
对于长时间运行的对话和代理工作流,服务器端压缩是上下文管理的主要策略。对于更专业的需求,上下文编辑提供了额外的策略,如工具结果清除和思考块清除。
"上下文窗口"是指语言模型在生成响应时可以引用的所有文本,包括响应本身。这与语言模型训练所用的大量数据语料库不同,而是代表模型的"工作记忆"。更大的上下文窗口允许模型处理更复杂和更长的提示,但更多的上下文并不一定更好。随着令牌数量的增加,准确性和召回率会下降,这种现象被称为上下文衰退。这使得策划上下文中的内容与可用空间的大小同样重要。
Claude 在长上下文检索基准测试(如 MRCR 和 GraphWalks)上取得了最先进的成果,但这些成果取决于上下文中的内容,而不仅仅是适合多少。
有关为什么长上下文会衰退以及如何围绕它进行工程设计的深入探讨,请参阅有效的上下文工程。
下图说明了 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 消息之前没有额外的扩展思考)。第三步
User 轮次的地方。User 轮次,Claude 生成新的扩展思考块并从那里继续。Assistant 轮次中的思考块计为上下文窗口的一部分。context_window = input_tokens + current_turn_tokens。Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 具有 1M 令牌上下文窗口。其他 Claude 模型,包括 Claude Sonnet 4.5 和 Sonnet 4(已弃用),具有 200k 令牌上下文窗口。
单个请求最多可包含 600 张图像或 PDF 页面(对于具有 200k 令牌上下文窗口的模型为 100)。发送许多图像或大型文档时,你可能会在令牌限制之前接近请求大小限制。
Claude Sonnet 4.6、Claude Sonnet 4.5 和 Claude Haiku 4.5 具有上下文感知功能。这种能力让这些模型在整个对话中跟踪其剩余上下文窗口(即"令牌预算")。这使 Claude 能够通过理解有多少空间可用来更有效地执行任务和管理上下文。Claude 经过训练可以精确使用此上下文,坚持任务直到最后,而不是猜测剩余多少令牌。对于模型来说,缺乏上下文感知就像在没有时钟的烹饪节目中竞争。Claude 4.5+ 模型通过明确告知模型其剩余上下文来改变这一点,以便它可以最大限度地利用可用令牌。
工作原理:
在对话开始时,Claude 会收到有关其总上下文窗口的信息:
<budget:token_budget>1000000</budget:token_budget>预算设置为 1M 令牌(对于上下文窗口较小的模型为 200k)。
每次工具调用后,Claude 会收到剩余容量的更新:
<system_warning>Token usage: 35000/1000000; 965000 remaining</system_warning>这种感知帮助 Claude 确定剩余多少容量用于工作,并在长时间运行的任务上实现更有效的执行。图像令牌包含在这些预算中。
优势:
上下文感知对以下方面特别有价值:
对于跨越多个会话的代理,设计你的状态工件,以便在新会话开始时上下文恢复很快。内存工具的多会话模式演示了一个具体的方法。另请参阅长时间运行代理的有效工具。
有关利用上下文感知的提示指导,请参阅提示最佳实践指南。
如果你的对话经常接近上下文窗口限制,服务器端压缩是推荐的方法。压缩提供服务器端摘要,自动压缩对话的早期部分,使长时间运行的对话能够超越上下文限制,只需最少的集成工作。它目前在 Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 的测试版中可用。
对于更专业的需求,上下文编辑提供了额外的策略:
较新的 Claude 模型(从 Claude Sonnet 3.7 开始)在提示和输出令牌超过上下文窗口时返回验证错误,而不是静默截断。这种变化提供了更可预测的行为,但需要更仔细的令牌管理。
使用令牌计数 API在向 Claude 发送消息之前估计令牌使用情况。这有助于你规划并保持在上下文窗口限制内。
有关按模型的上下文窗口大小列表,请参阅模型比较表。
用于管理长时间运行对话中上下文的推荐策略。
细粒度策略,如工具结果清除和思考块清除。
查看模型比较表,了解按模型的上下文窗口大小和输入/输出令牌定价列表。
了解更多关于扩展思考如何工作以及如何将其与工具使用和提示缓存等其他功能一起实现。
Was this page helpful?