上下文窗口:预算、压缩与裁剪
上下文窗口:预算、压缩与裁剪:把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息,通过架构、轨迹和故障重放完成验收。
学习目标
- 能解释“上下文窗口:预算、压缩与裁剪”如何把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息
- 能区分上下文窗口、注意预算、按需检索、压缩、结构化笔记,并指出控制权、数据与副作用边界
- 能固定输入与版本,沿以下证据定位首个分叉:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果
- 能注入“按最旧消息直接截断,连同尚未解决的约束和工具错误一起删除”,完成阻断、恢复、复位和同输入重放
来源、课程编排与适用边界
“上下文窗口:预算、压缩与裁剪”以Anthropic 公开全文《Building effective agents》为总纲,并用Anthropic《Effective context engineering for AI agents》核对本单元机制;涉及 MCP 的控制权边界再由MCP 2025-06-18 官方规范交叉检查。
这不是 Anthropic 出版的“19 章教材”。平台把公开文章、官方工具文档与协议规范重组为 19 个应用单元;下列 152 个节点是站内课程地图,不冒充原文目录。正文、代码、图表、实验和练习均为独立教学重写;产品接口、模型行为或协议版本变化时必须重新验证。
本单元的八个课程坐标
- 上下文窗口:预算、压缩与裁剪:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 1 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 先打个比方:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 2 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第一个概念:上下文窗口,是一笔有限的 token 预算:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 3 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第二个概念:窗口装满了,会出什么事:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 4 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第三个概念:腾地方的两招——压缩 vs 裁剪:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 5 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 动手看:一个会涨的窗口,怎么「填满 → 压缩腾空 → 继续」:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 6 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第四个概念:lost in the middle——别把关键信息埋在中间:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 7 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 用代码看一个「超长就压缩」的策略长什么样:这是“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的第 8 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
术语与运行合同
↡上下文窗口:一次推理时模型可接收的 token 集合;在“上下文窗口:预算、压缩与裁剪”中按以下证据核对:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。、↡注意预算:上下文增长时仍能可靠利用信息的有限能力;在“上下文窗口:预算、压缩与裁剪”中按以下证据核对:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。、↡按需检索:运行时只加载当前步骤需要的信息;在“上下文窗口:预算、压缩与裁剪”中按以下证据核对:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。、↡压缩:把长轨迹提炼为保留关键事实的较短表示;在“上下文窗口:预算、压缩与裁剪”中按以下证据核对:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。、↡结构化笔记:把目标、决定、证据和待办存为可持续更新的外部状态;在“上下文窗口:预算、压缩与裁剪”中按以下证据核对:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。。
本页不变量是:压缩或裁剪后必须保留任务目标、关键决定、未解决问题和可追溯引用。任何“成功”结论都要保存以下证据:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果,模型生成的计划或自信不能替代环境事实。
关键机制与可推翻实验
更长不等于更可靠
上下文增加会带来边际收益递减和注意分散,应优先提高信号密度。
动手验证:固定模型和任务,逐档增加无关材料,测量关键事实召回。
按需加载优于一次塞满
文件路径、查询和资源标识可作为轻量索引,真正内容在需要时获取。
动手验证:比较预加载全库与逐步检索的 token、延迟和答案证据。
压缩先追求召回
初版摘要应保留全部关键决定,再逐步去除冗余,不能一开始激进删减。
动手验证:对压缩前后的事实清单做确定性断言。
工具结果可以清理但要留结论
深层历史中的大段原始输出可移出窗口,同时保留来源、摘要和复取方式。
动手验证:清掉旧结果后让智能体重放,确认能按引用重新取得证据。
先预测,再操作三类证据
1. 架构与复杂度边界
在“上下文窗口:预算、压缩与裁剪”中切换简单基线、受控工作流与自主循环,先预测“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”在哪个阶段需要增加控制权,再比较延迟、成本、可观测性和自主性。
Architecture decision laboratory
上下文窗口:预算、压缩与裁剪
把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息
不变量:压缩或裁剪后必须保留任务目标、关键决定、未解决问题和可追溯引用
最小可运行实现
function compact(trace: Event[], budget: number) {
const mustKeep = trace.filter(isGoalDecisionOrOpenIssue);
const recent = trace.slice(-6);
const summary = summarizeWithCitations(trace.slice(0, -6));
const next = dedupe([...mustKeep, summary, ...recent]);
assertFactsPreserved(trace, next);
return fitTokenBudget(next, budget);
}这段切片只暴露“把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息”的最小运行合同。交付版本还要补齐超时、密钥隔离、结构化日志、幂等和批量评测;缺少token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果时,代码能运行也不代表本章结论成立。
练习与答案
练习
问题 1:最小证明。 怎样用最少样本证明“压缩或裁剪后必须保留任务目标、关键决定、未解决问题和可追溯引用”?
问题 2:课程覆盖。 上下文窗口:预算、压缩与裁剪、先打个比方、第一个概念:上下文窗口,是一笔有限的 token 预算、第二个概念:窗口装满了,会出什么事、第三个概念:腾地方的两招——压缩 vs 裁剪、动手看:一个会涨的窗口,怎么「填满 → 压缩腾空 → 继续」、第四个概念:lost in the middle——别把关键信息埋在中间、用代码看一个「超长就压缩」的策略长什么样如何进入可操作验证?
问题 3:恢复闭环。 怎样证明“按最旧消息直接截断,连同尚未解决的约束和工具错误一起删除”已经修复?
本章回顾
- “上下文窗口:预算、压缩与裁剪”的主问题是把上下文视为有限注意预算,用按需检索、压缩和结构化笔记保留高信号信息。
- 核心不变量是压缩或裁剪后必须保留任务目标、关键决定、未解决问题和可追溯引用。
- 首要反例是按最旧消息直接截断,连同尚未解决的约束和工具错误一起删除。
- 最小证据包包含token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 上下文窗口
一次推理时模型可接收的 token 集合。在“上下文窗口:预算、压缩与裁剪”中必须能按以下证据重新定位:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。
- 注意预算
上下文增长时仍能可靠利用信息的有限能力。在“上下文窗口:预算、压缩与裁剪”中必须能按以下证据重新定位:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。
- 按需检索
运行时只加载当前步骤需要的信息。在“上下文窗口:预算、压缩与裁剪”中必须能按以下证据重新定位:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。
- 压缩
把长轨迹提炼为保留关键事实的较短表示。在“上下文窗口:预算、压缩与裁剪”中必须能按以下证据重新定位:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。
- 结构化笔记
把目标、决定、证据和待办存为可持续更新的外部状态。在“上下文窗口:预算、压缩与裁剪”中必须能按以下证据重新定位:token 预算、消息分类、保留清单、压缩前后事实断言、引用与任务结果。