拓展阅读

上下文工程

选择、压缩、外置、恢复和保真验证

阶段 711 项展开讲义正文全部展开

沿着对象与状态理解本章

压缩最危险的不是少一句背景,而是把“未执行”写成“已完成”,把“禁止”写成“准备做”。先对照本图保留命题、版本、否定与未决状态,再考虑缩短多少Token。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F27

压缩要保留行动所依赖的事实

把一百轮历史压成几句话,最容易丢什么?

像交班给另一位同事:对方最需要目标、禁止事项、已经做完的事、还没核实的事,以及到哪里看原证据。原始日志可以外置,但决定下一步动作的区别不能抹平。摘要也不是执行数据库,不应凭它判定不可重复动作是否已完成。

截断直接删掉一部分上下文。
摘要压缩用新文本概括旧信息,可能引入改写错误。
快照明确字段的当前状态记录。
证据引用重新获取原文的定位信息。

输入与适用条件:构造的exclude修复场景;有意保留“集成测试尚未运行”这一否定状态。错误摘要只作为反例,禁止当作推荐模板。

1 / 5 · 原历史有很多噪声

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

压缩要保留行动所依赖的事实:原历史有很多噪声目标修复exclude,不改公开API已完成补丁已写入;文件版本v8验证状态单元测试通过;集成测试尚未运行证据路径、行号、版本保留下一步运行当前版本的集成测试

工具输出、失败尝试和重复讨论可以很长。压缩的目标是减少历史占用,不是美化成“进度不错”。

可恢复快照

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

有限窗口无法一直保留全部原始对话,但任务需要连续推进。

怎样实现

保留必要状态与引用,压缩后核对,再从原始来源恢复细节。

可能的代价与误解

摘要重写可能把猜测变结论,多轮摘要还可能累计偏移。

如何判断是否做对

比较压缩前后允许的下一步动作是否一致,而不只是文本相似度。

每一轮的信息供给

上下文工程关心整个可见集合:规则、目标、状态、证据、工具定义和必要历史。Prompt工程是其中表达指令的一部分。检索、渐进披露、压缩、笔记和子Agent都可能改变本轮可见内容。[S084]

C(t) = 必要指令 + 任务目标 + 有效工作状态
     + 下一步需要的证据 + 工具信息 + 必要历史

这是教学分析式,不是实际序列化格式。优化目标是充分且相关,而不是机械最大或最小。整个旧仓库可能包含过期实现,只给一个新函数又可能丢失兼容性约束。

标称窗口与有效能力

Lost in the Middle研究位置影响;LongBench和RULER从多任务考察长上下文能力。接受某个长度不代表所有任务都能可靠完成,针找回与综合多处约束也不同。结论依赖模型、任务和干扰内容。[S085][S087][S088]

原创实验把同一兼容性条件放在不同位置,逐渐加入无关日志,随机化布局并重复运行。检查实际补丁是否保留旧行为,而不是只问模型“你记住了吗”。

五种内容管理操作

选择是不加载无关内容;裁剪是删除重复或旧输出;摘要是重新表达;外置是保存原始材料并留引用;重检索是在需要时取回。缓存是计算复用,不属于内容压缩。[S084][S092][S094]

选择可能漏证据,裁剪可能删未来线索,摘要可能误写确定性,外置依赖有效引用,重检索需要足够线索和权限。常见实用组合是小型任务状态加外置原始证据,而不是只留一段无法回溯的总结。

Compaction到底保存什么

不同产品没有统一压缩算法。OpenAI接口可返回不供人直接阅读的专用压缩状态;Claude提供摘要、阈值和上下文编辑等机制。应使用正式返回结构,不伪造或随意拆分不透明状态。[S089][S090][S091][S093]

压缩可以理解为选择候选历史、提取状态、生成较短表示、继续调用。看得到摘要不等于验证全部内部状态,看不到内部过程也不代表无损。远短于原文的任务摘要通常不能保证回答任意未来细节问题。

对需要审计的工作,应另存原始事件、文件版本与日志。压缩更像有损交接,而不是文件ZIP的无损还原。专用表示也不应被宣称能恢复全部原始内容。

保真检查要检查命题状态

目标:修复嵌套路径exclude
不变条件:保持旧配置格式和顶层行为
已确认:比较双方路径基准不同
证据:文件版本、代码范围、测试ID
已排除:配置未加载
已修改:尚无
已验证:最小复现失败
未解决:Windows分隔符是否相关
下一步:读取规范化函数

这是原创交接示例。最容易失真的是否定结论、禁止条件和不确定性。“可能与Windows有关”变成“根因就是Windows”会误导后续工作。仅匹配关键词不能发现这种错误。

压缩前后问:不能改什么?什么已排除?哪个测试运行过?什么仍是假设?再继续真实任务。信息恢复与任务成功必须同时评价,摘要完整却让Agent重复工作也有成本。

