用途
Claude Context Management 是一套用于 Claude 对话的成本优化与无限长度对话管理策略。Claude 对话可以无限增长,但上下文窗口有上限。该技能提供上下文管理策略,使对话可以无限延续的同时优化成本。它覆盖两种互补方案:服务端清理(API 管理)与客户端压缩(SDK 管理),并可与 memory 工具集成以自动保全上下文。
问题背景
随着对话增长,token 消耗增加。若不加管理,会出现:输入 token 不断累积(每轮上下文都在增长)、成本随对话长度线性增长、最终触及上下文窗口上限、清理发生时重要信息丢失。解决方案是自动上下文编辑与摘要策略,在保留重要信息的同时降低 token 消耗。
适用场景
长时间运行的对话(累计超过 50K token)、多步骤研究项目、扩展的代码分析会话、迭代式问题解决工作流;多会话工作流(跨天或跨周项目、共享对话历史、团队协作场景);token 成本优化(高并发 API 使用、生产级智能体系统、对成本敏感的部署);工具密集型应用(网页搜索工作流 50+ 次搜索、文件编辑任务 100+ 次文件操作、数据库查询序列);记忆增强应用(跨会话知识累积、持久上下文保留、无限聊天实现);混合思考场景(扩展推理会话、复杂问题拆解、thinking 块的保留)。
工作流程
第 1 步:评估上下文需求。 理解对话特征、预估 token 增长模式、识别清理触发点。按规模分:单轮 <5K token(跳过上下文管理)、短对话 5-50K token(可选)、长对话 50K-200K token(建议)、扩展会话 200K+ token(必需)。识别主导内容类型(工具结果、思考块、文本对话或混合),并确定会话持久性(单会话、多轮对话、长时间运行智能体)。
第 2 步:选择策略。 立即清理且工具结果为主时,用服务端 clear_tool_uses_20250919;大量生成 thinking 块时,用服务端 clear_thinking_20251015;SDK 可监控上下文时,用客户端压缩;二者兼有时组合使用(先 thinking 再工具清理);跨会话知识累积时加入 memory 工具。
第 3 步:配置上下文编辑。 服务端清理需要选择触发类型(input_tokens 最常见,或 tool_uses)、设置触发值(保守 50,000-75,000;平衡 100,000-150,000 推荐;激进 150,000+)、定义保留内容(keep 参数,建议保留最近 3-5 项)、排除重要工具(exclude_tools,如 web_search)。客户端压缩需在 SDK 中启用、设置 context_token_threshold(如 100,000),可选自定义 summary_prompt 与摘要模型(默认同模型,可用 Haiku 降低成本)。
第 4 步:集成 memory 工具(可选)。 在 tools 数组中启用 {"type": "memory_20250818", "name": "memory"},配置上下文清理,Claude 会在清理前自动收到警告,可主动把重要信息写入 memory;清理后可经由 memory 查找。
第 5 步:监控与优化。 关注每轮输入 token、清理频率(目标每会话一次或更少)、token 降低百分比(目标节省 30-50%)、memory 文件大小。清理过于频繁则提高阈值;丢失重要内容则降低阈值或排除更多工具;memory 文件过大则实施归档策略;成本未改善可考虑客户端压缩加摘要模型降级。
第 6 步:验证与调整。 按检查清单确认上下文编辑已部署、清理未丢失重要信息、token 消耗按预期下降、响应质量未受影响、memory 集成正常、阈值适配工作负载,并反复调整直至达到最佳平衡。
快速开始(Python 示例)
服务端工具清理:
import anthropic
client = anthropic.Anthropic()
response = client.beta.messages.create(
model="claude-sonnet-4-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Search for AI developments"}],
tools=[{"type": "web_search_20250305", "name": "web_search"}],
betas=["context-management-2025-06-27"],
context_management={
"edits": [
{
"type": "clear_tool_uses_20250919",
"trigger": {"type": "input_tokens", "value": 100000},
"keep": {"type": "tool_uses", "value": 3},
"clear_at_least": {"type": "input_tokens", "value": 5000},
"exclude_tools": ["web_search"]
}
]
}
)
print(response.content[0].text)
客户端压缩:
import anthropic
client = anthropic.Anthropic()
runner = client.beta.messages.tool_runner(
model="claude-sonnet-4-5",
max_tokens=4096,
tools=[{"type": "text_editor_20250728", "name": "file_editor", "max_characters": 10000}],
messages=[{"role": "user", "content": "Review all Python files and summarize code quality issues"}],
compaction_control={"enabled": True, "context_token_threshold": 100000}
)
for event in runner:
if hasattr(event, 'usage'):
print(f"Current tokens: {event.usage.input_tokens}")
result = runner.until_done()
print(result.content[0].text)
功能对比
| 功能 | 服务端清理 | 客户端压缩 |
|---|---|---|
| 触发 | API 检测阈值 | SDK 在每次响应后监控 |
| 动作 | 移除旧内容 | 生成摘要、替换历史 |
| 处理时机 | Claude 看到之前 | 响应之后、下一轮之前 |
| 控制 | 自动 | 需要 SDK 集成 |
| 语言支持 | 全部(Python、TypeScript 等) | 仅 Python + TypeScript |
| 自定义 | 触发、保留、排除工具 | 阈值、模型、摘要提示词 |
| 缓存影响 | 可能使缓存失效 | 与缓存兼容 |
| 摘要质量 | 不适用(删除) | Claude 生成、可自定义 |
| Memory 集成 | 优秀(接收警告) | 需手动 memory 调用 |
| 最适合 | 工具密集型工作流 | 长多轮对话 |
| 开销 | 极低 | 生成摘要需一次模型调用 |
策略概览
服务端策略:clear_tool_uses_20250919 按时间顺序移除较早的工具结果,保留最近 N 次工具使用,可选保留工具输入,可排除指定工具不清除,适用于网页搜索、文件操作、数据库查询;clear_thinking_20251015 管理扩展 thinking 块,保留最近 N 轮思考或保留全部思考(用于缓存优化),适用于推理密集型任务。
客户端压缩:SDK 阈值超限时自动摘要,内置 5 段式摘要结构,支持自定义摘要提示词与模型选择,适用于文件分析、多步骤研究、智能体工作流。
Memory 工具集成:清理前自动警告、主动信息保全、跨会话持久化,适用于多日项目、知识累积、无限聊天。
关键概念与要求
关键概念包括上下文窗口(单次请求输入加输出的最大 token)、输入 token(累积的消息历史规模)、token 阈值(触发自动清理的设定上限)、清理(自动移除旧工具结果以降低输入 token)、压缩(用摘要替换完整历史)、memory 工具(跨会话可访问的持久键值存储)、缓存集成(提示缓存与上下文管理协同工作)。所需 beta 头:服务端清理与 memory 工具集成为 context-management-2025-06-27,客户端压缩为 SDK 内置特性。支持模型:所有 Claude 3.5+ 模型均支持上下文编辑,包括 Claude Opus 4.5、Opus 4.1、Sonnet 4.5、Sonnet 4、Haiku 4.5。
限制与补充说明
客户端压缩的语言支持仅限 Python 与 TypeScript;服务端清理可能使缓存失效;未提供具体收费价格信息。相关技能包括 anthropic-expert、claude-advanced-tool-use、claude-cost-optimization、claude-opus-4-5-guide。文档最后更新时间标注为 2025 年 11 月。