摘要
本文解读 ACL 2026 论文《OCR-Memory: Optical Context Retrieval for Long-Horizon Agent Memory》。该论文提出光学上下文检索记忆(OCR-Memory),通过融合图像化轨迹存储、Set-of-Mark 视觉锚点与自适应多分辨率主动召回,把长程 agent 的历史经验从文本域整体搬到图像域,其特别之处在于检索阶段模型只输出片段索引、原文再由外部日志逐字取回,从而把「找证据」与「生成证据」彻底解耦。实验表明Mind2Web 上元素准确率 53.8%、步成功率 46.1%、任务成功率 4.8% 全面第一,AppWorld 平均成功率 58.1%(Hard 子集 30.8%),并把每步注入推理模型的文本 token 从 3,980 降到 596(6.7 倍),为长程 agent 记忆给出了一条「用存储与延迟换上下文」的可行路径。
视频讲解:点击观看 B 站视频
- 摘要
- 论文基本信息
- 背景与动机
- 研究主线:从问题到结论
- 基准/方法设计
- 分类全景
- 方法细节
- 实验设计与结果
- 结果对比总结
- 关键发现
- 局限性
- 常见问题(FAQ)
- OCR-Memory 和普通的 RAG 记忆有什么区别?
- 为什么把记忆存成图像反而更省 token?
- 多分辨率降采样会不会让检索变差?
- 这套方法能直接用来替换现有 agent 的记忆模块吗?
- 论文最大的贡献是模型还是机制?
- 参考链接
论文基本信息
| 项目 | 内容 |
|---|---|
| 标题(英文) | OCR-Memory: Optical Context Retrieval for Long-Horizon Agent Memory |
| 标题(中文) | 把 Agent 记忆搬进图像域:用光学检索换更长的历史 |
| 作者 | Jinze Li、Yang Zhang†、Xin Yang、Jiayi Qu、Jinfeng Xu、Shuo Yang、Junhua Ding、Edith Cheuk-Han Ngai†(† 为通讯作者) |
| 机构 | 香港大学(HKU)、北德克萨斯大学(UNT)、筑波大学、延世大学 |
| 会议 | ACL 2026(Long Papers, pp. 10409–10420) |
| arXiv | https://arxiv.org/abs/2604.26622 |
| 项目网站 | 论文未公开项目主页,代码与数据待作者释放 |
背景与动机
长程 agent 的核心矛盾不是推理能力,而是经验的丰富程度与文本上下文窗口之间的冲突。在 Web 自动化、移动端应用操作这类连续任务里,agent 会持续产生推理轨迹、工具调用与环境反馈,这些内容理想上都应该被完整保留;但有限上下文窗口让它既存不下、也读不完。结果是现有方法被迫做压缩,而压缩几乎总是要以信息损失为代价。
现有路线可以归成三类,局限都很具体:
- 检索式记忆(MemGPT、MemoryBank):把历史外置存储、按语义相似度取回片段。它能扩展可用上下文,但相似度匹配本身脆弱——检索到的片段可能主题相关却在逻辑上无关,任务一旦依赖因果或长程依赖就会失效。
- 经验抽象(Voyager、Agent Workflow Memory):把轨迹压成可复用的技能或工作流。它降低了后续推理成本,却丢掉了错误信息、中间状态、细微的对话轮次这类低层细节,而这些恰是调试与忠实回溯所必需的。
- 上下文压缩(ACON、LLMLingua、StreamingLLM):压缩上下文本身,包括潜空间记忆、学习式压缩策略、token 剪枝与流式推理。代价是压缩比与保真度的直接权衡,并且在多模态场景里,视觉布局与结构线索特别容易在纯文本摘要中丢失。
本文的出发点来自 DeepSeek-OCR 的一个观察:密集文本可以被编码成消耗更少上下文的视觉 token,同时保持原始信息的完整保真。既然视觉是高密度的、无损的载体,那么 agent 的长期记忆为什么一定要以文本形式存储?把记忆的介质从文本换成图像,再把检索任务从「生成答案」降级为「选择索引」,就有机会同时拿到高压缩与高保真。
研究主线:从问题到结论
图 1(Mermaid 流程图):OCR-Memory 的研究主线——问题(文本上下文预算受限)→ 动机(摘要与检索都在丢信息)→ 设计(历史渲染成 SoM 图像)→ 方法(模型只预测片段索引)→ 取回(按索引取回逐字原文)→ 结论(两个长程基准全面第一)。
基准/方法设计
OCR-Memory 把 agent 记忆重新定义为一个图像记忆库加索引式检索的问题。记忆库是一个按序排列的条目集合 $\mathcal{M} = (m_1, \dots, m_N)$,其中第 $i$ 个条目是 $m_i = (I_i, S_i, \pi_i)$:$I_i$ 是轨迹片段被渲染并标注后的图像,$S_i = (s_{i,1}, \dots, s_{i,K_i})$ 是按编号存储的原始文本片段,$\pi_i$ 则是时间戳与 episode id 这类元数据。给定新查询 $q$,检索函数读取记忆库并返回一个小的支持片段索引集合 $\hat{S}(q) = g_{\theta}(q, \mathcal{M})$,再由取回函数把它映射回原样存储的文本 $E = \mathrm{Fetch}(\hat{S}(q), \mathcal{M})$。
这里的关键设计是 $\hat{\mathcal{S}}(q)$ 是一个索引集合而不是一段文字,$\mathrm{Fetch}(\cdot)$ 再把这些索引映射回原样存储的文本片段。也就是说,$g_{\theta}$不需要回答问题,它只被优化为「在有限 token 预算下取回能提升下游成功率的证据」,真正的推理仍由主 agent 完成。这个分工把上下文理解与证据生成彻底解耦,从机制上消除了「检索阶段编造内容」的空间。
图 2:OCR-Memory 总览(论文 Fig. 1)。左:交互历史被渲染并压缩成多分辨率图像存入记忆库;中:检索时模型扫描带 Set-of-Mark 视觉锚点的历史图像,只预测相关片段的编号;右:按编号从原日志确定性取回逐字文本,既避免生成式幻觉,也把 token 用量压到最小。
分类全景
把 OCR-Memory 放回 agent 记忆的技术版图,它改变的其实是「记忆用什么介质表示」这一最底层的选择:
图 3(Mermaid 流程图):把 OCR-Memory 放回 agent 记忆的技术版图——它改变的是最底层的一层选择,即记忆用什么介质来表示,从文本摘要与工作流、文本向量检索、潜空间与 KV 压缩,走到图像式的光学记忆。
方法细节
论文给出四个核心设计要素,前两个解决「找得准」,后两个解决「存得起」。
(1)Locate-and-Transcribe:把生成任务改成指针选择。沿用 Set-of-Mark(SoM)提示,每个文本片段在记忆图像中用红色 bounding box 高亮,并标注唯一数字 ID $k\in[1,K_i]$。模型是严格的相关性抽取器,对一张含 $K_i$ 个片段的图像输出一个长度为 $K_i$ 的二值相关向量 $\hat{\mathbf{y}}_i(q)$;把所有记忆图像上的正例汇总,就得到全局索引集合。由于输出被约束为「0 / 1」标签 token,任务从「下一 token 生成」变成了「下一 token 判别」。
(2)召回导向打分:宁多取不漏取。仅靠贪心解码会带来漏检风险,因此论文从标签位的 logits 校准出片段相关概率 $p_{i,k}(q)=\frac{\exp(z_{i,k}(1))}{\exp(z_{i,k}(1))+\exp(z_{i,k}(0))}$,而不是直接使用离散输出。
随后用低阈值 $\tau=0.4$ 与 Top-$K$ 兜底($K=5$)取并集,构成一个最小保证策略:阈值部分保留高置信片段,Top-$K$ 部分保证模型不确定时每张图至少取回 $K$ 段;单次查询最多注入 20 段文本,超出时按概率排序截断。
(3)多分辨率轨迹与主动召回上采样。论文用记忆龄期 $\Delta t_i$ 决定分辨率档位:$\ell_i=\rho(\Delta t_i)$,更老的记忆被降采样成低分辨率缩略图,视觉 token 成本随之下降。关键在于这一步是可逆的:一旦某个降采样的记忆被检索命中,就立即重渲染回高分辨率,并在该 episode 内豁免衰减函数,避免已经被证明有用的证据再次退化。实现上不存储高低分辨率双份副本,只保留原始文本日志与当前图像表示,需要时按需重渲染。
(4)训练:冻结视觉编码器,只微调解码器。骨干是 DeepSeek-OCR (3B),视觉编码器 $\theta_{\mathrm{vis}}$ 完全冻结,语言解码器用 LoRA 适配,挂在 query、key、value 与输出投影上,秩 $r=16$、缩放 $\alpha=32$、dropout $0.05$。数据侧把 HotpotQA 改造为判别任务:丢弃文本答案,只用「支持事实」作为监督,目标是最小化加权二元交叉熵 $\mathcal{L}=-\sum_{n}\sum_{k}[w_+ y_k \log p_k + w_- (1-y_k)\log(1-p_k)]$,并刻意让 $w_+ > w_-$(实际取 $2.0$ 与 $1.0$),因为正样本稀疏且漏检的代价更高。训练时还引入分辨率课程:按 $\pi=[0.3,0.7]$ 在两档分辨率间采样,让模型提前适应部署时会遇到的「模糊旧记忆」。优化用 AdamW、峰值学习率 $1\times10^{-5}$ 的余弦计划、warmup 覆盖 10% 步数、全局 batch 128、训练 3 个 epoch。
实验设计与结果
评测覆盖两个长程基准,记忆模块上下文窗口统一设为4096 token,基线横跨三类记忆范式:Zero-Shot(无历史)、Retrieval(稠密文本 RAG)、MemoryBank、Agent Workflow Memory (AWM) 与 ACON。主推理 agent 在默认设置下是 GPT-4(temperature 0)。
Mind2Web(Cross-Task,元素准确率 / Action F1 / 步成功率 / 任务成功率,%)
| 方法 | Ele Acc | Action F1 | Step SR | Task SR |
|---|---|---|---|---|
| Zero-Shot | 40.1 | 46.2 | 37.9 | 2.2 |
| Retrieval | 41.3 | 48.2 | 38.9 | 2.7 |
| MemoryBank | 43.8 | 49.5 | 39.2 | 3.3 |
| AWM | 49.1 | 55.7 | 42.6 | 4.3 |
| ACON | 48.2 | 54.1 | 41.4 | 4.1 |
| OCR-Memory | 53.8 | 59.2 | 46.1 | 4.8 |
AppWorld(成功率 %)
| 方法 | Easy | Med | Hard | Avg |
|---|---|---|---|---|
| Zero-Shot | 68.7 | 36.2 | 20.9 | 41.9 |
| Retrieval | 72.5 | 44.8 | 21.4 | 46.2 |
| MemoryBank | 81.3 | 50.1 | 24.9 | 52.1 |
| AWM | 84.1 | 53.6 | 27.2 | 55.0 |
| ACON | 84.8 | 55.1 | 28.7 | 56.2 |
| OCR-Memory | 86.2 | 57.4 | 30.8 | 58.1 |
消融一:Set-of-Mark 是否必要(Mind2Web)
| 变体 | Ele Acc | Step SR | 延迟 (s) |
|---|---|---|---|
| OCR-Memory(Full) | 53.8 | 46.1 | 1.7 |
| w/o SoM(改自由文本生成) | 46.5 | 39.2 | 5.3 |
| w/o SoM(改预测 bounding box) | 49.2 | 44.5 | 2.1 |
消融二:多分辨率主动召回(Mind2Web)
| 分辨率策略 | Step SR | Task SR | 平均视觉 token / 帧 |
|---|---|---|---|
| Static Low-Res(512²) | 39.7 | 2.9 | 65 |
| Static High-Res(1024²) | 46.5 | 4.9 | 256 |
| Dynamic(本文) | 46.1 | 4.8 | 82 |
检索级评测与证据忠实度
| 方法 | Recall@1 | Recall@5 | Recall@10 | MRR |
|---|---|---|---|---|
| Dense Text-RAG | 52.7 | 74.3 | 82.1 | 0.61 |
| OCR-Memory | 78.6 | 93.4 | 96.2 | 0.84 |
长上下文检索(RULER / NIAH,Recall@1)
| 上下文长度 | 压缩比 | 准确率 |
|---|---|---|
| 4k | 10.3× | 98.5 |
| 8k | 10.2× | 97.2 |
| 16k | 10.7× | 95.8 |
| 32k | 10.6× | 94.1 |
系统效率画像(Mind2Web,连续记录)
| 方法 | 磁盘 / Episode | 文本 Token / 步 | 检索延迟 / 步 |
|---|---|---|---|
| Text-RAG | 18 KB | 3,980 | 0.3 s |
| OCR-Memory | 1.47 MB | 596 | 1.7 s |
骨干泛化(附录 B)
| 骨干 | 方法 | Ele Acc | Step SR | Task SR |
|---|---|---|---|---|
| GPT-4 | Text Retrieval (RAG) | 41.3 | 38.9 | 2.7 |
| GPT-4 | OCR-Memory | 53.8 | 46.1 | 4.8 |
| Qwen3-32B | Text Retrieval (RAG) | 35.2 | 31.5 | 1.8 |
| Qwen3-32B | OCR-Memory | 48.6 | 42.3 | 3.9 |
图 4:不同上下文 token 上限下的性能对比(论文 Fig. 2)。OCR-Memory 在四个 Mind2Web 指标上一致优于文本检索,且预算越紧差距越大:在 1,024 token 的极端限制下仍可工作,而 Text-RAG 因信息损失明显退化。
结果对比总结
图 5(Mermaid 流程图):结果对比链路——检索级 Recall@1 由 52.7 提升到 78.6,证据忠实度由 84.3% 提升到 100%,每步注入文本 token 由 3,980 降到 596,而这笔收益的代价是单 episode 磁盘占用从 18 KB 涨到 1.47 MB。
关键发现
- 两个基准全面第一,且优势集中在需要精确 grounding 的指标。Mind2Web 元素准确率 53.8%(AWM 49.1%)、步成功率 46.1%(AWM 42.6%)、任务成功率 4.8%;AppWorld 平均成功率 58.1%,Hard 子集 30.8%,高于 Retrieval 的 21.4% 与 AWM 的 27.2%。
- 证据忠实度是这套机制最硬的证据。检索级评测中 Recall@1 从 52.7% 提到 78.6%、MRR 从 0.61 提到 0.84;内容级忠实度达到100.0%,而自由生成式检索只有 84.3%——因为模型只输出索引,原文由日志逐字取回。
- SoM 锚点是精度与效率的共同来源。去掉 SoM 改回自由文本生成,元素准确率掉 7.3 个百分点(53.8 → 46.5),延迟涨到 5.3 秒、约 3 倍;改用 bounding box 预测虽然快(2.1 秒)但只到 49.2。
- 分辨率可以当作预算来花。动态策略用 82 个视觉 token 拿到 46.1 的步成功率,纯高分辨率用 256 个才拿到 46.5,仅差 0.4 个百分点却省下约 68% 的 token;纯低分辨率虽只花 65 个,但步成功率掉到 39.7。
- 收益与骨干无关。把主推理 agent 从 GPT-4 换成 Qwen3-32B,元素准确率仍从 35.2 提到 48.6、步成功率从 31.5 提到 42.3,相对增益被完整保留。
- 长上下文下压缩几乎不损精度。从 4k 到 32k,压缩比稳定在 10.2–10.7×,Recall@1 只从 98.5% 缓降到 94.1%。
局限性
论文对代价的交代相当克制,四条局限都写进了正文:
- 需要额外微调。不像免训练的检索基线,这套框架必须训练一个专用的光学检索模型(LoRA 适配 3B 解码器),带来额外的训练资源开销。
- 渲染与存储更贵。把交互日志渲染成图像比直接存文本更耗算力,视觉历史也更占磁盘——单个 episode 从 18 KB 涨到 1.47 MB。
- 额外显存占用。部署时视觉编码器的参数必须与主语言模型一同常驻内存,这在显存紧张的环境里是真实成本。
- 适用边界明确。收益出现在上下文预算受限的长程任务上;当存储、延迟或显存比 token 更贵时,这笔账可能反转。论文明确把 OCR-Memory 定位为一次资源重分配,而不是「免费的更长记忆」。
还有两处值得读者留意:论文写的是「可扩展存储任意长的历史」,但 NIAH 只验证到 32k;另外 100% 忠实度只表示「取回的文本与存储证据完全一致」,并不代表选中的每一段都相关——作者在正文里专门做了这个限定。
常见问题(FAQ)
OCR-Memory 和普通的 RAG 记忆有什么区别?
普通 RAG 在文本域里按向量相似度取回片段,检索结果可能主题相关但逻辑无关,而且取回的是「文本块」本身;OCR-Memory 先把历史渲染成带编号锚点的图像,让模型只输出片段索引,再由日志逐字取回原文。前者在检索阶段仍可能引入生成式误差,后者从机制上排除了这种误差。
为什么把记忆存成图像反而更省 token?
因为视觉是高密度载体。DeepSeek-OCR 已经证明密集文本可以映射成极少的视觉 token 且保持信息完整;OCR-Memory 在此之上报告 32k 上下文下仍有约 10.6× 压缩、94.1% 的 Recall@1,注入推理模型的文本 token 从每步 3,980 降到 596。
多分辨率降采样会不会让检索变差?
论文用消融回答了这一点:纯低分辨率会让步成功率掉 6.4 个百分点(46.1 → 39.7),因为模型开始读不懂部分词。因此方案不是一味降采样,而是降采样加命中即回升高分辨率:动态策略以 82 个 token 取得 46.1,与纯高分辨率 46.5 只差 0.4 个百分点。
这套方法能直接用来替换现有 agent 的记忆模块吗?
需要满足前提:一是愿意训练一个专用光学检索器(或至少接入一个能输出 SoM 索引的视觉模型);二是能接受更高的存储与检索延迟。如果场景本身显存紧、磁盘小、延迟敏感,论文建议的权衡方向是只对「旧记忆」做光学编码,让新近历史仍走高分辨率路径。
论文最大的贡献是模型还是机制?
机制。它的核心不是更强的视觉模型,而是换掉记忆的存储介质并把检索降级为索引选择:Locate-and-Transcribe 让「找证据」与「生成证据」解耦,于是高压缩与逐字保真不再互斥。这也解释了为什么把推理骨干从 GPT-4 换成 Qwen3-32B 后,相对优势依然保留。
参考链接
- 论文 arXiv 摘要页:https://arxiv.org/abs/2604.26622
- ACL Anthology 正式版:https://aclanthology.org/2026.acl-long.474/
- DeepSeek-OCR: Contexts Optical Compression(光学压缩基础):https://arxiv.org/abs/2510.18234
- Mind2Web: Towards a Generalist Agent for the Web(评测基准):https://arxiv.org/abs/2306.06070
- AppWorld(评测基准):https://arxiv.org/abs/2407.18901
- Agent Workflow Memory(AWM 基线):https://arxiv.org/abs/2409.07429
- ACON: Optimizing Context Compression for Long-horizon LLM Agents(压缩基线):https://arxiv.org/abs/2510.00615
- MemoryBank: Enhancing Large Language Models with Long-Term Memory(检索基线):https://arxiv.org/abs/2305.10250
给大家推荐一款自用写文献综述、无虚构文献的 AI:
🌟复旦大学 FudanNLP 团队自研 切问学术
官网:qiewenpaper.com
覆盖3.6 亿篇可溯源真实中英文文献,能自动整合文献观点生成规范综述
还能挖掘研究创新点、复现实验,配合视频教学,新手快速上手文献综述写作
🍀后记🍀
博客的关键词集中在编程、算法、机器人、人工智能、数学等等,持续高质量输出中。
🌸讨论QQ群:白拾的小屋 (750365700)
⭐B站账号:白拾的物理AI组会(活跃于知识区和动画区)
✨GitHub主页:YhbCode000(工程文件)