缓存、压缩与重置的权衡

压缩可能改变可共享前缀,影响缓存,但影响范围依服务规则和改动位置而定,不能简单说必然全部失效或必然省钱。比较应包含压缩调用、后续输入节省、重读证据和错误返工。[S092][S039]

重置上下文可能移除旧假设,也会产生交接损失。长任务研究使用过不同组合,且随模型能力变化调整,不能把定时重置当永恒规则。[S130][S131]

证据外置必须可定位

“见之前日志”不是可靠引用。至少保存位置、版本、范围与运行命令。旧补丁通过测试后再次修改,应把状态改为“旧版本通过,新版本待验证”,而不是继续沿用绿色结论。

自检:大窗口能否代替长期记忆?不能完全代替,跨会话持久化、版本和权限仍存在。摘要有所有关键词就保真吗?不一定,真假、时间和确定性可能已变。

逐项中文讲义

保留拓展阅读目录编号与A/B/C优先级;每项包括机制解释、边界与原创练习。

A7.1 · 有效的上下文工程

对应资料:Effective Context Engineering

上下文工程关注本轮模型需要的整个信息集合,而不仅是Prompt措辞。相关方法包括按需获取、渐进披露、压缩、笔记与子Agent,但不要求每次同时使用全部机制。

有限注意与有限窗口意味着信息需要选择。更多内容可能提供证据,也可能引入过期结论和噪声;更少内容节省成本,也可能漏掉约束。

运行示例 · R07-01

相关信息不是越多越好

输入与条件。目标定位一个断言失败,候选有失败函数20行和全库日志10000行。

步骤与对象内部动作中间结果 / 新状态
1优先读断言、被测函数和必要调用方形成最小证据链。
2缺口仍无法解释时定向扩大而非一次性全部堆入。
3反馈记录为何扩展到某文件便于判断检索是否失焦。

把过程连起来。按需获取是围绕任务的信息决策,不等于越短越好。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:把一项代码任务的输入分成常驻规则、当前证据、可重新获取历史三组,说明每组何时进入上下文。再用任务成功而非Token最少评价方案。

完成标准是能解释每段输入为何在本轮有用,不把上下文工程简化成“写一个更长的系统Prompt”。

拓展阅读目录事实依据 [S084] · 练习与工程推导为本书独立编写。

A7.2 · 长上下文中的位置效应

对应资料:Lost in the Middle

Lost in the Middle研究相关信息在长输入中的位置如何影响模型表现。其结论来自特定模型与任务,不能写成所有新模型在中间位置必然失败。

位置效应只是长上下文风险之一。干扰信息、多个证据组合、否定条件和版本冲突也会影响工程任务。

运行示例 · R07-02

位置效应实验只移动目标证据

输入与条件。同一段正确事实分别放在长文开头、中间、末尾。

步骤与对象内部动作中间结果 / 新状态
1控制总长度和事实内容相同只改变位置。
2提问相同问题,多次运行比较正确恢复率。
3解释结果差异依模型任务与干扰内容不能把一篇研究概括成所有模型永远怕中间。

把过程连起来。这是实验设计,不是已测得的位置收益数字。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:将同一兼容性约束放在不同位置,加入不同长度的无关日志,多次运行同一修复任务。检查行为和约束遵循,而不仅是能否复述句子。

实验应固定其他条件并报告变异。一次成功不能证明长窗口可靠,一次失败也不足以概括所有任务。

拓展阅读目录事实依据 [S085] · 练习与工程推导为本书独立编写。

A7.3 · 上下文容量与状态

对应资料:Claude Context Windows

上下文窗口文档说明模型可处理的信息范围及相关Token使用方式。窗口、输出预算、推理消耗和产品自动管理是不同概念,具体计算口径需要按接口核对。

不能把用户可见聊天字数直接当作全部输入,工具定义、结果与内部状态也可能占用相关预算。

运行示例 · R07-03

窗口能装下不代表能准确使用

输入与条件。输入含100条规则,其中两条版本冲突。

步骤与对象内部动作中间结果 / 新状态
1容量总Token未超限只通过长度检查。
2选择需要识别目标版本对应规则不由容量检查决定。
3验证问关键条件并要求证据衡量有效利用而非仅请求成功。

把过程连起来。可接收长度和可可靠完成任务的长度不是同一个指标。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:列出一次工具任务里除用户文本之外的全部内容来源,估计哪些可稳定复用、哪些每轮增长,再用实际接口统计核对。

完成标准是理解预算组成与限制,不记忆一个可能很快变化的最大Token数字作为全部能力说明。

拓展阅读目录事实依据 [S086] · 练习与工程推导为本书独立编写。

B7.4 · 长上下文多任务评测

对应资料:LongBench

