上下文工程与压缩

上下文工程与压缩:在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性,以架构、轨迹与故障重放完成工程验收。

学习目标

  • 能解释“上下文工程与压缩”如何在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性
  • 能区分上下文工程、注意预算、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 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果;模型自评、最终措辞和单次 demo 都不能替代环境事实。

工程机制与反证实验

窗口容量不是有效容量

长上下文模型仍可能随位置和噪声出现性能梯度,不能只看标称 token 数。

动手验证:把同一事实放在首、中、尾三处测召回。

预算按价值而非来源平均分

系统指令、未解决错误和当前证据通常比陈旧工具原文更值得保留。

动手验证:删掉低价值结果后比较任务一致性。

压缩要能回指原始证据

摘要可能遗漏细节或引入错误,应保留来源 ID 和按需展开入口。

动手验证:从摘要中的每条决定回查原始事件。

按需检索减少污染

路径、查询和文档标识可先留在上下文,需要时再读取内容。

动手验证:比较一次性加载与逐步加载的 token、延迟和正确率。

从架构到故障重放

分步1 / 3

1. 架构复杂度实验

在“上下文工程与压缩”中切换简单基线、受控工作流和自主循环,先判断“在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性”是否真的需要更高自主性,再比较延迟、成本、可观测性与风险。

Architecture decision laboratory

上下文工程与压缩

在有限注意预算中选择、排序、压缩和按需加载上下文,并用位置扰动验证稳健性

复杂度档位

不变量:上下文重组后必须保留目标、约束、决定、开放问题和来源引用

受控工作流:只激活能够由收益证明的阶段1盘点信息2分配预算3按需加载4压缩排序5扰动评测蓝色表示当前方案承担的责任;虚线阶段仍留在系统边界外。关键证据:token 预算、…
自主性46
延迟52
成本48
可观测78

最小可运行切片

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 预算、内容类别、位置、压缩映射、保留断言、引用与位置扰动结果。

阅读导航

← RAG 检索增强生成 · 多智能体协作模式 →

讨论

评论区加载中…