通过配置 Prompt Caching 缓存点与 Context Compaction 滚动压缩策略,使 Claude Sonnet 4.6 在 1M token 巨量上下文或超长轮次 Agent 任务中,既维持全局记忆与精准召回,又显著降低延迟与重算成本。
适合的任务:包含完整历史的大型代码库重构、长篇法律/财报对比分析、长时运行且涉及数百次工具调用的自主 Agent。
不适合的任务:单轮短问答、不需要保留上下文状态的即时转换任务。
适用的模型版本:Claude Sonnet 4.6(claude-sonnet-4-6)。
适用的客户端、Agent 或 API:Anthropic Messages API(配合 anthropic-beta: context-compaction-2026-02-15 与 prompt-caching-2024-07-31)。
推荐的推理档位和参数:长上下文检索推荐 effort=medium;代码理解任务设置 max_tokens=8192。
{
"model": "claude-sonnet-4-6",
"max_tokens": 8192,
"output_config": {
"effort": "medium"
},
"system": [
{
"type": "text",
"text": "你是一个负责深度代码分析与系统架构审计的资深工程师。请结合提供的全量代码上下文,分析模块依赖并给出重构方案。",
"cache_control": { "type": "ephemeral" }
}
],
"context_management": {
"strategy": "compaction",
"compaction_trigger_tokens": 180000,
"compaction_target_tokens": 60000,
"preserve_recent_messages": 8,
"summary_prompt": "保留关键技术决策、文件改动清单、未通过的测试用例及待办事项,丢弃中间工具调用的原始输出。"
},
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "<codebase_context>\n... [此处放入通过目录解析注入的代码库文件] ...\n</codebase_context>",
"cache_control": { "type": "ephemeral" }
},
{
"type": "text",
"text": "请分析所有使用遗留认证逻辑的文件,并输出重构步骤与测试用例。"
}
]
}
]
}结构化上下文注入:将静态长文本(如全工程代码或文档)放置在用户消息的前部,并在末尾标记 cache_control: {"type": "ephemeral"}。
动态查询放置后方:具体分析指令或查询问题放置在缓存块之后,确保后续多轮提问能命中前置缓存。
监控缓存命中率:检查响应头部中的 cache_creation_input_tokens 与 cache_read_input_tokens,验证命中率达到 85% 以上。
触发压缩验证:在多轮交互超过 compaction_trigger_tokens(如 180k tokens)时,观察服务端压缩产物的关键决策保留度。
官方文档说明:Prompt Caching 为 Sonnet 4.6 带来高达 90% 的长上下文读取成本折扣,并将首 token 响应延迟(TTFT)缩短至原来的 20%-30%。
官方长上下文基准(Needle In A Haystack / RULER):Sonnet 4.6 在 1M token 窗口内达到 98.4% 的召回精度,且在极值位置与中段位置的召回表现高度一致。
Context Compaction 能够将长时运行会话的有效上下文占用压缩 60%-70%,同时通过 summary_prompt 保留关键约束与错误诊断信息。
1M token 上下文窗口处于 Beta 阶段,超出 200k tokens 后的计费阶梯和速率限制(RPM/TPM)可能有所不同,需依据账户配额调整。
频繁在会话中修改 effort 或系统提示词会导致前缀缓存失效,建议在单次持续会话中保持配置稳定。
自动压缩会丢失历史对话中未被总结提取的微小细节,若必须保留原始全量轨迹,需在本地持久化日志数据库。
官方说明:“Context compaction allows long-horizon agents to run indefinitely without manual memory trimming or token overflow errors.”(官方文档引述)
Claude Sonnet 4.6