LongBench通过多任务、长输入设置评价长上下文理解。不同任务可能要求检索、总结或综合信息,不能用单一任务分数代表所有长任务能力。

评测长度、语言、数据来源和评分方式都影响解释。模型能处理长文章问答,不等于能在多轮代码修改中保持执行状态。

运行示例 · R07-04

长上下文不同任务不能只看找一句话

输入与条件。同一长文包含三段相互关联的订单记录。

步骤与对象内部动作中间结果 / 新状态
1检索题找某订单日期只需单点命中。
2聚合题三段合计金额需要整合多处。
3推理题比较条件判断异常还需正确逻辑,单点召回高不保证通过。

把过程连起来。长上下文评测应覆盖实际要做的操作。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:为同一长材料设计事实定位、跨段推断和约束遵循三个问题,比较所需信息与评分方法。明确哪些答案可以确定性验证。

阅读基准的价值是学习如何构造有区分力的任务,而不是只记录某模型当时排名。

拓展阅读目录事实依据 [S087] · 练习与工程推导为本书独立编写。

B7.5 · 标称窗口与有效能力

对应资料:RULER

RULER关注标称上下文长度与实际有效能力之间的差异,通过不同任务与长度测试模型。它提醒我们,接口接受输入只是能力评价的起点。

简单找回单条信息与进行多步组合推理不同;长度增加时的失败也可能来自干扰和任务复杂度,而非单纯容量不足。

运行示例 · R07-05

干扰增加时有效窗口怎样测试

输入与条件。目标事实不变,背景从100段扩到1000段。

步骤与对象内部动作中间结果 / 新状态
1基准短输入测成功率建立起点。
2扩展只增加声明的干扰重复同类问题。
3结果同时记录正确率与延迟不把标称最大长度当稳定使用建议。

把过程连起来。没有实测数据时只能给测试方案,不能编造有效窗口阈值。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:逐步增加必须共同满足的约束数量,同时固定总输入长度,观察是否出现与单条检索不同的退化。

不要把某个合成基准结果直接换算成实际仓库可处理的最大文件数。真实工程仍需自己的端到端验证。

拓展阅读目录事实依据 [S088] · 练习与工程推导为本书独立编写。

A7.6 · 不透明压缩状态与连续执行

对应资料:OpenAI Compaction

OpenAI Compaction提供专用压缩状态,使长交互能够在有限上下文中继续。部分返回内容是不透明或加密表示,不应假设它等同于一段可编辑的人类摘要。

应用应按正式接口保存和传递这些状态,不能自行伪造字段或声称能恢复所有原始内容。完整审计仍需要独立保留原始证据。

运行示例 · R07-06

不透明压缩项需要按原样续接

输入与条件。服务返回压缩对象C,它不是人类可读摘要。

步骤与对象内部动作中间结果 / 新状态
1保存保留类型和负载不把二进制/加密字符串改写成普通文字。
2续接按接口规定传回C与后续新消息服务解释它的语义。
3事实审计独立保留可读任务目标、证据和状态不能从C外观证明事实已保真。

把过程连起来。不透明状态与公开文本摘要要分清;不能猜内部编码。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较“只保存压缩结果”与“保存任务状态加原始日志引用”两种恢复方案,检查精确错误码和历史限制能否重获。

压缩是否有用取决于后续任务质量与总成本,不只是压缩比。看不到内部表示也不能当作无损保证。

拓展阅读目录事实依据 [S089] · 练习与工程推导为本书独立编写。

A7.7 · 摘要型压缩概览

对应资料:Claude Compaction Overview

Claude的压缩机制用于在会话增长后保留任务连续性。摘要式管理会改变历史的表示,具体接口、触发条件和保留范围需要按当前文档理解。

摘要必须处理目标、已完成步骤、证据与不确定性。最常见的风险不是漏掉关键词,而是把“可能”改成“确认”或把“待验证”改成“通过”。

运行示例 · R07-07

摘要必须保留否定与未完成

输入与条件。原文“不要部署;测试还未运行”。

步骤与对象内部动作中间结果 / 新状态
1坏摘要“部署,测试”主题词存在却反转行动含义。
2好摘要“禁止部署;测试未执行”状态与否定都清楚。
3恢复后继系统仍先补验证,不执行部署用行为检查摘要影响。

把过程连起来。保留名词不等于保留原意。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:准备含否定结论、禁止条件与旧版本结果的历史,压缩后逐条提问,并继续执行任务验证。

完成标准是保留有用语义与可恢复证据,不把摘要长度下降等同于长任务可靠性上升。

拓展阅读目录事实依据 [S090] · 练习与工程推导为本书独立编写。

A7.8 · 主动压缩与阶段边界

对应资料:Compaction on Demand

