KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
05. Context Engineering 怎样连接检索和压缩? — keel 龙骨
上下文不是“把历史全部拼接起来”。它是一次有预算、有来源、有权限和有目的的装配结果:系统决定此刻模型真正需要看到哪些事实,哪些内容应 JIT 读取,哪些内容可以压缩或归档。Anthropic 的 context engineering 讨论把目标概括为最小的高信号 token 集合,并把 JIT retrieval、compaction 和 structured note-taking 放进同一个循环。
上下文不是“把历史全部拼接起来”。它是一次有预算、有来源、有权限和有目的的装配结果:系统决定此刻模型真正需要看到哪些事实,哪些内容应 JIT 读取,哪些内容可以压缩或归档。Anthropic 的 context engineering 讨论把目标概括为最小的高信号 token 集合,并把 JIT retrieval、compaction 和 structured note-taking 放进同一个循环。
四个输入区
stable instructions + current task
+ durable facts / event projection
+ ACL-filtered retrieval evidence
+ recent tool trace and pending wakeup
每个区都应有来源和版本。事件历史负责恢复事实,memory 负责跨运行知识,检索负责当前证据,context compaction 负责在预算边界内重建视图;它们不能互相冒充。
预算是调度问题
先计算可用预算,再分配给 system、task、evidence、tool trace、summary 和输出保留区。输入/输出 token 的计费和窗口限制依赖 provider,不能把字符长度当成事实;调用结束后要用 provider usage 对账,并记录估计误差。基础课程的 UsageReconciler 就是这条边界的最小实现。
建议把策略写成可测量函数:
select evidence by ACL and utility
reserve output/deadline budget
compact low-signal trace
assemble with citations and provenance
record dropped items and reason
不要把摘要当成无损事实库。摘要丢失了哪个字段、由哪个版本生成、是否还能追溯到事件或 chunk,都应可观测。遇到高风险事实,宁可 JIT 重新读取源数据,也不要依赖旧摘要。
本章实践
用同一组诊断问题对比三种策略:full history、JIT retrieval、JIT + compaction。记录 token、延迟、引用精度和关键事实召回,展示成本下降是否付出了质量代价。项目的 05_citations_and_context.py 可作为最小装配样例;结课项目要求扩展成可回放的 context snapshot。
本章检查点
- 被压缩的 tool trace 如何证明没有改变外部副作用事实?
- 为什么“窗口还没满”也可能需要 JIT retrieval?
- 哪些内容应该进入 durable memory,哪些只保留在当前 context?