首页 › ai-agents › 压缩即失忆:自主体上下文税实测

压缩即失忆:自主体上下文税实测

概述

把上下文窗口从 20 万 token 扩到 200 万,并不能让自主智能体跑得更久——Chroma 在 18 个前沿模型上实测,无一例外都在窗口填满前就退化,可靠性拐点出现在 60–70%。真正杀死长程自主体的不是"装不下",而是为了不被装满而做的每一次压缩:把 36 611 条生产消息喂给三家厂商的原生摘要,文件改动轨迹的保真度只拿到 2.19–2.45/5。本文以 Factory.ai、ACON(arXiv:2510.00615)、Mem0/LOCOMO、Claude Code、Cursor 的实测数据为骨架,拆解滚动摘要、选择性驱逐、锚定增量、失败驱动优化、层级记忆 OS 化、情景检索六条压缩路径的"失忆税",给出不同任务长度下的压缩选型账本。

一、上下文腐烂的三种死法

在谈压缩之前,必须先厘清自主智能体为何要压缩。三条相互独立的失效路径,对应完全不同的应对手段。

迷失中段(lost-in-the-middle) 是最被机械性证实的:Liu 等人在 TACL 上证明,当答案文档落在 20 篇文档堆的中段,多文档问答准确率暴跌 30 个百分点以上。这并非小模型毛病——长上下文模型反而更甚,且会话越长越严重。自主体的"早期架构决策"恰好会沉到注意力最弱的中段。

上下文漂移(context drift) 统计上最致命:2025 年一项行业调查把 65% 的企业智能体失败归因于漂移或记忆丢失,而非 token 耗尽。会话开头写下的假设("接口是 /v1/users")在条件变更后仍然存留;失败的工具调用把错误状态写进历史;重试循环堆叠的失败态文本挤掉了成功态。智能体从不报错,只是慢慢按一张腐烂的地图行动。

上下文投毒(context poisoning) 是带恶意的漂移。2026 年初披露的 MINJA 攻击分四步:注入、吸收、休眠、触发。EchoLeak 事件中,邮件助手在收到被污染的"会议纪要"后,静默外泄财务数据长达数月——窗口越大,攻击面越大,因为几个月前的投毒内容依然存活。

实测结论:Chroma 的 18 模型全部退化,200K 窗口的实际可用量约 130K。压缩不是可选项,而是自主体能否活过第 50 步的前提。

二、对比表:六条压缩路径的失忆账本

压缩路径 代表实现 触发机制 失真程度 缓存友好度 生产采用
滚动摘要 Claude Code /compact、Anthropic compact_20260112 ~150K 输入 token(约 98% 有效窗口) 高(自由文本丢细节) ❌ 强语义断点 最广
选择性驱逐 / LRU Pi 去重插件、vLLM 前缀缓存、SGLang RadixAttention 去重/越界 中(位置断裂) ✅ 天然友好 推理层
锚定增量摘要 Factory.ai anchored T_max 触发,T_retained 截断 低(只压新增段) ⚠ 带 cache_control 编码智能体
失败驱动优化 ACON(arXiv:2510.00615) 连续优化 + 指南固化 极低 ⚠ 研究/前沿
预算感知调度 BATS HIGH/MED/LOW/CRITICAL 四档 自适应 ⚠ 实验性
层级记忆 OS 化 Letta(MemGPT)、Mem0 冷热分离常驻 极低(外迁不丢) ✅ 主上下稳定 平台型
情景检索 Bedrock AgentCore、Letta archival 每步语义查询 取决于召回率 ✅ 长会话

三、滚动摘要:原生方案的失忆税

最广部署、也最容易踩坑。阈值一到,调用模型把前缀压成一段叙事,替换原始历史。Anthropic 的服务端 API compact_20260112 与 Claude Code 的 /compact 都属此类,默认触发约 150K 输入 token,摘要提示词要求"写下任何有用的东西,包括状态、下一步、学到的教训",并设 pause_after_compaction: true 让集成方能再注入最近 3 条工具结果。

它的致命伤是信息丢失不可逆。Factory.ai 用 36 611 条生产消息做横评,三家原生摘要(Factory、Anthropic、OpenAI)在"文件改动轨迹"这一项上全部只拿到 2.19–2.45/5。更刺眼的是 OpenAI:压到 99.3% 却质量垫底——丢掉的细节要靠重新拉取补回,token 省下的又被重新花掉。结论一句话:压缩率是错的指标,单位保留 token 承载的任务相关信息密度才是。

