上下文工程与压缩
上下文工程与压缩:在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性,以架构、轨迹与故障重放完成工程验收。
学习目标
- 能解释“上下文工程与压缩”如何在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性
- 能区分上下文工程、注意预算、lost in the middle、压缩、按需加载,并标出控制权、状态和副作用边界
- 能冻结输入与版本,沿以下证据定位首个分叉:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果
- 能注入“按消息年龄截断历史,把仍生效的安全约束和未解决错误一起删除”,完成阻断、恢复、复位和同输入重放
来源、课程身份与适用边界
“上下文工程与压缩”以Anthropic 公开全文《Building effective agents》建立工程总纲,并用《Lost in the Middle》原始论文核对本章机制。
这不是一本名为《AI Agent 开发实战》的官方出版物,也不存在官方十四章目录。平台把公开工程文章、官方开发文档和原始论文重组为 14 个工程单元;下列 112 个节点是站内课程地图。正文、代码、图表、实验与练习均为独立教学重写,模型、API、协议或安全边界变化时必须重新验证。
本单元的八个工程坐标
- 上下文工程与压缩:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 1 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 桌子就那么大,该摆什么、怎么摆,是门讲究:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 2 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 上下文工程:在有限窗口里安排「放什么、放多少、怎么排」:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 3 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 上下文预算分配:窗口是一笔有限预算,分给好几样:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 4 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 压缩 / 摘要:太长了就浓缩成几句要点:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 5 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- lost-in-the-middle:注意力呈 U 形,重要信息要放首尾:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 6 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 动手一:拖五个滑块,给一笔窗口预算分家:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 7 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
- 动手二:把长对话压成要点,看省了多少、丢了什么:这是“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的第 8 个工程坐标;必须进入机制解释、运行轨迹或故障证据,不能只停在目录。
术语与运行合同
↡上下文工程:为每轮推理选择和维护高信号 token 的工程过程;在“上下文工程与压缩”中按以下证据核对:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。、↡注意预算:模型在长上下文中可靠利用信息的有限能力;在“上下文工程与压缩”中按以下证据核对:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。、↡lost in the middle:关键信息位于长上下文中部时利用率下降的现象;在“上下文工程与压缩”中按以下证据核对:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。、↡压缩:保留关键事实并缩短表示的过程;在“上下文工程与压缩”中按以下证据核对:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。、↡按需加载:只在当前步骤需要时从外部取回内容;在“上下文工程与压缩”中按以下证据核对:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。。
本页不变量是:上下文重组后必须保留目标、约束、决定、开放问题和来源引用。任何“成功”结论都要保存token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果;模型自评、最终措辞和单次 demo 都不能替代环境事实。
工程机制与反证实验
窗口容量不是有效容量
长上下文模型仍可能随位置和噪声出现性能梯度,不能只看标称 token 数。
动手验证:把同一事实放在首、中、尾三处测召回。
预算按价值而非来源平均分
系统指令、未解决错误和当前证据通常比陈旧工具原文更值得保留。
动手验证:删掉低价值结果后比较任务一致性。
压缩要能回指原始证据
摘要可能遗漏细节或引入错误,应保留来源 ID 和按需展开入口。
动手验证:从摘要中的每条决定回查原始事件。
按需检索减少污染
路径、查询和文档标识可先留在上下文,需要时再读取内容。
动手验证:比较一次性加载与逐步加载的 token、延迟和正确率。
从架构到故障重放
1. 架构复杂度实验
在“上下文工程与压缩”中切换简单基线、受控工作流和自主循环,先判断“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”是否真的需要更高自主性,再比较延迟、成本、可观测性与风险。
Architecture decision laboratory
上下文工程与压缩
在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性
不变量:上下文重组后必须保留目标、约束、决定、开放问题和来源引用
最小可运行切片
function assembleContext(state: State, budget: number) {
const mandatory = [state.goal, state.constraints, state.openIssues];
const recent = state.events.slice(-6);
const summary = compressWithCitations(state.events.slice(0, -6));
const context = fitBudget([...mandatory, summary, ...recent], budget);
assertFactsPreserved(state, context);
return context;
}切片只表达“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”的核心合同。生产实现还要补齐持久化、超时、密钥隔离、结构化日志、幂等和批量评测;如果不能重新取得token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果,代码跑通也不能证明机制正确。
练习与答案
练习
问题 1:最小证明。 怎样用正常、边界和单故障三类样本证明“上下文重组后必须保留目标、约束、决定、开放问题和来源引用”?
问题 2:节点覆盖。 上下文工程与压缩、桌子就那么大,该摆什么、怎么摆,是门讲究、上下文工程:在有限窗口里安排「放什么、放多少、怎么排」、上下文预算分配:窗口是一笔有限预算,分给好几样、压缩 / 摘要:太长了就浓缩成几句要点、lost-in-the-middle:注意力呈 U 形,重要信息要放首尾、动手一:拖五个滑块,给一笔窗口预算分家、动手二:把长对话压成要点,看省了多少、丢了什么如何从目录词变成工程证据?
问题 3:恢复验收。 怎样证明“按消息年龄截断历史,把仍生效的安全约束和未解决错误一起删除”已经修复?
本章回顾
- “上下文工程与压缩”解决的是在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性。
- 核心不变量是上下文重组后必须保留目标、约束、决定、开放问题和来源引用。
- 首要反例是按消息年龄截断历史,把仍生效的安全约束和未解决错误一起删除。
- 最小证据包包含token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 上下文工程
为每轮推理选择和维护高信号 token 的工程过程。在“上下文工程与压缩”中必须能按以下证据重新定位:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。
- 注意预算
模型在长上下文中可靠利用信息的有限能力。在“上下文工程与压缩”中必须能按以下证据重新定位:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。
- lost in the middle
关键信息位于长上下文中部时利用率下降的现象。在“上下文工程与压缩”中必须能按以下证据重新定位:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。
- 压缩
保留关键事实并缩短表示的过程。在“上下文工程与压缩”中必须能按以下证据重新定位:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。
- 按需加载
只在当前步骤需要时从外部取回内容。在“上下文工程与压缩”中必须能按以下证据重新定位:token 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。