按需压缩允许在需要时主动整理上下文,而不是仅等待容量触发。任务阶段可能是有价值的边界,例如完成调查后进入实现,但不是所有阶段结束都必须压缩。

主动操作会增加一次处理,并可能影响缓存与信息保真。临近结束的任务未必值得支付这笔成本。

运行示例 · R07-08

阶段结束压缩比正在写入时容易一致

输入与条件。任务刚完成读取,下一阶段准备修改。

步骤与对象内部动作中间结果 / 新状态
1阶段边界当前没有未完成写工具快照较稳定。
2保存目标、发现、来源、禁止项与下一步减少重复探索。
3继续新阶段重核目标版本不能因边界清晰就省掉版本检查。

把过程连起来。时机可降低状态复杂度,但不是任何阶段结束都必须调用摘要模型。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:比较固定间隔压缩、阶段结束压缩和不压缩三种策略,记录后续重复读取、约束遗漏与总耗时。

不要预设主动压缩优于自动压缩。真正问题是何时有足够冗余可清理,以及未来步骤还需要什么证据。

拓展阅读目录事实依据 [S091] · 练习与工程推导为本书独立编写。

A7.9 · 工具结果清理

对应资料:Context Editing

Context Editing针对历史内容进行清理,例如处理旧工具结果。它与把全部历史重写成摘要不同,二者对信息保留和缓存的影响也可能不同。

日志删除后,后续模型可能只知道动作发生过,却不知道精确返回。因此需要为重要证据保留可重新读取的引用。

运行示例 · R07-09

删除大日志前先保留可恢复位置

输入与条件。测试返回5000行,关键错误在431行。

步骤与对象内部动作中间结果 / 新状态
1提取错误、命令、退出码、版本、行范围形成必要状态。
2外置完整日志保存在可访问路径摘要附稳定引用。
3后续需要上下文时补读420—445行不是把删掉内容假装永远不重要。

把过程连起来。输出清理要兼顾信息密度与恢复能力。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:删除一次失败测试的长输出,仅留下命令、退出码、相关错误和完整日志路径,检查能否继续正确排查。

清理策略应按内容价值而非年龄独立决定。旧约束可能仍重要,最新的大段重复日志也可能没有价值。

拓展阅读目录事实依据 [S092] · 练习与工程推导为本书独立编写。

B7.10 · 按阈值触发压缩

对应资料:Compaction at a Token Threshold

阈值触发压缩根据Token等预算条件自动启动整理。阈值是资源控制手段,不等于模型理解了当前任务是否适合交接。

若恰好在关键证据尚未整理时触发,摘要更容易丢状态;阈值太晚又可能没有足够空间完成后续调用。

运行示例 · R07-10

压缩阈值不能等到窗口已经用满

输入与条件。输入当前850,窗口1000,下一个工具预计200。

步骤与对象内部动作中间结果 / 新状态
1预测850+200=1050还未收到就可预见超限。
2预留给工具结果与最终响应留空间按接口口径计算。
3动作适当裁剪、外置或提前压缩而非等待请求报错再随机删最早内容。

把过程连起来。阈值是工程预算策略,不是统一固定百分比。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:在同一长任务的不同位置触发压缩,比较保留的未完成步骤与证据。把触发点、输入长度和后续成功分别记录。

不能只调一个阈值解决所有问题。任务状态结构、输出控制、工具结果粒度与原始证据外置同样重要。

拓展阅读目录事实依据 [S093] · 练习与工程推导为本书独立编写。

B7.11 · 缓存与压缩的相互作用

对应资料:Claude Prompt Caching

Prompt缓存复用符合条件的相同前缀计算,压缩与编辑则改变内容。二者可能互相影响,但影响范围取决于实际修改位置和产品规则。

稳定前缀有利于复用,冗长无关前缀却可能损害上下文质量。缓存命中率高不代表业务收益高。

运行示例 · R07-11

压缩后Token少了但缓存前缀变了

输入与条件。原历史H长600,摘要M长100;已有缓存匹配H。

步骤与对象内部动作中间结果 / 新状态
1长度变化减少500逻辑Token容量收益明确。
2缓存变化M不等于H前缀原命中不能直接沿用。
3总评估比较实际计费、延迟与继续执行不只报告压缩比83.3%。

把过程连起来。压缩与缓存可互相影响,需测最终任务效果。

边界与反例。本表是独立教学构造,用来解释该研究主题的一个局部机制,不是原论文实验或产品实测;完整方法与适用条件仍需结合本节正文。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

原创练习:计算一次压缩调用、之后重新预填充、输入减少和证据重读的总成本,比较短剩余任务与长剩余任务。

完成标准是用成功任务成本与质量判断方案,不把缓存、记忆和压缩作为同一个功能讨论。

拓展阅读目录事实依据 [S094] · 练习与工程推导为本书独立编写。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。