AgentOCR:通过光学自压缩重新构想智能体历史 AgentOCR: Reimagining Agent History via Optical Self-Compression
将智能体交互历史渲染为压缩图像,用视觉 token 替代文本 token,节省 50%+ 消耗
前置知识
LLM 智能体与多轮交互轨迹
基于大语言模型的智能体(Agent)在环境中进行多轮决策:每一步接收观测 $o_t$,生成动作 $a_t$,并将其反馈给环境。完整的交互历史 $h_t = (o_1, a_1, o_2, a_2, \dots, o_t)$ 会随轮次不断增长。在搜索问答等任务中,单条轨迹的 token 数可超过 10k,导致推理延迟和显存占用急剧上升。理解这种「历史累积」的瓶颈是本文的出发点。
AgentOCR 的核心动机就是解决多轮轨迹带来的 token 膨胀问题,不理解这个背景就无法理解本文的压缩策略。
视觉语言模型(VLM)与视觉 Token
视觉语言模型(如 Qwen2.5-VL)能同时处理图像和文本输入。图像经过 ViT 编码器 patchify 后生成视觉 token 序列,每个视觉 token 承载的信息密度远高于文本 token。DeepSeek-OCR 等工作已证明,将文本渲染为图像后,token 数可压缩约 10 倍。本文正是利用这一特性,将文本历史转为视觉历史。
AgentOCR 的技术基础是「视觉 token 比文本 token 更紧凑」这一观察,必须理解 VLM 的 token 化机制。
GRPO(Group Relative Policy Optimization)
GRPO 是一种面向 LLM 的强化学习算法,核心思想是对同一输入采样一组轨迹 $\{\tau_i\}_{i=1}^{G}$,通过组内奖励归一化计算优势估计 $\hat{A}_i$,再用裁剪目标函数更新策略。公式为 $J(\theta) = \mathbb{E}\left[\frac{1}{G}\sum_{i=1}^{G}\frac{1}{T}\sum_{t=1}^{T}\min(\rho_{t,i}\hat{A}_i, \text{clip}(\rho_{t,i}, 1\pm\epsilon)\hat{A}_i)\right]$,其中 $\rho_{t,i} = \frac{\pi_\theta(a_{t,i}|\mathcal{I},h_{t,i})}{\pi_{\theta_{\text{old}}}(a_{t,i}|\mathcal{I},h_{t,i})}$ 是重要性采样比率。GRPO 因实现简单、无需 critic 网络而被广泛采用。
本文使用 GRPO 作为默认 RL 算法训练 AgentOCR,理解其机制才能理解压缩感知奖励如何融入训练。
KV Cache 与长上下文推理开销
Transformer 推理时,每一步需要计算自注意力,其复杂度与序列长度呈超线性关系。KV Cache 缓存已计算的 key-value 对以避免重复计算,但随着上下文增长,显存占用和预填充(prefill)延迟仍会急剧上升。当 agent 历史积累到数万 token 时,KV Cache 成为主要瓶颈。
AgentOCR 减少 token 数的直接收益就是降低 KV Cache 开销,这是论文量化指标的核心目标。
内容哈希与缓存机制
哈希(Hash)是一种将任意长度数据映射为固定长度摘要的函数,相同内容产生相同哈希值。本文将历史文本分割为段落后,对每个段落计算内容哈希作为缓存键(cache key),实现「同一段落只渲染一次」的去重逻辑。这是工程上经典的 memoization 思想在视觉渲染中的应用。
Segment Optical Caching 的核心就是基于哈希的缓存查找,不理解哈希机制就无法理解缓存如何避免重复渲染。
研究动机
基于 LLM 的智能体在多轮交互中面临严重的 token 膨胀问题。以搜索问答任务为例,智能体需要与搜索引擎进行多轮对话,每轮返回的网页摘要、推理链等文本内容不断累积,单条轨迹的 token 数可超过 10k。这种快速增长的文本历史不仅耗尽了 LLM 有限的上下文窗口,还导致推理延迟和计算成本急剧上升,因为 Transformer 的注意力计算复杂度与序列长度呈超线性关系。在 RL 训练场景下问题更加严峻:GRPO 等算法需要对每条轨迹的完整历史 $h_t$ 计算梯度,当 $h_t$ 包含数千 token 时,训练的计算和显存开销变得难以承受。现有方法如稀疏注意力、提示压缩等虽有一定效果,但本质上仍在文本模态内操作,压缩效率受限。
本文的目标是本文的目标是提出一种全新的历史表示范式:将智能体的交互历史从文本形式转换为视觉图像形式,利用视觉 token 远高于文本 token 的信息密度来大幅压缩 token 消耗。具体而言,作者希望:(1) 在保持文本智能体 95% 以上任务性能的前提下,将 token 消耗降低 50% 以上;(2) 通过分段光学缓存机制消除重复渲染开销,实现 20 倍以上的渲染加速;(3) 通过智能体自压缩机制,让智能体学会在推理过程中自适应地调整压缩率,在任务成功率和 token 效率之间取得最优平衡。
与已有工作不同的是,本文的独特切入角度在于「重新构想」(reimagining)智能体历史的表示形式。不同于在文本模态内进行压缩的传统思路(如提示压缩、稀疏注意力),AgentOCR 将问题转化为跨模态压缩——利用视觉模态天然更高的信息密度。这一思路源于 DeepSeek-OCR 等工作的启发:文本渲染为图像后 token 数可压缩约 10 倍。但本文的关键创新在于将这一静态压缩能力升级为动态的、智能体可控的压缩过程。智能体不再被动接受固定格式的历史输入,而是主动决定每一步的压缩精度,通过 RL 训练学会在「省 token」和「保性能」之间做策略性权衡。这种「智能体驱动的自适应压缩」是与所有现有方法的本质区别。
核心方法
AgentOCR 的整体思路可以用一个类比来理解:与其把会议纪要逐字逐句地念给同事听(文本历史),不如把纪要拍成照片让他自己看(视觉历史),照片比文字更紧凑。技术路线上,AgentOCR 包含三个核心组件:(1) 光学记忆编码——将交互历史渲染为紧凑的 RGB 图像;(2) 分段光学缓存——将历史拆分为独立段落,通过内容哈希实现「同一段落只渲染一次」的缓存机制;(3) 智能体自压缩——智能体通过 RL 训练学会动态调整压缩因子 $c_t \geq 1$,在推理时主动选择合适的压缩率。训练时使用 GRPO 算法,奖励函数同时包含任务奖励和压缩感知奖励,通过间歇性强化调度(每 $K$ 轮注入一次压缩奖励)避免智能体过度压缩。
AgentOCR 的核心创新点是将 OCR 从被动的「事后识别」转变为主动的「事前压缩」。传统 OCR 是将图像中的文字提取出来供下游使用,而 AgentOCR 反其道而行之——将文字主动渲染为图像以压缩 token。更关键的是,智能体本身参与压缩决策:它通过生成 `$c_t$` 标签来指定压缩因子,系统据此对图像进行空间下采样,尺寸变为 $\left(\lfloor H_{t+1}/\sqrt{c_t} \rfloor, \lfloor W_{t+1}/\sqrt{c_t} \rfloor\right)$。这与已有方法的本质区别在于:(1) 信息压缩不是固定的预处理步骤,而是智能体策略的一部分;(2) 压缩率随任务阶段和上下文动态变化;(3) 通过 RL 训练,智能体学会了在「高保真」和「高压缩」之间做最优决策,而不是人工设定固定参数。
方法步骤详情
AgentOCR 的执行流程分为以下步骤:第一步,维护外部记忆缓冲区 $\mathcal{M}_t$,存储到第 $t$ 步为止的所有交互记录 $(o_t, a_t)$,通过 Fetch 操作序列化为文本历史 $h_t$。第二步,将 $h_t$ 通过 Split 操作分割为独立段落 $(\ell_{t,1}, \dots, \ell_{t,K_t})$。第三步,对每个段落查询缓存 $\mathcal{C}^{(e)}$:计算内容哈希 $k(\ell)$,若缓存命中则直接复用已渲染的图像 $I(\ell)$;若缓存未命中,则调用渲染器 $\mathcal{R}(\ell; \psi)$ 生成 RGB 图像并存入缓存。第四步,将所有段落图像按顺序垂直堆叠为完整的光学历史图像 $I_t = \text{Stack}\left(I(\ell_{t,i})\right)_{i=1}^{K_t}$。第五步,将任务指令 $\mathcal{I}$ 和历史图像 $I_t$ 作为多模态输入送入 VLM 策略网络,采样动作 $a_t \sim \pi_\theta(\cdot | \mathcal{I}, I_t)$ 和压缩因子 $c_t$。第六步,执行动作获取新观测,更新记忆缓冲区。训练时,使用压缩感知奖励 $\tilde{r}_t = r_t + \lambda r_t^{\text{comp}}$,其中 $r_t^{\text{comp}} = \ln(c_t)$ 仅在成功轨迹上生效。
技术新颖性
AgentOCR 的技术新颖性体现在三个层面。第一,范式创新:首次将智能体历史从「文本序列」重新定义为「视觉图像序列」,开辟了视觉模态作为智能体记忆压缩载体的新方向。第二,工程创新:Segment Optical Caching 机制将渲染复杂度从 $O(K_t)$(每步渲染全部历史)降低到 $O(U_t)$(仅渲染缓存未命中的新段落),在典型工作负载中 $U_t \ll K_t$,实现 20.79 倍渲染加速和 26.82% 的峰值内存节省。第三,算法创新:Agentic Self-Compression 将压缩率作为可学习的策略变量,通过间歇性强化调度(每 $K=5$ 轮注入一次压缩奖励)避免贪婪行为。实验表明,密集奖励($K=1$)导致压缩因子飙升至 4.91、成功率暴跌至 45.3%,而间歇调度($K=5$)将压缩因子稳定在 1.28、成功率保持在 78.2%。这种「让智能体学会何时压缩、压缩多少」的机制是本文最核心的算法贡献。
实验结果
本文在 ALFWorld(具身任务)和搜索问答(工具使用任务)两个基准上进行了全面评估,使用 Qwen2.5-VL-3B/7B-Instruct 作为骨干模型。核心发现如下:(1) AgentOCR 在保持 95% 以上文本智能体性能的同时,将 token 消耗降低 50% 以上。在 ALFWorld 上,3B 模型达到 78.2%(vs 文本 79.9%),7B 模型达到 81.2%(vs 文本 81.8%),平均 token 消耗分别降低 61.7% 和 54.7%。在搜索问答上,3B 模型达到 34.2%(vs 文本 36.4%),7B 模型达到 40.1%(vs 文本 41.9%),峰值 token 消耗分别降低 73.8% 和 80.9%。(2) 消融实验证实 RL 训练对视觉历史智能体至关重要:未经 RL 训练的 OCR 基线在 ALFWorld 上仅达 16.2%(3B)和 25.3%(7B),远低于文本基线,说明 VLM 需要通过 RL 对齐才能有效利用压缩视觉历史。(3) 压缩效率分析表明,压缩因子 $c_t$ 在 1.0-1.2 范围内(token 节省约 55%)是「安全区」,模型保持 95% 以上文本性能;超过此阈值后性能非线性衰减,ALFWorld 在 $c_t=2.0$ 时仍保留 87.2% 性能,而搜索任务暴跌至 66.8%,反映了文本密集任务对视觉保真度更敏感。(4) Segment Optical Caching 实现 20.79 倍渲染加速,平均渲染时间从 3509ms 降至 169ms,且随步数增长呈负斜率(-1.23ms/step),说明缓存随使用逐渐生效。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| ALFWorld(具身任务,7B 模型) | 平均成功率 (%) | 81.2% | Text+GRPO: 81.8% | 保持 99.3% 文本性能,token 消耗降低 54.7%(平均)/ 56.6%(峰值) |
| 搜索问答(7B 模型) | 平均精确匹配 (%) | 40.1% | Text+GRPO: 41.9% | 保持 95.7% 文本性能,token 消耗降低 50.7%(平均)/ 80.9%(峰值) |
| Segment Optical Caching | 平均渲染时间 (ms) | 168.77 ms | No Cache: 3509.39 ms | 20.79 倍加速,峰值内存节省 26.82% |
| 自压缩消融(ALFWorld 3B) | 成功率 (%) / 平均视觉 token | 78.2% / 381.7 | 无自压缩: 78.4% / 458.1 | 成功率持平,视觉 token 减少 16.7% |
局限与改进
作者在论文中坦诚讨论了三个主要局限:(1) 模型依赖:AgentOCR 使用的是通用 VLM(Qwen2.5-VL 系列),并非专门为 OCR 密集任务设计的模型。论文未评估在不同视觉 token 化策略或 patch 分辨率的 VLM(如 DeepSeek-OCR)上的表现,不同架构的归纳偏置可能导致性能和压缩效率差异。(2) 渲染器敏感性:当前使用固定的渲染超参数(字体、行距、颜色、分辨率),未系统探索不同渲染设置对智能体推理的影响。次优渲染可能降低文字可读性或扭曲布局线索。(3) 适用范围:当前设计假设历史主要由文本组成,但实际智能体场景常涉及 GUI 截图、科学图表、结构化表格等视觉元素,AgentOCR 对这类多模态历史的压缩策略尚未探索。此外,本文作者补充几点观察:实验仅在两个基准上验证,泛化到更复杂的真实场景(如网页浏览、代码调试)有待验证;压缩因子的搜索空间 $c_t \in [1.0, 2.0]$ 相对保守,更大压缩率下的行为未充分探索;训练成本方面,虽然推理效率提升显著,但 RL 训练本身需要多轮轨迹采样,训练阶段的计算开销未详细讨论。
独立分析的弱点
本文存在几个可改进的弱点:(1) 渲染器优化空间未被充分挖掘。当前使用简单的文本渲染器,未探索优化字体大小、行距、颜色编码等参数对可读性的影响。一个自适应渲染器——根据文本密度和任务类型动态调整渲染参数——可能进一步提升压缩效率。(2) 压缩因子的搜索空间有限。实验中 $c_t \in [1.0, 2.0]$,对应约 50-67% 的 token 节省。但理论上更大的压缩率(如 $c_t=4.0$)可能适用于低敏感度任务,需要更精细的任务自适应策略。(3) 缓存粒度固定为文本行级别,未探索更灵活的分段策略(如按语义单元、按对话轮次分段),可能在某些场景下不是最优的。(4) 缺乏与文本压缩方法的直接对比。论文未与 RAPTOR、AutoCompressor 等提示压缩方法进行比较,难以判断 AgentOCR 相对纯文本压缩方法的优势幅度。(5) 训练效率方面,GRPO 需要采样多条轨迹,AgentOCR 的训练成本可能高于文本智能体,但论文未提供训练时间对比。
未来方向
作者提出和基于成果可延伸的未来方向包括:(1) 混合存储架构——将视觉历史与文本关键信息(如实体、数值)结合,利用各自模态的优势。(2) 统一多模态接口——探索将 GUI 截图、图表、表格等原生视觉内容与文本渲染图像统一压缩的方法。(3) 更先进的 VLM 评估——在 DeepSeek-OCR 等专门为 OCR 任务设计的模型上测试 AgentOCR,可能释放更大的压缩潜力。(4) 跨任务泛化——将 AgentOCR 扩展到更复杂的智能体场景,如网页浏览(需要处理 HTML 渲染)、代码调试(需要处理代码语法结构)、多智能体协作(需要压缩多个智能体的历史)。(5) 自适应分段策略——根据语义边界而非固定规则分割历史,可能提升缓存命中率。(6) 在线学习压缩策略——让智能体在部署阶段持续优化压缩决策,而非仅依赖训练阶段的离线策略。
复现评估
论文提供了开源代码(GitHub: langfengQ/AgentOCR),这大大提升了可复现性。使用的骨干模型 Qwen2.5-VL-3B/7B-Instruct 是公开可用的,基准数据集 ALFWorld 和搜索问答(NQ、TriviaQA 等)也是标准公开数据集。训练使用 GRPO 算法,论文给出了关键超参数($\lambda=0.01$、$K=5$),并在附录 B 中提供了更多训练细节。复现所需算力方面,7B 模型的 RL 训练需要多卡 GPU 环境,但论文未明确说明具体的硬件配置和训练时长。渲染器实现细节(字体、分辨率等)在代码中应该可以找到。总体而言,具备中等算力资源的研究团队应该能够复现主要结果,但完整复现可能需要仔细对齐渲染参数和 RL 训练细节。
论文图表