随着对话的增长,您最终会接近上下文窗口的限制。本指南解释了上下文窗口的工作原理,并介绍了有效管理它们的策略。
对于长时间运行的对话和智能体工作流,服务端压缩是上下文管理的主要策略。对于更专业的需求,上下文编辑提供了额外的策略,如工具结果清除和思考块清除。
"上下文窗口"是指语言模型在生成响应时可以引用的所有文本,包括响应本身。这与语言模型训练所用的大型数据语料库不同,它代表的是模型的"工作记忆"。更大的上下文窗口允许模型处理更复杂和更长的提示。较小的上下文窗口可能会限制模型在长对话中保持连贯性的能力。
下图展示了 API 请求的标准上下文窗口行为1:
1对于聊天界面,例如 claude.ai,上下文窗口也可以设置为滚动的"先进先出"系统。
使用扩展思考时,所有输入和输出 token,包括用于思考的 token,都计入上下文窗口限制,但在多轮对话中有一些细微差别。
思考预算 token 是 max_tokens 参数的子集,按输出 token 计费,并计入速率限制。使用自适应思考时,Claude 会动态决定其思考分配,因此每次请求的实际思考 token 使用量可能会有所不同。
然而,之前的思考块会被 Claude API 自动从上下文窗口计算中剥离,不会成为模型在后续轮次中"看到"的对话历史的一部分,从而为实际对话内容保留 token 容量。
下图展示了启用扩展思考时的专门 token 管理:
context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens。thinking 块和 redacted_thinking 块。这种架构具有 token 效率,允许进行广泛的推理而不浪费 token,因为思考块的长度可能相当可观。
您可以在扩展思考指南中阅读更多关于上下文窗口和扩展思考的内容。
下图展示了将扩展思考与工具使用结合时的上下文窗口 token 管理:
第一轮架构
工具结果处理(第 2 轮)
tool_result。扩展思考块必须与相应的工具结果一起返回。这是您必须返回思考块的唯一情况。user 消息之前不会有额外的扩展思考)。第三步
User 轮次的地方。User 轮次,Claude 将生成一个新的扩展思考块并从那里继续。Assistant 轮次中的思考块计入上下文窗口。context_window = input_tokens + current_turn_tokens。Claude Opus 4.6、Sonnet 4.5 和 Sonnet 4 支持 100 万 token 的上下文窗口。这个扩展的上下文窗口允许您处理更大的文档、维持更长的对话,以及处理更大规模的代码库。
1M token 上下文窗口目前处于 beta 阶段,面向使用层级 4 的组织和具有自定义速率限制的组织。1M token 上下文窗口仅适用于 Claude Opus 4.6、Sonnet 4.5 和 Sonnet 4。
要使用 1M token 上下文窗口,请在 API 请求中包含 context-1m-2025-08-07 beta 头:
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: context-1m-2025-08-07" \
-H "content-type: application/json" \
-d '{
"model": "claude-opus-4-6",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Process this large document..."}
]
}'重要注意事项:
Claude Sonnet 4.5 和 Claude Haiku 4.5 具有上下文感知功能。此功能让这些模型能够在对话过程中跟踪其剩余的上下文窗口(即"token 预算")。这使 Claude 能够通过了解还有多少可用空间来更有效地执行任务和管理上下文。Claude 经过训练能够精确使用此上下文,坚持执行任务直到最后,而不是猜测还剩多少 token。对于模型来说,缺乏上下文感知就像在没有时钟的情况下参加烹饪比赛。Claude 4.5 模型通过明确告知模型其剩余上下文来改变这一点,使其能够最大限度地利用可用 token。
工作原理:
在对话开始时,Claude 会收到关于其总上下文窗口的信息:
<budget:token_budget>200000</budget:token_budget>预算设置为 200K token(标准)、500K token(claude.ai Enterprise)或 1M token(beta,面向符合条件的组织)。
每次工具调用后,Claude 会收到剩余容量的更新:
<system_warning>Token usage: 35000/200000; 165000 remaining</system_warning>这种感知帮助 Claude 确定还有多少容量可用于工作,并能更有效地执行长时间运行的任务。图片 token 也包含在这些预算中。
优势:
上下文感知对以下场景特别有价值:
有关利用上下文感知的提示指南,请参阅提示最佳实践指南。
如果您的对话经常接近上下文窗口限制,服务端压缩是推荐的方法。压缩提供服务端摘要功能,自动浓缩对话的早期部分,使长时间运行的对话能够超越上下文限制,同时只需最少的集成工作。目前它以 beta 形式提供给 Claude Opus 4.6。
对于更专业的需求,上下文编辑提供了额外的策略:
较新的 Claude 模型(从 Claude Sonnet 3.7 开始)在提示和输出 token 超过上下文窗口时会返回验证错误,而不是静默截断。这一变化提供了更可预测的行为,但需要更仔细的 token 管理。
使用 token 计数 API 在向 Claude 发送消息之前估算 token 使用量。这有助于您规划并保持在上下文窗口限制内。
请参阅模型比较表,了解各模型的上下文窗口大小列表。
在长时间运行的对话中管理上下文的推荐策略。
细粒度策略,如工具结果清除和思考块清除。
查看模型比较表,了解各模型的上下文窗口大小和输入/输出 token 定价列表。
了解更多关于扩展思考的工作原理以及如何将其与工具使用和提示缓存等其他功能一起实现。
Was this page helpful?