对编码智能体,Factory 列出"绝对不能丢"清单:会话意图与既定需求、高层动作序列摘要、制品轨迹(文件改动、测试结果)、能回访被截断工具输出的"面包屑"。自由文本摘要天生不擅长保留这些。

四、选择性驱逐:零合成成本的隐性断裂

不摘要,只丢。LRU 优先扔最旧的工具结果;重要性评分按累积注意力权重("重击者"启发式)、key 向量 L₂ 范数或注意力熵取 top-K。NACL(ACL 2024)把随机驱逐与代理 token 注意力估计结合,Ada-KV 按注意力头自适应分配 KV 预算。

落到智能体框架层,体现为更朴素的规则:重复的工具结果(同一文件读了两次)只留最近一次;已解决的报错信息被清除。Claude Code 的 Pi 动态上下文剪枝扩展正是干这两件事。

优点是零合成成本、无需额外模型调用,KV 级驱逐甚至藏在推理内部,不产生 API 往返。但缺点同样尖锐:驱逐留下位置空洞与断裂的引用链,会让模型困惑;基于注意力的评分是循环论证——某个 token 因前几轮无关而从未被检索,到新子任务时可能恰恰最关键;LRU 还会扔掉早期架构决策这种"冷但致命"的内容。生产侧见于 vLLM 自动前缀缓存、SGLang RadixAttention,以及 Cursor 借第三方扩展做的窗口修剪。

五、锚定增量摘要:只压"新掉落"那一段

Factory.ai 的解法专治滚动摘要"每次重压整段前缀"的烧钱问题:只对新掉落的消息段做摘要并合并进持久化摘要,已摘要过的段绝不重处理。

它引入两个阈值:T_max(压缩触发线)与 T_retained(压缩后保留上限),两者之间的"压缩带"可调——带宽则压缩次数少、驱逐狠;带窄则压缩勤、力度柔。对调试类工作流,Factory 建议用更高的 T_max,因为错综复杂的状态依赖会贯穿整段会话,这跟规划型任务很不一样。

实测横评里它最均衡:上下文感知 4.01/5(Anthropic 3.56、OpenAI 3.64)。代价是实现复杂度——要维护"已压/未压"边界与持久摘要状态机,并非开箱即用。

六、失败驱动优化:ACON 把压缩当连续优化

ACON(arXiv:2510.00615)是最具技术含量的路径。它不按时间表压缩,而是把压缩当成连续优化问题:用完整上下文跑一遍、用压缩上下文再跑一遍、对比结果,再用 LLM 分析"压缩丢掉了什么导致失败",把那些失败诱因固化为永久压缩指南,指导后续压缩。

数据相当漂亮:峰值 token 用量降 26–54%,准确度几乎零损失(AppWorld 上 56.5% vs 基线 56.0%)。对小模型更惊艳——Qwen3-14B 在 ACON 指南下准确度反升 32–46%,因为剔除干扰噪声的收益不亚于保留信号。

一个关键细节:压缩历史(摘要过去轮次)可能因 KV 缓存失效反而抬高总算力成本。ACON 发现压缩"观察"(即工具输出)更划算——工具结果往往体积大、信息密度低、很少被逐字重访。这给所有做压缩的人提了个醒:压哪里,比压多少重要。

七、预算感知调度:BATS 的四档变速箱

BATS(Budget-Aware Token Scheduling)给滑动窗口装了变速箱,按剩余 token 预算切四档:HIGH(≥70%)、MEDIUM(30–70%)、LOW(10–30%)、CRITICAL(<10%)。迭代数跨过阈值时,历史轨迹被替换为简练摘要,压缩烈度正比于预算压力。

效果是智能体低载时正常运转,逼近红线时自动收紧。它更适合规划型任务(早期目标需长期保留、但中段轨迹可压),对调试型那种"任意一步都可能回溯早期状态"的场景则不如锚定增量安全。BATS 目前偏实验性,但它把"压缩烈度随预算自适应"这个理念讲清楚了——这是很多生产框架悄悄在做却没显式参数化的事。

八、层级记忆 OS 化:把上下文当内存层级

最有架构雄心的路径,把上下文管理重写成操作系统的内存层级:快速昂贵的在上下文存"立刻要用的",慢速便宜的外部存"其余一切"。

