SelfCompact:让语言模型自己决定何时压缩上下文

SelfCompact 让模型自主判断何时压缩上下文,替代无视轨迹结构的固定阈值策略。
长链路 Agent 的历史轨迹会因掺杂过期内容而产生「锚定效应」,持续把后续推理拉向错误方向,同时最终会超出上下文窗口。现有 scaffold 依赖固定步数或 token 阈值触发摘要,这种机制不关心轨迹的语义结构,可能在推导或搜索进行到一半时截断,丢失中间结果。SelfCompact 提出把压缩权交还模型:以「压缩工具」形式让模型在需要时主动调用,把累积上下文摘要化,并由配套判断机制决定调用时机。这相当于把上下文管理从外部硬编码逻辑,转为轨迹内部的可调用动作,理论上能对齐任务结构。代价是增加判断开销、行为确定性下降,且公开信息仅有方法框架,缺少实验与失败案例,实际收益仍待验证。
长链路 Agent 的「上下文膨胀」问题,一直靠固定阈值压缩来兜底——但阈值不管任务结构,可能在你推到一半时把中间结果丢掉。SelfCompact 换了个思路:让模型自己决定什么时候压、怎么压。

问题出在哪:长轨迹的「锚定效应」
Agent 的轨迹由思维链和工具调用堆叠而成。随着步数增加,历史里混杂大量过期内容,这些内容会持续「锚定」后续生成——模型倾向于顺着已经写下的错误方向继续走,而不是重新评估。同时,轨迹最终会超出上下文窗口的物理上限。
现有 scaffold 的应对方式是固定间隔压缩,或者命中某个 token 阈值就触发摘要。这种做法的问题在于,它完全不关心轨迹本身的结构。压缩发生在哪里,纯粹由步数或 token 数决定,而非由「当前推导进行到哪一步」决定。结果就是:一次搜索或一段推导可能正处在中间状态,却被压缩截断,部分结果丢失,后续步骤不得不重做甚至走偏。
换句话说,固定阈值把压缩当成一个「资源管理」问题,而忽略它本质上是一个「语义决策」问题。
锚定效应(Anchoring Effect) 原本是行为经济学概念,指人在决策时过度依赖最初获得的信息(锚点),后续判断被这个锚点"拉"向一侧。在长链路 Agent 场景中,它表现为一种自回归固化:模型已经写下的错误推理、过时的工具返回结果、被推翻的假设,都会作为 token 留在上下文里,持续影响后续每一步的条件概率分布。模型倾向于顺着已有表述"接着写",而不是重新评估前提是否成立。这与 LLM 缺乏动态工作记忆有关——它无法像人一样主动"划掉"已废弃的思路,只能用新的 token 去覆盖旧的,但旧的 token 仍在注意力机制中占权重。压缩之所以重要,正是因为要主动清除这些残留锚点,让后续推理重新获得干净的起点。
SelfCompact 的做法:把压缩权交还给模型
SelfCompact 的核心主张是:压缩的时机与粒度,应该由模型自己在推理过程中判断。
它由两个推理期组件配对构成。其一是压缩工具:模型在需要时主动调用它,把累积的上下文摘要化,而不是等外部调度器在固定点强制执行。其二是与之配合的判断机制,让模型能根据当前轨迹状态决定是否调用这个工具。
这个设计隐含了一个判断:模型比外部脚手架更清楚自己「现在是推导到一半,还是已经收尾」。固定阈值只能看到 token 计数,看不到语义边界;而模型在生成过程中,对当前步骤是否可安全中止、哪些中间结果必须保留,拥有更直接的信息。
从工程角度看,这是一种「自管理」而非「被管理」的上下文策略。压缩从外部的、与内容无关的定时器,变成了轨迹内部的一个可调用动作。
Scaffold(脚手架) 指包裹在基础模型外部的工程框架,负责提示词模板、工具调用循环、记忆管理、重试与终止条件等。它不改动模型权重,只通过调度逻辑"驾驭"模型行为。常见的 agent scaffold 包括 ReAct、Reflexion、AutoGPT 风格的循环控制器等。固定阈值压缩就是 scaffold 层的典型硬编码策略:统计 token 数,超过 K 就触发摘要。SelfCompact 的激进之处在于,它把这条控制权从 scaffold 转移到模型自身的工具调用能力上——模型通过 function calling 主动请求压缩,scaffold 只负责执行。这意味着上下文管理从"外部调度器的职责"变成"模型的一个 action",与搜索、写代码等动作处于同一决策层面,从而可以和其他推理步骤一起被规划。这一范式转变也呼应了近年 agent 研究里 scaffold 逐步"变薄"、把更多控制权下沉给模型的趋势。
为什么这值得关注
把压缩变成模型可调用的工具,意味着上下文管理不再是 scaffold 的硬编码逻辑,而是可以随任务类型自适应。对多步搜索、长链条推导这类结构差异巨大的任务,固定间隔很容易踩坑,而模型自主判断至少在理论上能对齐任务结构。
代价也很直接:模型需要额外的判断开销,并且它的判断本身可能出错。固定阈值虽然粗暴,但行为可预测;自管理则把一部分确定性换成了灵活性。这个权衡是否划算,取决于任务对「中间结果完整性」的敏感程度。
目前原文给出的信息止于方法框架,缺乏实验数据和失败案例分析。这限制了对 SelfCompact 实际收益的评估——「模型自己决定」在 paper 里成立,在真实长轨迹中是否稳定,还需要更多证据。
上下文窗口(Context Window) 指模型单次推理能容纳的最大 token 数,超出即被截断或报错。即便现代模型窗口已达数十万甚至百万 token,长链路 agent 仍会撞墙,原因不只是容量:注意力成本随序列长度增长(通常近 O(n²)),长上下文还会引发"迷失在中间"(lost-in-the-middle)现象——位于中段的信息被利用率显著下降。因此压缩不只是省 token,更是为维持推理质量服务。判断压缩是否"安全"的关键是语义边界:一次完整的搜索、一段闭合的证明、一个已确认的中间结论,是可以安全折叠的最小单元;而拆开一个正在进行中的推导,则会造成结构损伤。固定阈值看到的只有 token 计数,无法识别这些边界,这正是 SelfCompact 主张由模型自主判断的核心理由。
总结
SelfCompact 针对的是长轨迹 Agent 的一个真实痛点:固定阈值压缩无视轨迹结构,可能丢弃推导中的部分结果。解法是把压缩工具交给模型自主调用,用语义判断替代 token 计数判断。方向清晰,但公开信息尚不足以判断其稳定性与净收益。
相关推荐

AI数字分身实战:用DOT自动追踪Bug与用户反馈
DOTS 团队工程师演示如何用 AI 数字分身 DOT 跨平台收集用户反馈、自动归类问题主题、开线程调查 Bug 根因并直接提交 PR,展示 AI 代理参与缺陷分诊的完整工作流与可审计设计。

晶体管为何不再扁平?从平面到环绕栅极的演进
晶体管从平面到FinFET再到环绕栅极的演进:为何栅极需要从三面包裹到四面环绕,以抑制短沟道效应和泄漏电流,延续摩尔定律。

蜂群思维=单个RL智能体?多臂老虎机等价性证明
一篇论文证明蜂群通过局部模仿进行的集体决策,在数学上等价于单智能体强化学习。N个盲目模仿者相当于N个并行环境采样,有效学习率为1/N。本文解读Maynard-Cross Learning算法的推导与影响。