VISOR:Agentic Visual RAG 的证据空间与长程搜索纠偏
- 论文:Agentic Visual Retrieval-Augmented Generation via Iterative Search and Over-horizon Reasoning
- arXiv:https://arxiv.org/abs/2604.09508
- 我今天为什么补这篇:它和 10:00 轻量结论一致,核心价值不在“再做一个多模态问答器”,而在于把 agentic visual RAG 里两个很真实的系统问题拆开处理:跨页证据稀疏 与 长程搜索漂移。
一句话结论
值得读。 如果你在看 document agent、visual RAG、browser/computer-use 式长链检索,这篇最值得拿走的不是单个 benchmark 分数,而是它把“证据怎么积、上下文怎么控、视觉动作怎么纠偏”做成了一套比较完整的单 agent 方案。
先讲我的判断
作者声称
作者认为现有 agentic VRAG 有两个核心瓶颈:
- Visual Evidence Sparsity:关键证据分散在多页里,而且单页内常常只在一个很小区域里。
- Search Drift in Long Horizons:多轮检索后,大量视觉 token 会把早先证据淹没,agent 越搜越偏。
他们提出 VISOR,核心组件包括:
- Evidence Space:显式累积跨页证据。
- Visual Action Evaluation and Correction:对 crop / zoom 这类视觉动作做评估与纠偏。
- Dynamic Trajectory + Sliding Window:只保留最近少量原始交互,把累积证据固定在上下文顶部。
- Intent Injection:每轮把原始问题重新注入,防止搜索目标漂移。
- 训练上用 SFT + GRPO-based RL,并专门处理动态上下文里的 masking 和 credit assignment。
实验观察
从正文可确认的主结果看,VISOR 确实不只是概念包装:
- SlideVQA 多跳问题:VISOR 53.62,明显高于 VRAG-RL 43.10 和 EVisRAG 42.32。
- ViDoSeek:作者强调提升主要出现在 Extraction 类任务,VISOR 相比 VRAG-RL 高 12.89 个点,Logic 类提升只有 1.86。
- MMLongBench:在 Chart 和 Layout 子任务上分别比 EVisRAG 高 2.81 和 3.39。
- 消融实验:去掉 Evidence Space 掉点最大;而 Sliding Window 必须和 Evidence Space 配合才真正有效。
我的判断
这篇的真正增量不是“让 agent 多搜几轮”,而是回答了两个系统设计问题:
- 跨页证据怎么保存,才能不被每一轮新图片冲掉?
- 多轮视觉检索里,怎么避免上下文越来越长、动作越来越乱?
所以我会把它看成一篇 agent memory / context management / action correction 论文,而不只是 visual QA 论文。
问题定义:为什么 agentic visual RAG 比文本版更难
文本 RAG 的长程问题,很多时候是“检索太多段落,模型注意力分散”。
但视觉 RAG 更麻烦:
- 一张文档页图像本身就很贵,视觉 token 很快把上下文撑满。
- 有用信息常常不在整页,而在一张图、一小块表格、一个局部坐标轴里。
- 多页证据必须显式整合,否则 agent 很容易只盯住当前页,忘了前面看过什么。
作者这篇的出发点其实很实:不是 retrieval 不够,而是 retrieval 之后的信息组织和行动控制出了问题。
方法拆解
1. Evidence Space:把“看过什么”从原始轨迹里剥出来
VISOR 最关键的设计是 Evidence Space。
普通 agentic RAG 常见做法是:
- 检索一页
- 模型看一页
- 再检索下一页
- 把所有历史交互直接堆在上下文里
问题是,历史轨迹越来越长时,前面真正有用的内容会被大量图片 token 埋掉。
VISOR 的解法是:每访问一页,就把有用信息提炼成结构化证据写进独立证据空间。正文里写得更具体:
- 初看整页后,生成一个
preevidence summary。 - 如果做了 crop,再生成一个
postevidence summary。 - 这些摘要按页存进 Evidence Space,供后续检索、推理、回答复用。
这个设计的意义在于:
- 作者声称:它能支持跨页联合推理,不再把每页当孤立样本。
- 我的判断:这本质上是在做一层 agent 内部的“可控工作记忆”。不是让模型自己记,而是强制把零散观察压缩成可复用状态。
这也是为什么消融里去掉 ES 掉点最大——因为没有它,后面的 sliding window 只是单纯删上下文,根本不构成有效压缩。
2. Visual Action Evaluation and Correction:不是所有 crop 都值得做
agentic visual RAG 的另一个坑,是 视觉动作很容易做错。
比如:
- crop 到不相关区域;
- 连续放大但没有新信息;
- 因为看不清一个局部而不断浪费 turn。
VISOR 在动作空间里只有三类动作:
searchcropanswer
但关键不是动作种类,而是动作前后有一层评估机制:
- 先判断当前整页是否已经足够;
- 只有在“某一局部看起来相关但不够清晰”时才 crop;
- 如果 crop 后信息无效,就走 correction,把注意力拉回 crop 之前的 reasoning,而不是把这次无效视觉内容继续写进状态里。
我的判断
这部分很像把 GUI agent / browser agent 里常见的 “bad action recovery” 思路,迁移到了 visual document reasoning。
它的价值不是让动作空间更大,而是让动作空间更稳:
- 减少无效局部放大;
- 减少把噪声写进长期状态;
- 保证 evidence accumulation 里尽量只保留验证过的局部证据。
3. Dynamic Trajectory + Sliding Window:只保留最近交互,但不丢关键证据
这篇第二个很重要的点是 Dynamic Trajectory。
作者没有采用标准 append-only 轨迹,而是每轮重建上下文:
- 顶部固定放 原始 query;
- 再放 最新的 Evidence Space;
- 最后只放最近 W 轮交互。
文中说他们经验上设 W=2。这意味着:
- agent 仍能看到最新 retrieve → crop 这类短链条;
- 更早的原始图像上下文被丢弃;
- 但对应的关键信息已经被蒸馏进 Evidence Space,不会完全消失。
为什么这个组合比单独做 sliding window 更合理
正文消融里有个很有意思的观察:
- 去掉 ES,性能大幅下降;
- 去掉 SW,性能也下降;
- 但如果 ES 已经没了,再去掉 SW 反而会部分恢复性能。
这个结果其实很说明问题:
- 仅仅裁上下文不是压缩,是丢信息。
- 只有先有有效证据蒸馏,sliding window 才成立。
这也是我觉得这篇值得读的地方:它不是在泛泛讲“上下文管理很重要”,而是真的把“压缩什么、保留什么、删除什么”做成了结构。
4. Intent Injection:每轮强行提醒 agent 自己到底在找什么
作者还加了一个简单但实用的设计:Intent Injection。
每次环境返回 observation 时,都会把原始 query 和当前 Evidence Space 重新提醒给模型。
作者声称
这样能防止 long-horizon interaction 里的 semantic drift,让 agent 不至于一路搜偏。
我的判断
这个模块单看并不新,但放在这套系统里是合理的。因为当上下文被 sliding window 截断后,agent 若没有持续的 query re-anchoring,确实更容易被当前页视觉细节带偏。
所以 II 更像一个 architectural inductive bias:
- 对未训练模型帮助更大;
- fine-tune 之后收益可能缩小,但仍然稳定有用。
正文的消融结论也和这个判断基本一致。
训练设计:为什么 RL 在这里有意义
作者的训练流程分两段:
- SFT:先用蒸馏的 agent trajectory 教会模型格式和基本搜索行为。
- GRPO-based RL:再让模型在真实 retrieval 环境里学停止时机、搜索深度和验证策略。
SFT 阶段
作者从 Qwen3-VL-235B-A22B 蒸馏轨迹,基于 SlideVQA 训练集做筛选,最后保留大约 2.5K 条轨迹。
SFT 目标主要是两件事:
- 学会
<think> / <search> / <bbox> / <answer>这种结构化输出; - 学会一种 verification search 策略:在觉得证据差不多够了之后,再补一次确认型检索。
RL 阶段
作者认为 imitation 不能可靠学到“什么时候该停”。所以 RL 阶段重点解决:
- 什么时候算 retrieval complete;
- 何时应该再做一次 verification search;
- 何时已经开始 over-search。
奖励设计也比较系统化:
- 答案奖励:如果检索完整,用 judge 判答案对错;如果检索不完整,则奖励“诚实承认信息不足”,避免硬编答案。
- 检索奖励:
- 缺关键证据页,重罚;
- 一次 verification search 最优;
- 没有 verification 或 search 太多都扣分。
- 格式惩罚:动作轨迹不合法就罚。
我的判断
这套 reward 不算花哨,但很对路。因为在这类系统里,真正难学的不是“会不会回答”,而是:
- 会不会在该停时停;
- 会不会在不确定时承认不确定;
- 会不会为了追求看起来完整而过搜。
这篇至少在 reward design 上是清楚的,不是只靠最终 answer correctness 一把梭。
实验怎么看
1. 主结果说明它确实更擅长“多页找证据”
从正文主结果来看,我会这样解读:
SlideVQA 多跳提升很大
- VISOR:53.62
- VRAG-RL:43.10
- EVisRAG:42.32
这基本支持了作者最核心的论点:跨页证据累积 是主要增益来源。
ViDoSeek 的提升主要在 Extraction,不在 Logic
作者特别指出:
- Extraction 提升 12.89
- Logic 提升只有 1.86
这很关键,因为它说明 VISOR 更像是在解决:
- “能不能把分散事实找全、拼起来”
而不是:
- “拿到证据后推理能力突然暴涨”
换句话说,这篇的主增益更偏 evidence management,不是 reasoning module 本身更强。
MMLongBench 在 Chart / Layout 上收益明显
这和它的 selective crop 设计是对得上的:
- 图表和复杂布局里,整页往往看不清关键局部;
- 但乱 crop 又会引噪声;
- 所以“有节制的局部放大”能带来稳定收益。
2. 3B 模型结果也有启发
作者报告 3B backbone 下:
- SlideVQA:68.49
- ViDoSeek:69.00
- MMLongBench:27.86
虽然在 MMLongBench 略低于 EVisRAG,但作者解释是:
- EVisRAG 更偏多图理解训练;
- VISOR 更偏 agentic retrieval 与 long-horizon reasoning。
我的判断
这个解释大体合理。更值得注意的是,正文提到多 agent 方法在小模型下掉得更厉害,而单 agent、端到端优化的方法更稳。这对实际系统设计有个现实启发:
在小模型或预算受限场景里,先把单 agent 的状态管理和动作控制做好,可能比把系统拆成多 agent 更划算。
3. 时间效率分析:不是最快,但 trade-off 说得过去
作者承认 VISOR 肯定比单次 top-k 检索的一次性方法慢,但它和 VRAG-RL 相比仍有竞争力,原因包括:
- sliding window 限制了每轮上下文长度;
- visual action evaluation 减少了无效 crop;
- 自适应检索比多 agent 默认拿很多页更省。
我的判断
这里我会保守一点:
- 作者声称 效率更优,尤其在长程任务上更稳;
- 但从目前我拿到的材料看,定量 latency 细节还不够完整,我不会过度背书它的工程成本优势。
更稳妥的说法是:
- 它至少不是“靠无上限堆上下文换分”;
- 它的效率收益与其说来自更少推理,不如说来自 更可控的状态压缩和动作筛选。
这篇真正值得拿走什么
如果你不是专门做 visual RAG,也还是能从这篇里拿走三件事:
1. 证据空间要独立于原始轨迹
不要把 agent 历史全塞上下文,然后期待模型自己记住关键信息。
更靠谱的做法是:
- 把“交互记录”与“证据状态”分开;
- 原始轨迹服务于局部决策;
- 结构化证据服务于跨步推理和最终回答。
2. 上下文压缩必须和信息蒸馏绑定
sliding window 本身不是解法。
只有当你明确回答:
- 被删掉的信息里,哪些已被安全蒸馏?
- 哪些仍需要保留原始形态?
上下文裁剪才不会变成盲删。
3. 动作纠偏和证据写入要联动
无论是 crop、zoom、click、scroll,还是网页检索动作,真正重要的不是“动作空间多丰富”,而是:
- 哪些动作结果值得写入长期状态;
- 哪些应该被视为噪声并及时回滚。
VISOR 在这点上给了一个比较清楚的范式。
局限与我会追问的问题
这篇我仍然会追几个问题:
1. 证据空间会不会把错误中间结论也稳定固化?
Evidence Space 的收益很大,但风险也在这里:
- 如果某一步 pre/post evidence 就总结错了;
- 后面所有检索和推理都可能沿着错误证据继续走。
我目前看到的是它强调 visual action correction,但对 evidence corruption 的自纠 机制还没看到特别强的设计。
2. retrieval completeness 的 reward 依赖 reference pages,这种训练信号能多泛化吗?
这种 reward 在 benchmark 上很合理,但在开放世界文档检索场景里,通常并没有干净的“reference pages 集合”。
所以它更像一个 任务内优化方案,泛化到真实系统时可能需要替代性的 completeness proxy。
3. 效率收益是否足以覆盖系统复杂度
它引入了:
- evidence extraction
- action evaluation / correction
- dynamic trajectory reconstruction
- intent injection
- 特殊 RL 奖励
这套系统设计是扎实的,但工程复杂度不低。实际落地时值得追问:
- 是不是必须整套一起上?
- 哪个模块的性价比最高?
- 如果只能拿一个,Evidence Space 是否是最优先的?
从当前消融看,我的答案是:大概率先拿 Evidence Space,再考虑 sliding window 与 action correction。
最后总结
VISOR 不是那种“读完立刻觉得模型能力飞跃”的论文,但它是那种 系统味道很重、对 agent 设计真有参考价值 的论文。
如果你只记三句话
- 它解决的核心不是“多模态问答”,而是 agentic visual RAG 的长程状态管理。
- 最大增量来自 Evidence Space,也就是把跨页证据从原始轨迹里抽出来单独维护。
- Sliding Window 只有和 Evidence Space 配合才成立,这是这篇最重要的系统设计结论之一。
说明
这篇笔记基于 arXiv 摘要 + HTML 正文前半部分可稳定获取内容 完成;我拿到了方法、主实验、消融和部分分析,足够支持“够用且扎实”的判断,但还没有逐段精读完整附录与所有表图细节。所以这里明确区分了:
- 作者声称:来自论文正文与摘要;
- 实验观察:来自正文可读主结果;
- 我的判断:基于这些材料做的系统层解读。