超越压缩:面向长周期智能体的结构化上下文驱逐
摘要
介绍了上下文窗口生命周期(CWL),这是一种面向长周期LLM智能体的结构化上下文驱逐方案,通过基于依赖图驱逐内容来维持有效无界的工作视野,避免了基于摘要的压缩和最近截断的局限性。
arXiv:2606.11213v1 Announce Type: new
摘要:我们提出了上下文窗口生命周期(CWL),一种上下文管理方案,为长周期LLM智能体提供有效无界的工作视野。随着会话积累历史记录,CWL通过渐进式、语义感知的驱逐机制将上下文控制在预算内:智能体在工作过程中将轨迹注释为带有类型和依赖关系的片段,当令牌预算超出时,一个确定性的、无需LLM的策略会按照优先级顺序在该结构内驱逐内容。CWL保留用户轮次和智能体正在积极推理的探索上下文,同时激进地丢弃那些效果已在环境中持久化的动作片段,使活动上下文保持在接近稳定的上限,从而避免与大提示相关的性能下降。
与基于摘要的压缩相比,CWL避免了四个众所周知的局限性:不可预测的丢失、因果结构的破坏、阻塞模型成本以及压缩导致的幻觉。与最近截断相比,CWL具有语义意识:它根据依赖图丢弃最旧且最易恢复的内容,而不是简单地按时间顺序丢弃最旧内容。我们描述了注释协议、片段图、驱逐策略和令牌核算循环,并在长周期智能体基准测试上评估了CWL:一个智能体会话在8000万个令牌上完成89个顺序任务,与每个任务独立会话相比,任务准确率没有可测量的下降。
查看缓存全文
缓存时间: 2026/06/11 13:35
# 超越压缩:长时程智能体的结构化上下文驱逐
来源:https://arxiv.org/html/2606.11213
Andrew Semenovhttps://orcid.org/0009-0009-7047-5179 Kiz8 ands@kiz8\.team⋅\\cdotandysem3@gmail\.comSvyatoslav Dorofeevhttps://orcid.org/0009-0004-3480-1743 Kiz8 sean@kiz8\.team
(2026年4月21日)
###### 摘要
我们提出上下文窗口生命周期(Context Window Lifecycle, CWL),这是一种上下文管理方案,为长时程 LLM 智能体赋予一种实际上无界的运行视界。随着会话历史累积,CWL 通过渐进的、语义感知的驱逐机制,将上下文控制在预算范围内:智能体在推进工作时,将其轨迹标注为类型化、依赖关联的*片段*,当超出代币预算时,一个确定性的、无需 LLM 的策略会在此结构内按优先级顺序驱逐内容。CWL 保留用户轮次以及智能体当前积极推理的探索上下文,同时激进地丢弃那些效果已持久化到环境中的动作片段,使活跃上下文稳定地保持在一个上限附近——该上限本身低于注意力退化及幻觉率上升的区间。
与基于摘要的压缩相比,CWL 避免了四个已知局限:不可预测的信息丢失、因果结构的破坏、阻塞性模型成本,以及压缩引发的幻觉。与基于时间优先级的截断相比,CWL 具有语义感知能力:它会根据依赖图而非纯粹的时间先后,丢弃“最古老且最可恢复”的内容,而非“最古老”的内容。我们描述了标注协议、片段图、驱逐策略以及代币核算循环——并通过单个智能体会话完成 89 项顺序任务、处理 8000 万 token,且任务准确率与每任务孤立会话相比无显著下降,进行了实证展示。
## 1 引言
长时间运行的 LLM 智能体——如编码助手、研究智能体、工具使用工作流——面临一个结构性问题:上下文窗口是有限的,但工作轨迹是无限的。每一次工具调用、每一次文件读取、每一份检索文档都会积累到历史中,而模型的有效推理预算随每次交互而缩减。若不进行干预,会话要么在窗口填满时终止,要么开始静默丢弃最旧的内容,同时带走后续决策需保持一致所需的上下文。
当前的主流干预方式是*压缩*:当历史接近窗口限制时,暂停智能体,将累积的转录交给一个 LLM 并指令其生成摘要,然后用摘要替换原始历史。智能体随后在压缩后的基础上继续工作。压缩的优势在于其简单性——它不需要对交互进行任何结构性假设——并且它目前是多个广泛使用的智能体框架的默认做法。
基于摘要的压缩存在四个已知局限,每个局限在触发条件下——即任务进行中、代币压力下——都会进一步加剧:
1. **信息丢失是不可预测的。** 摘要是由 LLM 在其自身约束下生成的;保留什么、丢弃什么取决于摘要器对瞬时重要性的判断,而这未必与下游智能体真正需要的保持一致。仅从压缩后的上下文中无法检测到错误。
2. **结构被破坏。** 原始轨迹包含明确的因果结构:一次工具调用产生一个输出,该输出指导一个决策,该决策引发一个动作。散文式摘要将这些压缩为叙事,抹去了能让智能体重温自身推理的溯源信息。
3. **压缩成本高且具有阻塞性。** 一次压缩过程是对上下文窗口大部分内容进行的一次完整 LLM 调用,会增加数秒的延迟以及往返 token 的成本。而这恰好在智能体处于任务进行中时发生。
4. **幻觉在最糟糕的时刻引入。** 在长度压力下进行摘要,是 LLM 的已知失败模式。压缩在智能体剩余最少预算来检测并纠正错误的那一刻,正好向上下文中引入了新的错误。
上下文窗口生命周期(CWL)解决了这些局限,并实现了一种先前方法未能达到的能力:一个能够无限运行且不损失连贯性的长时程智能体。CWL 不将转录视为一个不透明的、填满时需摘要的 blob,也不视为一个从前端截断的队列,而是将其视为一个*结构化的工作记录*,由智能体在行进过程中自己标注。当超出预算时,一个确定性策略遍历该结构并按优先级顺序驱逐内容,从最可恢复的开始,必要时直至整段片段。
关键洞察在于:智能体处于标注自身轨迹的最佳位置——它在执行工作之时,就知道哪些部分是仍需的活跃上下文,哪些是效果已写入环境的动作记录,并且知道某个动作所依赖的探索活动。CWL 为智能体提供一个单一的 `delimiter` 工具,以增量方式表达这种结构,而压缩策略则利用该结构。
#### 贡献。
- •我们论证了长时程 LLM 智能体可以拥有一个实际上无界的运行视界:单个会话完成 89 项顺序任务、处理 8000 万 token,且任务准确率与每任务孤立会话相比无显著下降。
- •我们提出了 CWL,一种围绕三个原语构建的上下文管理方案:*类型化片段*、由智能体构建的*显式依赖图*,以及一个确定性的、无需 LLM 的*渐进驱逐策略*。
- •我们刻画了基于摘要压缩的四个已知局限(不可预测的信息丢失、结构破坏、阻塞性成本、压缩引发幻觉),并展示 CWL 的设计如何从结构上解决每一个问题。
- •我们描述了完整的架构:向智能体开放的标注协议、片段图的不变性、驱逐优先级排序,以及触发驱逐的代币核算循环。
#### 本文范围。
这是 CWL 的首次发布。设计、架构和初步实证结果在此完整呈现。更大规模的评估——更多基准套件、更高运行次数以及扩展消融实验——计划在后续版本中完成。我们现在发布是为了确立该方法,使其设计决策对其他研究者可理解、可批评、可借鉴。
## 2 相关工作
#### 基于摘要的压缩。
当代智能体框架中的主流做法是在上下文超过某个阈值(通常为窗口的 70-90%)时触发一次摘要过程[9 (https://arxiv.org/html/2606.11213#bib.bib1), 5 (https://arxiv.org/html/2606.11213#bib.bib2), 13 (https://arxiv.org/html/2606.11213#bib.bib3), 7 (https://arxiv.org/html/2606.11213#bib.bib4)]。CWL 的不同之处在于:压缩是增量的、确定性的,且不调用模型;其代价体现在正常操作期间的标注纪律上,而非在末尾进行一次大规模、阻塞性的摘要。
#### Context-Folding。
Sun 等人[12 (https://arxiv.org/html/2606.11213#bib.bib11)] 引入了两个智能体动作,`branch` 和 `return`,它们在轨迹上施加了一个两级规划-执行层次。当智能体遇到代币密集的子任务时,它调用 `branch(description, prompt)`,打开一个干净的子上下文;当子任务完成时,它调用 `return(message)`,折叠中间步骤,仅保留模型编写的摘要到主线程中。进一步的工程后果在注意力层体现:`return` 将 KV 缓存回滚到 `branch` 调用之前的状态,因此子上下文既在 token 级别被丢弃,也在推理引擎的缓存激活中被丢弃。由此产生的压缩是显著的——主轨迹保持在大约 8000 token,而智能体总共处理超过 100,000 token。由于稀疏的结果奖励不足以让智能体有效学习 branch-and-return 行为,作者使用 FoldGRPO 训练其智能体,这是一种密集过程奖励的 GRPO 变体,增加了三种 token 级信号:主线程超过工作限制 50% 而未分支时的惩罚;由评判模型评估的分支动作偏离声明子任务时的范围偏离惩罚;以及工具调用失败轮次的失败惩罚。
Context-Folding 背后的结构性直觉与 CWL 有重叠:两种方法都认识到智能体工作具有自然的层次结构——探索/调查 vs. 承诺结果——并利用该结构来决定压缩什么。然而,差异是有影响的。首先,*谁来决定*:在 Context-Folding 中,模型通过 RL 训练学习何时压缩以及保留什么,而在 CWL 中,驱逐策略是一个咨询显式依赖图的确定性算法——不调用任何模型。这一区别有两个下游影响:Context-Folding 需要微调特定模型,因此并非模型无关;并且保留的 `return` 消息是模型生成的内容,这重新引入了 CWL 通过设计避免的幻觉风险。其次,*深度*:Context-Folding 强制执行严格的两级层次结构(活跃分支内部不允许嵌套),而 CWL 的依赖图原则上可以表示任意深度的因果链。第三,*触发方式*:Context-Folding 的压缩是隐式的——训练好的模型预计会在上下文填满之前主动分支——而 CWL 的触发是显式且反应性的,从代币核算中确定性触发。
#### 基于时间优先级的截断和滑动窗口。
最简单的方法是丢弃最旧的轮次,直到上下文适配[14 (https://arxiv.org/html/2606.11213#bib.bib6), 7 (https://arxiv.org/html/2606.11213#bib.bib4)]。这种方法廉价且可预测,但在语义上是盲目的:它可能愉快地丢弃定义了一个智能体仍在使用的变量的工具调用。CWL 可以看作是结构化的泛化:“最旧”的内容不是时间上最旧的,而是依赖图中“最旧且最可恢复”的内容。
#### 检索增强上下文。
另一种方法是将完整历史保存在外部存储中,并在每个轮次检索相关段落[10 (https://arxiv.org/html/2606.11213#bib.bib5)]。这解决了一个与 CWL 不同的问题——选择性注入外部知识 vs. 在预算内保持活跃会话——并且两者是正交的。
#### 智能体记忆系统。
更广泛的文献探讨了 LLM 智能体的持久记忆[9 (https://arxiv.org/html/2606.11213#bib.bib1), 15 (https://arxiv.org/html/2606.11213#bib.bib7), 2 (https://arxiv.org/html/2606.11213#bib.bib8), 11 (https://arxiv.org/html/2606.11213#bib.bib9)],通常关注跨会话状态。CWL 解决的是互补的会话内问题:在 token 预算下保持单一轨迹的连贯性。
## 3 设计原则
在描述架构之前,我们陈述指导该架构的原则。这些不是本文要证明的主张;它们是设计意图遵循的承诺,且后续每一个决策都可以追溯到其中一条原则。
###### 原则 1(压缩是协议的一部分,而非恢复性动作)。
智能体并非在上下文填满前正常操作,然后调用修复。它的操作基于理解压缩是持续进行的,标注其轨迹以支持压缩,并且永远不会遇到必须“拯救”上下文的状态。
###### 原则 2(智能体是结构上的权威)。
系统对转录含义的推断尽可能少。片段边界、片段类型和依赖关系由智能体使用专用工具显式声明。
###### 原则 3(用户内容不可侵犯)。
由人类参与者创作的内容永远不会被驱逐,无论 token 压力多大。如果预算无法在不触及用户轮次的情况下达成,系统会暴露该条件,而不是静默退化。
###### 原则 4(因果依赖优先于时间优先级)。
一个近期决策所依赖的旧片段,比一个独立的近期片段更有价值。驱逐顺序遵循依赖图,而非时间线。
###### 原则 5(压缩不得调用模型)。
驱逐策略的每一步都是确定性的、局部的。这通过构造排除了压缩引发的幻觉,并将一次压缩过程的成本保持在有效为零。
###### 原则 6(渐进式,而非灾难式)。
压缩以能满足预算的最小增量进行。对溢出的第一个响应是剥离最可恢复的一块内容,而不是重构整个会话。
## 4 架构
### 4.1 概述
CWL 包含三个组件:(i) 一个*标注协议*,智能体在工作时通过它标记片段边界和依赖关系;(ii) 一个*片段图*,将这些标注累积成会话上的类型化 DAG;以及 (iii) 一个*驱逐策略*,在代币核算表明已超出预算时被调用。图 1 (https://arxiv.org/html/2606.11213#S4.F1) 描绘了它们之间的关系。
智能体(产生轮次,调用 delimiter) → 片段图(类型化 DAG) → 驱逐策略(渐进式,无需 LLM) ← 代币核算
注释 → 候选内容 → 驱逐 → 预算
图 1:CWL 的组件。智能体在工作时标注其轨迹;片段图累积这些标注;驱逐策略咨询代币核算,并在超出预算时按优先级顺序驱逐内容。
我们依次描述每个组件。
### 4.2 标注协议
智能体拥有一个单一工具 `delimiter`。它不产生任何影响任务行为的输出;其唯一目的是对轨迹进行分段。该工具接受以下模式:
- • `action`: "start" | "end"(必需)。
- • `name`: 字符串,当 `action` 为 "start" 时必需。
- • `type`: "expl" | "act",当 `action` 为 "start" 时必需。
- • `dependencies`: 字符串数组,当启动一个 "act" 块时必需;必须引用之前 "expl" 块的名称。
- • `description`: 字符串,当结束一个 "expl" 块时必需;当结束一个 "act" 块时拒绝。
因此,四种规范调用是:
1. 开始探索:`{"action": "start", "name": "...", "type": "expl"}`
2. 开始动作:`{"action": "start", "name": "...", "type": "act", "dependencies": ["expl-a", ...]}`
3. 结束探索:`{"action": "end", "description": "..."}`
4. 结束动作:`{"action": "end"}`
#### 片段类型。
区分两种类型:
- • *探索性*(expl)片段收集信息。它们包含工具调用,其输出为后续决策提供依据,但一旦推断完成,其原始内容通常不再需要:搜索结果、目录列表、为定向而进行的文件读取。关闭时,智能体提供一条 `description` 总结所学内容;完整驱逐后,该描述是唯一保留的内容。
- • *动作性*(act)片段执行动作。它们包含构成智能体实际工作的写入、编辑和工具调用。其效果在环境中是持久的——文件编辑无论片段是否还在上下文中都是持久的——这使它们成为驱逐的首选候选。
#### 依赖声明。
当智能体打开一个动作片段时,它通过 `dependencies` 字段声明其所依赖的探索性片段——一个已关闭的 expl 块的名称列表,该动作片段正在消费其信息。
这编码了这样一个事实:动作片段的正确性依赖于探索性片段已经发生,而这是整个结构的关键。相似文章
长时段LLM智能体服务的并行上下文压缩
介绍了用于长时间范围LLM智能体的并行上下文压缩,实现了对摘要量的细粒度控制,并相比多个骨干模型上的顺序同步压缩,降低了端到端延迟。
面向长周期任务的智能体兼容上下文管理
介绍AdaCoM,一种基于外部LLM的上下文管理器,适用于冻结的智能体。通过保留任务约束和修剪过时内容,利用强化学习提升长周期任务性能,并在网络搜索和深度研究基准上进行了实验。
更少上下文,更智能代理:面向长周期工具使用的LLM代理的高效上下文工程
本文评估了企业工具使用工作流中LLM代理的上下文工程配置,表明选择性修剪的摘要化相比全上下文基线实现了91.6%的准确率,同时将令牌使用量减少了60%以上。
我是如何解决持续运行的Anthropic智能体循环中上下文窗口膨胀问题的(Opus + Sonnet架构)
一位开发者分享了一种架构模式,用于管理持续运行的Anthropic智能体循环中的上下文窗口膨胀问题,采用KV缓存、动态工具模式加载,以及通过Claude 3.5 Sonnet和Claude 3 Opus解耦执行器与顾问角色。
@ickma2311: 高效AI讲座15:长上下文LLM 长上下文不仅仅是更大的提示窗口。关键问题是:哪些过…
本文总结了关于长上下文LLM的高效AI讲座15,涵盖用于上下文扩展的RoPE位置插值、大海捞针评估,以及StreamingLLM的注意力汇聚现象和KV缓存驱逐策略。