Letta(MemGPT) 最成熟,分三种记忆:Core Memory(带标签、大小上限、只读标志的在上下文记忆块,智能体用工具修改)、Archival Memory(向量库长期存储,按需检索)、Recall Memory(可搜索的对话历史)。2026 年它新增 Context Repositories——git 背书的记忆文件系统(内部名 "MemFS"),支持版本化记忆管理,多个智能体可共享同一记忆块,催生"睡眠时计算"模式:后台智能体在主智能体空闲时更新它的记忆。

Mem0 更工程务实,拿准确度换效率。ECAI 2025 在 LOCOMO 上对 10 种记忆方案做基准:全上下文 72.9% 准确度、9.87 秒中位延迟、每对话约 26 000 token;Mem0 选择性记忆约 67% 准确度、1.44 秒 p95、约 2 600 token——token 省 90%、快 91%。图增强变体 Mem0g 把准确度差距收窄到 5 个百分点内。规模上 Mem0 从 2025 Q1 的 3500 万次 API 调用涨到 Q3 的 1.86 亿次(约月增 30%),并被 AWS 选为 Agent SDK 的独家记忆提供商。

九、情景检索:RAG-over-turns 的召回前提

不把过往轮次留在活跃上下文,而是存进外部向量库,按需检索。每轮(或轮块)被嵌入索引;新一步时,智能体对索引发语义查询,只把 top-K 相关轮注入提示。这正是 LoCoMo 基准的评测模型——它要求智能体回答关于 300 轮、35 段会话的问题,远超任何窗口。

2025 年 2 月的立场论文《Episodic Memory is the Missing Piece for Long-Term LLM Agents》主张:情景记忆的单次学习属性(记录带时空上下文的特定过往事件)恰是当前智能体所缺,而"对轮次做 RAG"是最接近的工程近似。

优点是近乎无限的历史深度,只拉真正需要的,活跃上下文小而精,能扩展到跨周会话。但致命前提是召回准确度:一次漏召回等于一次静默失忆。Factory.ai 评测指出,RAG 基线在事实问答上表现好,却在偏好推断与因果链上失败——这些需要跨众多散落轮次的隐式推理,而非单段相关段落。此外每步检索都加延迟,并引入向量库依赖。生产侧见于 Bedrock AgentCore Memory(Qdrant 后端)、Letta archival、AWS LangGraph + Redis 向量检索。

十、压缩与缓存的根本张力

一个被低估的暗账:压缩与提示缓存天然对立。缓存要求前缀稳定;压缩恰恰是对前缀的硬语义断点,会让此前所有缓存前缀作废。一次 150K 触发的压缩,意味着下一轮要重新"暖"那块前缀,缓存的省钱效应瞬间清零。

缓解办法是把缓存断点放在易变对话区之前——稳定系统提示前缀 + append-only 断点。Anthropic 的服务端 API 正是出于这个原因,在压缩块上原生打了 cache_control 标记。这意味着最优压缩策略不是"压得最狠",而是"压得最稳":每次压缩尽量只动尾部、保住头部前缀的缓存命中。Zylos 给出生产栈模板:稳定系统前缀 + append-only 缓存断点 → 约 75% 阈值做结构化压缩 → 长寿事实外迁外部记忆 → 跨会话用情景检索续接。

十一、压缩栈架构图

flowchart TB
    TASK["用户长程任务"] --> LOOP["自主体 Agent Loop"]
    subgraph CTX["上下文窗口 200K · 实际可靠 ~130K"]
        direction TB
        L1["L1 系统提示+工具定义 · 缓存命中区"]
        L2["L2 摘要块 · 压缩产物 · 有损"]
        L3["L3 最近K轮 · 原文 · 连贯区"]
    end
    LOOP <-->|每步读写| CTX
    L2 -->|每次压缩 失效缓存前缀| WARN["⚠ 缓存断点税"]
    subgraph EXT["外部记忆 旁路存储"]
        direction LR
        M1["Core 可编辑块"]
        M2["Archival 向量库·按需检索"]
        M3["Recall 可搜索历史"]
    end
    LOOP <-->|冷热分离不丢数据| EXT
    LOOP -->|~75% 或 T_max 阈值| SCHED["压缩调度"]
    subgraph SCHED["压缩调度 多策略可插拔"]
        direction LR
        S1["滚动摘要"]
        S2["锚定增量"]
        S3["ACON 失败驱动"]
        S4["LRU 驱逐"]
    end
    SCHED --> L2
    SCHED -->|外迁冷数据| M2
    M2 -->|语义查询召回| LOOP

十二、生产团队真正在做什么

文档与生产实现之间存在显著落差,值得逐家看清。

