Loading...
    • 开发者指南
    • API 参考
    • MCP
    • 资源
    • 更新日志
    Search...
    ⌘K
    入门
    Claude 简介快速开始
    模型与定价
    模型概览选择模型Claude 4.6 新特性迁移指南模型弃用定价
    使用 Claude 构建
    功能概览使用 Messages API处理停止原因提示词最佳实践
    上下文管理
    上下文窗口压缩上下文编辑
    能力
    提示缓存扩展思考自适应思考推理力度流式消息批量处理引用多语言支持Token 计数嵌入视觉PDF 支持Files API搜索结果结构化输出
    工具
    概览如何实现工具使用细粒度工具流式传输Bash 工具代码执行工具程序化工具调用计算机使用工具文本编辑器工具网页抓取工具网页搜索工具记忆工具工具搜索工具
    Agent Skills
    概览快速开始最佳实践企业级 Skills通过 API 使用 Skills
    Agent SDK
    概览快速开始TypeScript SDKTypeScript V2(预览版)Python SDK迁移指南
    API 中的 MCP
    MCP 连接器远程 MCP 服务器
    第三方平台上的 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    提示工程
    概览提示词生成器使用提示词模板提示词优化器清晰直接使用示例(多样本提示)让 Claude 思考(思维链)使用 XML 标签赋予 Claude 角色(系统提示词)链式复杂提示长上下文技巧扩展思考技巧
    测试与评估
    定义成功标准开发测试用例使用评估工具降低延迟
    加强安全护栏
    减少幻觉提高输出一致性防范越狱攻击流式拒绝减少提示词泄露保持 Claude 角色设定
    管理与监控
    Admin API 概览数据驻留工作空间用量与成本 APIClaude Code Analytics API零数据留存
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    上下文管理

    上下文窗口

    了解上下文窗口的工作原理以及有效管理它们的策略。

    随着对话的增长,您最终会接近上下文窗口的限制。本指南解释了上下文窗口的工作原理,并介绍了有效管理它们的策略。

    对于长时间运行的对话和智能体工作流,服务端压缩是上下文管理的主要策略。对于更专业的需求,上下文编辑提供了额外的策略,如工具结果清除和思考块清除。

    理解上下文窗口

    "上下文窗口"是指语言模型在生成响应时可以引用的所有文本,包括响应本身。这与语言模型训练所用的大型数据语料库不同,它代表的是模型的"工作记忆"。更大的上下文窗口允许模型处理更复杂和更长的提示。较小的上下文窗口可能会限制模型在长对话中保持连贯性的能力。

    下图展示了 API 请求的标准上下文窗口行为1:

    上下文窗口图示

    1对于聊天界面,例如 claude.ai,上下文窗口也可以设置为滚动的"先进先出"系统。

    • 渐进式 token 累积: 随着对话轮次的推进,每条用户消息和助手响应都会在上下文窗口中累积。之前的轮次会被完整保留。
    • 线性增长模式: 上下文使用量随每个轮次线性增长,之前的轮次被完整保留。
    • 200K token 容量: 总可用上下文窗口(200,000 个 token)代表存储对话历史和从 Claude 生成新输出的最大容量。
    • 输入-输出流: 每个轮次包括:
      • 输入阶段: 包含所有之前的对话历史加上当前用户消息
      • 输出阶段: 生成文本响应,该响应将成为未来输入的一部分

    扩展思考下的上下文窗口

    使用扩展思考时,所有输入和输出 token,包括用于思考的 token,都计入上下文窗口限制,但在多轮对话中有一些细微差别。

    思考预算 token 是 max_tokens 参数的子集,按输出 token 计费,并计入速率限制。使用自适应思考时,Claude 会动态决定其思考分配,因此每次请求的实际思考 token 使用量可能会有所不同。

    然而,之前的思考块会被 Claude API 自动从上下文窗口计算中剥离,不会成为模型在后续轮次中"看到"的对话历史的一部分,从而为实际对话内容保留 token 容量。

    下图展示了启用扩展思考时的专门 token 管理:

    带扩展思考的上下文窗口图示

    • 剥离扩展思考: 扩展思考块(以深灰色显示)在每个轮次的输出阶段生成,但不会作为输入 token 传递到后续轮次。您不需要自己剥离思考块。如果您将它们传回,Claude API 会自动为您完成此操作。
    • 技术实现细节:
      • 当您将思考块作为对话历史的一部分传回时,API 会自动排除之前轮次的思考块。
      • 扩展思考 token 仅在生成时作为输出 token 计费一次。
      • 有效上下文窗口计算变为:context_window = (input_tokens - previous_thinking_tokens) + current_turn_tokens。
      • 思考 token 包括 thinking 块和 redacted_thinking 块。

    这种架构具有 token 效率,允许进行广泛的推理而不浪费 token,因为思考块的长度可能相当可观。

    您可以在扩展思考指南中阅读更多关于上下文窗口和扩展思考的内容。

    扩展思考与工具使用下的上下文窗口

    下图展示了将扩展思考与工具使用结合时的上下文窗口 token 管理:

    带扩展思考和工具使用的上下文窗口图示

    1. 1

      第一轮架构

      • 输入组件: 工具配置和用户消息
      • 输出组件: 扩展思考 + 文本响应 + 工具使用请求
      • Token 计算: 所有输入和输出组件都计入上下文窗口,所有输出组件按输出 token 计费。
    2. 2

      工具结果处理(第 2 轮)

      • 输入组件: 第一轮中的每个块以及 tool_result。扩展思考块必须与相应的工具结果一起返回。这是您必须返回思考块的唯一情况。
      • 输出组件: 将工具结果传回 Claude 后,Claude 将仅以文本响应(在下一个 user 消息之前不会有额外的扩展思考)。
      • Token 计算: 所有输入和输出组件都计入上下文窗口,所有输出组件按输出 token 计费。
    3. 3

      第三步

      • 输入组件: 前一轮的所有输入和输出都会被传递,但思考块除外,因为 Claude 已完成整个工具使用周期,现在可以丢弃思考块。如果您将思考块传回,API 会自动为您剥离,或者您也可以在此阶段自行剥离。这也是您添加下一个 User 轮次的地方。
      • 输出组件: 由于在工具使用周期之外有一个新的 User 轮次,Claude 将生成一个新的扩展思考块并从那里继续。
      • Token 计算: 之前的思考 token 会自动从上下文窗口计算中剥离。所有其他之前的块仍然计入 token 窗口,当前 Assistant 轮次中的思考块计入上下文窗口。
    • 扩展思考下工具使用的注意事项:
      • 发布工具结果时,必须包含伴随该特定工具请求的完整未修改的思考块(包括签名/已编辑部分)。
      • 扩展思考与工具使用的有效上下文窗口计算变为:context_window = input_tokens + current_turn_tokens。
      • 系统使用加密签名来验证思考块的真实性。在工具使用期间未能保留思考块可能会破坏 Claude 的推理连续性。因此,如果您修改思考块,API 将返回错误。

    Claude 4 模型支持交错思考,这使 Claude 能够在工具调用之间进行思考,并在收到工具结果后进行更复杂的推理。

    Claude Sonnet 3.7 不支持交错思考,因此在没有非 tool_result 用户轮次的情况下,不会有扩展思考和工具调用的交错。

    有关将工具与扩展思考一起使用的更多信息,请参阅扩展思考指南。

    1M token 上下文窗口

    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..."}
        ]
      }'

    重要注意事项:

    • Beta 状态: 这是一个 beta 功能,可能会发生变化。功能和定价可能会在未来版本中修改或移除。
    • 使用层级要求: 1M token 上下文窗口面向使用层级 4 的组织和具有自定义速率限制的组织。较低层级的组织必须升级到使用层级 4 才能访问此功能。
    • 可用性: 1M token 上下文窗口目前在 Claude API、Microsoft Foundry、Amazon Bedrock 和 Google Cloud 的 Vertex AI 上可用。
    • 定价: 超过 200K token 的请求会自动按高级费率收费(输入价格 2 倍,输出价格 1.5 倍)。详情请参阅定价文档。
    • 速率限制: 长上下文请求有专门的速率限制。详情请参阅速率限制文档。
    • 多模态注意事项: 处理大量图片或 PDF 时,请注意文件的 token 使用量可能会有所不同。当将大型提示与大量图片配对时,您可能会遇到请求大小限制。

    Claude Sonnet 4.5 和 Haiku 4.5 中的上下文感知

    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 也包含在这些预算中。

    优势:

    上下文感知对以下场景特别有价值:

    • 需要持续专注的长时间运行的智能体会话
    • 状态转换很重要的多上下文窗口工作流
    • 需要仔细管理 token 的复杂任务

    有关利用上下文感知的提示指南,请参阅提示最佳实践指南。

    使用压缩管理上下文

    如果您的对话经常接近上下文窗口限制,服务端压缩是推荐的方法。压缩提供服务端摘要功能,自动浓缩对话的早期部分,使长时间运行的对话能够超越上下文限制,同时只需最少的集成工作。目前它以 beta 形式提供给 Claude Opus 4.6。

    对于更专业的需求,上下文编辑提供了额外的策略:

    • 工具结果清除 - 在智能体工作流中清除旧的工具结果
    • 思考块清除 - 使用扩展思考管理思考块

    较新 Claude 模型的上下文窗口管理

    较新的 Claude 模型(从 Claude Sonnet 3.7 开始)在提示和输出 token 超过上下文窗口时会返回验证错误,而不是静默截断。这一变化提供了更可预测的行为,但需要更仔细的 token 管理。

    使用 token 计数 API 在向 Claude 发送消息之前估算 token 使用量。这有助于您规划并保持在上下文窗口限制内。

    请参阅模型比较表,了解各模型的上下文窗口大小列表。

    后续步骤

    压缩

    在长时间运行的对话中管理上下文的推荐策略。

    上下文编辑

    细粒度策略,如工具结果清除和思考块清除。

    模型比较表

    查看模型比较表,了解各模型的上下文窗口大小和输入/输出 token 定价列表。

    扩展思考概述

    了解更多关于扩展思考的工作原理以及如何将其与工具使用和提示缓存等其他功能一起实现。

    Was this page helpful?

    • 1M token 上下文窗口
    • Claude Sonnet 4.5 和 Haiku 4.5 中的上下文感知
    • 较新 Claude 模型的上下文窗口管理