ACON:微软的 Agent 上下文压缩框架——从失败中学会"该记什么"

> 来源: arXiv:2510.00615

> 作者: Minki Kang 等(Microsoft Research / KAIST)

> 代码: github.com/microsoft/acon

> 发布时间: 2025-10-01(v2: 2025-10-17)

> 研究时间: 2026-03-30

🎯 一句话版本

ACON 是微软做的一个 Agent 上下文压缩框架——让 AI agent 在长任务中把历史和观察压缩成简报,减少 26-54% 的 token 消耗。核心巧思:对比"用全量上下文能成功、压缩后却失败"的案例,让大模型自己分析"压缩时丢了什么关键信息",然后自动优化压缩策略。

🧨 问题:Agent 的上下文越跑越长

LLM agent 在执行长任务时(如操作 App、办公自动化),每一步都会产生新的 action + observation,上下文不断膨胀。

后果:

现有方案(FIFO 截断、检索、LLMLingua 等)效果都不好——accuracy 从 56% 暴降到 27-45%。

🔧 ACON 的解法:从失败中学习压缩策略

核心思路

不是手写压缩规则,而是让大模型自己学会该保留什么


Step 1: 同一批任务跑两遍
        ├── 全量上下文 → 成功 ✅
        └── 压缩上下文 → 失败 ❌

Step 2: 对比分析——"失败是因为压缩丢了什么?"
        → 生成自然语言 Feedback

Step 3: 用 Feedback 更新压缩指南 P
        → 下次压缩时保留这些关键信息

Step 4: 蒸馏到小模型
        → 运行时开销大幅降低

两阶段优化

UT(Utility Maximization):从压缩失败中学习

CO(Compression Maximization):从压缩成功中学习

两步交替 → 既不丢关键信息,又不留冗余。

蒸馏到小模型

大模型压缩器(gpt-4.1)太贵,所以蒸馏到小模型:

设置详情
学生模型Qwen3-14B / Qwen3-8B / Phi-4
方法LoRA fine-tune(rank=16, α=32)
训练3 epochs, lr=1e-4, AdamW
硬件1× A100 80GB
效果保留 >95% teacher 性能

📊 实验结果

AppWorld(9 个模拟 App,平均 42.5 次 API 调用/任务)

方法AccuracyPeak Tokens变化
**不压缩**56.0%9,930
FIFO(截断旧的)45.8%6,730accuracy -18%
Retrieval(检索)27.4%8,390accuracy -51%
LLMLingua39.3%7,500accuracy -30%
**ACON UTCO****56.5%****7,330****accuracy +0.5%, tokens -26%**

ACON 是唯一一个不降 accuracy 还减了 26% token 的方法。

OfficeBench(办公自动化)

方法AccuracyPeak Tokens
不压缩76.84%7,270
ACON UT74.74%4,930(-32%)

8-objective QA(多目标问答)

方法EMPeak Tokens
不压缩0.36610,350
ACON UTCO0.3654,760(**-54%**)

8-objective QA 上压缩效果最猛——token 砍掉一半多,EM 几乎不变。

蒸馏效果

压缩器AppWorld Acc相对 Teacher
gpt-4.1(teacher)56.5%100%
Qwen3-14B(student)54.2%96.2%
Qwen3-8B(student)53.1%94.0%

14B 蒸馏模型保留了 96% 性能,可以本地跑,不需要调 API。

🏗️ 技术细节

压缩触发条件

Benchmark历史阈值 Thist观察阈值 Tobs
AppWorld4,096 tokens1,024 tokens
OfficeBench4,096 tokens512 tokens
8-obj QA2,048 tokens400 tokens

超过阈值才触发压缩,避免短上下文的不必要开销。

优化器选择

论文测试了多个 LLM 作为 optimizer:

OptimizerAppWorld Acc
**o3****51.2%**
gpt-547.6%
gpt-4.145.2%

o3 作为优化器效果最好——推理能力强的模型更擅长分析"失败原因"。

💡 与我们的关联

1. OpenClaw 的 context compaction 就是这个方向

OpenClaw 内置了 context compaction(当对话太长时自动压缩历史)。ACON 的方法比简单截断/摘要更科学——从失败中学习该保留什么。如果 OpenClaw 未来升级 compaction 策略,ACON 是很好的参考。

2. 我们的 Qwen3.5:27b 可以当蒸馏目标

ACON 蒸馏到 Qwen3-14B 就保留了 96% 性能。我们 ub2 上跑的 Qwen3.5:27b 参数量更大,理论上可以做更好的蒸馏压缩器。这给我们的本地模型增加了一个实用方向——不只是对话,还能做 context 压缩。

3. "对比失败"的方法论可以泛化

ACON 的核心思路——"对比成功和失败,分析差异,生成改进策略"——不只适用于上下文压缩。我们的 agent 工作流、prompt 优化、cron 任务设计都可以借鉴这种 failure-driven optimization。

4. witcheer 的本地压缩实践

之前调研的 witcheer 设置里,用 Qwen3.5:4b 做本地压缩(compression_threshold: 0.50)。ACON 提供了更系统化的方案——不是随便压,而是有指南的压。

📊 评分

维度评分(/10)
技术深度9.0 — 完整的优化框架 + 蒸馏 pipeline + 3 个 benchmark
创新性8.5 — "从失败中学习压缩策略" + 自然语言空间优化
实用性8.0 — 开源代码,可直接复现;但需要先跑对比轨迹
实验质量9.0 — 3 个不同 benchmark、完整 ablation、蒸馏对比
与我们的相关度7.5 — 方向一致(agent context 管理),但我们暂时没有这个级别的需求
**综合****8.5**

报告由深度研究助手自动生成 | 2026-03-30

来源: arXiv:2510.00615 / GitHub