上下文压缩实验

Production Lab 预览上下文工程25 分钟

这个客服 Agent 很便宜、很快,因为上下文被压得非常狠。隐藏的问题是:它已经记不住足够的政策、账户状态和订单证据,无法可靠判断退款。

一句话理解

上下文压缩不是“谁能把 Token 压得最少”;可辩护的策略应该先保住决定任务结果的指令和证据,再去删除低价值信息。

被过度压缩的客服上下文确定性教学模拟

原始工作集包含 25,500 个教学模拟 Token,而生产工作上下文最多允许 16,000。先从一个节省超过三分之二 Token 的策略开始,再看看这些“节省”到底删掉了什么。

72%
1,600
600
生产约束:活动 Context 必须控制在 16,000 Token 内。关键内容包括任务、安全政策、账户资格、退款政策和检索到的订单证据。
工作上下文结果
活动 Context
Token 节省
关键信息保留
证据覆盖
任务质量
幻觉风险
延迟指数
成本指数
当前诊断:
压缩后到底留下了什么?教学模拟工作集

Token 留存率和语义留存率不是一回事。更深的摘要可以让每个保留 Token 携带更多有用含义,但 Retrieval 或 Memory 的预算如果在前面就把信息挡掉,摘要也没有机会保护它。

Context 片段原始 Token活动 Token语义保留率
压缩权衡
基线策略非常便宜 · 信息损失很大

初始策略只追求缩小工作上下文,任务真正依赖的信息被悄悄一起删掉。

当前策略
等待参数变化……
关键结论
压缩也有语义预算节省 Token 只有在剩余表示仍保留任务依赖的指令和证据时才有意义。
先保护关键事实,再优化平均指标一个小小的安全规则或资格字段,可能比几千 Token 的背景信息更重要。
Retrieval Budget 是信息准入决策没有被检索进来的证据,Summarizer 再强也保护不了。
更多 Context 也不自动更安全什么都保留可能直接超过运行预算,并重新带来延迟和成本问题。
可辩护的点通常在中间好的 Context Engineering 会接受一定信息损失来换成本,但不能跌破任务关键事实的最低保留线。
上下文工程

为什么摘要看起来没错,压缩后的系统仍然可能更差?

模型不会直接看到应用里的完整真实状态,它只看到被构造出来的工作 Context。压缩改变的是这整个信息环境,所以一句很流畅的摘要,也可能刚好漏掉真正改变退款结论的账户标记、政策例外或订单证据。

压缩比例只是最显眼的旋钮

两个都只保留 40% Token 的策略,实际能保住的语义可能完全不同。关键取决于压了哪些片段、Retrieval 先放进来什么,以及哪些事实被禁止做有损压缩。

关键事实不应该和背景文本用同一套策略

System 安全规则、当前任务、账户资格、退款政策和订单证据都直接决定行动后果,应当比产品背景和低价值历史对话获得更强的保护。

Retrieval 和 Memory 的预算发生在生成之前

如果 Retrieval Budget 太小,证据从一开始就没进入工作 Context;之后再提高摘要质量也无法把它恢复出来。Memory 过多同样可能把过期或弱相关历史重新挤进工作集。

硬预算让另一种失败也显形

如果没有 16k 上限,最容易提高模拟质量的方法就是几乎什么都不压。但真实系统还有 Context Limit、延迟目标和单位成本,因此“信息全保留”也可能是不可发布的策略。

常见问题

是不是所有标成关键的信息都应该永久保护?

高后果信息应该有更强默认保护,但真实系统仍需要任务分类、时效规则和冲突处理。

摘要越深越好吗?

不是。深摘要可能保留更多含义,也会消耗更多 Token 和处理成本。

直接换更大的 Context Window 不行吗?

更大的窗口只能缓解容量压力,不能消除坏 Retrieval、陈旧 Memory、注意力分配、延迟和成本问题。

AhaFrame 教学模拟说明 · 内容复核 2026-08-13. 所有数值都是教学模拟指标,用来暴露 Context 选择的因果关系,不是通用生产阈值。
动手想一想

为可退款客服 Agent 定义一套 Context Policy。

明确哪些信息必须保住、Retrieval 最多允许引入多少证据、Memory 值得占多少预算,以及什么信息一旦缺失就应该直接阻止发布。

开始挑战 →
你已经在信息保留与成本之间做出可解释的权衡。
下一步,Integrated Build 会把 Retrieval、Context Policy、受控执行、人工审批和 Evaluation 放进同一个架构决策。
继续到 Integrated Build →