Anthropic Claude Code 用混合即时加载架构:CLAUDE.md 文件作为静态上下文预加载,但智能体随后用 glob/grep 动态拉取文件内容,按需取用。原则是——在上下文里只留轻量标识(文件路径、存储查询、链接),运行时动态加载而非预载全部。对长程任务,推荐 Harness 显式外置进度跟踪(JSON 特性清单、git 提交史、claude-progress.txt),让每次会话能从状态文件冷启动,而不依赖隐式上下文连续性。

Cursor 的动态上下文发现经生产 A/B 测试,在调用 MCP 工具的运行中把总 token 降了 46.9%:智能体静态只收工具名,完整描述按需发现;长工具输出写盘,智能体用 tail + 选择性读取而非整段入上下文;聊天历史存成可搜索文件,压缩有损时能 grep 历史找回细节,而不是从退化上下文里重推。

Factory.ai 把压缩量化为 T_max / T_retained 两阈值,并按工作流类型调参。AWS 2025 年 5 月选 Mem0 作 Agent SDK 独家记忆层。这些都不是单一技术胜利,而是按任务画像选压缩组合的胜利。

十三、可观测性:在腐烂杀死智能体前发现它

上下文管理最难的部分是知道它何时在失效,而当前工具基本是定性的。从业者常用的信号包括:模型开始重复请求同一工具结果(LRU 驱逐过头的征兆)、引用早前已撤销的决定(漂移)、或对近期明确指令反应迟钝(中段淹没)。一个被反复强调的实践是把压缩链显式化——每次压缩落一个可审计的摘要块、记录被外迁/丢弃了什么,让"失忆"从静默变成可追溯。Factory 的 36 611 条消息评测之所以有价值,正是因为它把"制品追踪 2.19/5"这个失败量化了出来;没有这种评测,压缩策略的优劣全凭体感。

推荐方案

短会话(<30 步,单文件级任务):不压缩。直接用原生滚动摘要兜底即可,Cursor/Claude Code 默认行为足够。省下的工程复杂度比省下的 token 值钱。

中会话(30–150 步,多文件调试):上锚定增量摘要 + 显式 T_max/T_retained 压缩带。务必保留 Factory 的"必保清单"(意图、动作序列、制品轨迹、面包屑),并把缓存断点压在系统提示之后。若预算敏感,叠加 Pi 式去重驱逐先削冗余。

长程任务(跨小时/跨天):必须 OS 化层级记忆。Core 块存活跃事实,Archival 向量库存冷数据,Recall 存可搜索历史;进度外置为状态文件支持冷启动。Mem0(省 token)或 Letta(保真度 + sleep-time compute)二选一,看你是要省钱还是要可追溯。

跨会话/需长期记忆的产品:情景检索打底(Bedrock AgentCore 或自建),但只在事实问答上信任它——偏好与因果推断必须靠 Core 记忆块显式维护,不能赌召回。

前沿玩家:关注 ACON 的失败驱动闭环与 BATS 的预算自适应调度,两者代表了压缩从"按阈值一刀切"走向"按任务画像连续优化"的方向。

一句话底线:压扁即失忆——压缩率从不是目标,单位保留 token 的任务信息密度才是。任何只汇报"压到 X%"而不汇报"丢了哪些制品轨迹、缓存重暖几次"的压缩策略,都是在用未来的隐性故障换眼前的 token 账单。

参考来源

  1. ACON: Optimizing Context Compression for Long-horizon LLM Agents (arXiv:2510.00615) — 失败驱动压缩优化,26–54% token 削减近乎零准确度损失,观察压缩优于历史压缩
  2. Agent Context Compaction for Long-Running Sessions — Zylos Research — O(N²) token 成本、四策略全景、缓存与压缩张力、75% 阈值生产栈
  3. Agent Context Compression 2026 — AgentMarketCap — Chroma 18 模型实测、60–70% 可靠性拐点、65% 漂移致败、BATS 四档调度
  4. Context Management for Deep Agents — LangChain — Deep Agents SDK 的卸载、摘要与上下文腐烂治理
  5. Context Window Management for Long-Running Agents — Machine Learning Mastery — 滑动窗口、摘要、检索三策略的权衡与选型
  6. Factory.ai / Letta / Mem0 评测数据汇编 — 36 611 条消息横评(制品追踪 2.19–2.45/5)、Mem0 LOCOMO 基准(省 90% token)、Cursor 动态发现降 46.9%

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入