外观
第 19 章 Research Brief:Context Compaction 与长任务
读者问题
一个任务跨越很多轮对话、工具输出和交接时,如何减少模型可见上下文,而不把任务目标、关键决定、证据位置、未决问题和恢复条件一起丢掉?读者需要的是可审查的压缩协议,而不是“让模型概括一下”的口号。
本章范围与相邻章节边界
- 第 6 章选择一次调用应投影哪些资料;本章只在长任务中处理已有轨迹的压缩、保留、指针化与再水化,不授予读取权限。
- 第 7 章决定记录能否写入和跨任务读取;本章产生的 Compaction Record 不是自动进入长期记忆的授权。
- 第 10 章定义工作流状态、检查点和交接;本章不提供真实恢复引擎、重放或事务,只要求恢复前重新检查契约和证据。
- 第 15 章采集 Observation Record;本章不把压缩摘要当作新的观察事实。
- 第 16 章把轨迹整理为待验证的反思候选;本章不把摘要直接写入经验库。
- 第 17 章决定证据是否足以接受任务;本章的
ready_to_resume仅表示教学记录可进入再水化步骤,不表示任务已完成。 - 第 18 章决定重试、恢复、回滚和升级;本章检测到丢失或冲突时只阻断或交出信息,不自动重试。
已读取的一手或原始来源
| 临时键 | 来源与版本 | 本章可使用的限定陈述 | 不得外推 |
|---|---|---|---|
| REF-068 | Anthropic, Effective context engineering for AI agents,官方工程文章,2026-07-16 读取 | 文中将 Context Engineering 描述为维护模型推理时 token 集合的策略;在长时程任务段落中讨论 compaction、结构化记笔记和多 Agent 架构,并提醒压缩的取舍在于保留与丢弃。 | 不把文章中的 Claude Code 或平台特性写成所有 Agent 的默认行为、性能承诺或安全保证。 |
| REF-023 | Packer 等,MemGPT: Towards LLMs as Operating Systems,arXiv:2310.08560v2,2024-02-12,2026-07-16 读取 | 论文摘要提出以分层记忆类比管理有限上下文中的数据移动,以支持超出基础上下文窗口的文档分析和多会话交互研究。 | 不引用论文性能数据,不把其研究原型的控制流、存储或隐私行为当作本书实现。 |
| REF-069 | Liu 等,Lost in the Middle: How Language Models Use Long Contexts,arXiv:2307.03172v3,2023-11-20,2026-07-16 读取 | 论文在多文档问答和键值检索实验中发现,相关信息的位置变化会使所测模型表现显著退化,尤其是长输入中间位置。 | 不将该实验概括为所有模型、所有任务或任意上下文长度的固定规律。 |
来源陈述与本书工程扩展
来源明确支持的背景
- 长任务会累积可能相关的信息;管理模型可见 token 是 Context Engineering 的问题之一。REF-068
- 分层管理和在有限上下文与外部存储之间移动信息是研究中的一种解决思路。REF-023
- 不能仅凭模型支持长输入,就假设其在任意位置都同样可靠;相关信息位置应成为评估条件的一部分。REF-069
本书的工程模型
本书提出 压缩记录(Compaction Record),将压缩产物拆成六类可审查字段:
- 压缩摘要:只说明当前阶段和已知边界,不能替代原始证据。
- 稳定事实锚点:任务目标、范围、契约版本、已确认决定和仍未知的事项。
- 证据指针:可在授权范围内重新定位原始观察、来源或工件的位置。
- 保留/丢弃决策:明确为什么留下或移除某类材料,以及是否可重新获取。
- 再水化计划:下一位执行者先读取什么、验证什么、在什么条件下停止。
- 损失检测:在继续前检查所需锚点、指针、版本和未知项是否仍匹配。
这些字段是教学协议,不是任何论文、SDK、产品 API 或持久化格式。
章节论证
本章不把压缩等同于缩短文本。一个短摘要若删掉“引用尚未核验”或“工作流契约已变更”,会让下一轮工作更快地得出错误结论。相反,较长的压缩记录若保留原始工具输出、密钥、个人数据和重复日志,也可能扩大数据暴露和干扰决策。
因此,压缩应被视为一次可回滚的内容选择:先声明原始轨迹的范围,再把可恢复定位和不可恢复风险写进记录,最后以再水化检查决定能否继续。压缩成功的判据不是 token 数最小,而是恢复者能回答“我为何可以从这里继续、哪些信息必须重新验证、哪些证据不能被摘要替代”。
计划案例与示例
案例: 多日书稿审查任务跨越 Research、Draft、引用核验和 Markdown 校验。接手者只拿到“已经检查完成”的摘要时,可能重复发布过期引用或漏掉未验证项。案例改用压缩记录保存章节范围、决策锚点、待核验引用的指针、已丢弃的冗余命令输出以及恢复时必须运行的核验。
最小示例: assessCompactionRecord 只处理显式注入的 run、record 和 policy。它验证记录身份、契约版本、必需锚点、证据指针、丢弃理由和不确定锚点的损失检查;不会读取真实聊天、模型、文件、网络、时钟、外部记忆或工具结果。
风险与事实核验策略
- 摘要替代证据: 一切摘要都只能指向证据,不能覆盖新的观察或当前版本。事实核验时检查每个外部结论是否仍有具体来源。
- 错误再水化: 任务、范围或契约版本不同的记录不得直接接续;需返回原始状态或请求人工处理。
- 选择性遗忘: 未决、冲突和风险项不得因为“不够简洁”而丢弃;若必须裁减,应明确丢失范围并阻断继续。
- 敏感数据扩散: 压缩记录只保留最少必要的说明和受控指针;真实访问权限仍由第 11、12、14、41 章的机制约束。
- 动态资料: 任何产品的自动压缩、会话、文件记忆、token 限制或价格,在正式发布前必须以当日官方文档重新核验。
阶段门
- [x] 已读取并限定三项一手/原始来源。
- [x] 已划清与第 6、7、10、15、16、17、18 章的责任边界。
- [x] 已定义可运行但无外部 I/O 的教学示例范围。
- [x] 已计划 Mermaid 图、损失检测与再水化检查;它们不代表真实运行时实现。
