上下文膨胀、工具结果撑爆窗口、Agent 决策质量随轮次下降时使用——上下文压缩的三个动机(长度成本、思考质量、上下文焦虑)、压缩即检索的机制、六种压缩策略实测数据、生产级五层分层压缩、四条设计原则,以及用子 Agent 隔离代替压缩。
88%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
压缩解决的是相反方向的问题:如何为上下文做减法——什么时候压缩、怎么压缩、为什么即使上下文没满也应该压缩。核心认知:上下文学习本质上是检索而非推理,压缩就是把需要思考才能得到的结论,变成可以直接检索的知识。
任务:识别并追踪 OpenAI 联合创始人的职业状态;Kimi K3(原生约 1M 窗口,实验刻意限制在 128K 预算以触发压缩)。
| 策略 | 做法 | 迭代 | Token | 压缩率 | 问题 |
|---|---|---|---|---|---|
| 无压缩 | 完整保留原始结果 | 5 次即溢出失败 | ~165,000 | — | 7 次搜索累计约 367,000 字符(平均 52,000/次),数次搜索即耗尽 128K |
| 个体摘要 | 每个结果独立生成 2-3 段摘要 | 12 | 276,608 | 10.9% | 信息碎片化,多页重复描述同一事件 |
| 组合摘要 | 所有结果合并后一份综合摘要 | 10 | 93,449 | 4.3% | 输入超长必须截断,可能丢失末尾信息 |
| 上下文感知 | 压缩提示中带入查询意图与已积累信息 | 7 | 40,157 | ~3.0% | 最优平衡点 |
| 带引用的上下文感知 | 智能压缩 + 每条事实附带来源 URL | 7 | — | — | 内容有损、索引无损,可回溯原文 |
| 自适应窗口化 | 阈值触发 + 批量压缩 + 防重复 | — | 174,601 | — | 初期保留完整原始信息,灵活性最大 |
压缩率定义为「压缩后体积 / 原文体积」,数值越小表示压得越狠。上下文感知压缩将 token 使用量减少 75% 以上。
上下文感知的提示词写法:在压缩提示中指定 Given the search query: {query} 和 Current context: {context},引导模型生成针对性摘要。实测把约 150K 字符压到 2K 字符时,仍保留创始人姓名与职位变动等后续任务需要的关键信息。
[COMPRESSED] 标记,确保已压缩内容永不被重复处理。压缩不是在单次 API 调用中修改上下文,而是在两次 API 调用之间由框架预处理消息列表:
不同信息有不同保质期,压缩策略应与预期生命周期匹配,按代价从低到高排列:
Sutskever 于 2024 年 5 月离开 OpenAI 不能压成 Sutskever 离开——时间和公司名是不可丢失的关键信息。无论哪种策略,压缩时都要显式 preserve:decisions(决策)、constraints(约束)、failures(失败路径)、citations(来源引用)。
对比同一个任务「在代码库中找到处理支付回调的函数」:
src/payment/callbacks.py 的 handle_callback,另有两处调用点」);中间过程的数万 token 随子 Agent 上下文一起丢弃。代价是子 Agent 看不到主 Agent 完整上下文,任务描述必须自包含、目标明确。Claude Code 的 Task 工具、各类 Deep Research 的检索子 Agent 都是这一模式的生产实现。
chapter2/context-compression/ — 实验 2-10:实现并对比 6 种压缩策略(no_compression / individual / combined / context_aware / citations / windowed),输出成功率、耗时、token、压缩率、溢出次数对比表;用 python experiment.py -s context_aware 单跑,-m moonshot-v1-128k 配合 CONTEXT_WINDOW_SIZE=128K 复现溢出。book/chapter2.md「上下文压缩策略」bojieli/ai-agent-book
dbc046e
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.