VisDocAgentBench: Benchmarking Agents for Visually Rich Document Retrieval
Organizations: State Key Lab of General AI, School of Intelligence Science and Technology, Peking University
Abstract
Visually rich documents encode relevance through language, layout, structured visual elements, and corpus context, yet retrieval is typically evaluated by one-shot query--page matching. Agentic-search benchmarks usually score downstream question answering or report generation, leaving document ranking under iterative evidence acquisition underexplored. We introduce VisDocAgentBench, a closed-corpus benchmark comparing static and agentic retrieval under a shared ranked-output contract. It contains 2,375 pages from 100 documents and 120 unique-target queries balanced across direct, one-bridge, and two-bridge evidence structures. Relation-preserving construction yields semantic, relational, and visual queries, followed by full-document review and hard-negative validation. A strong late-interaction visual retriever reaches 97.50% Recall@1 on direct items but 2.50% on two-bridge items, exposing the limits of query--target matching when relevance depends on corpus context. Agents recover much of this loss, but planner choice and retrieval representation remain decisive. Every planner performs better with visual retrieval, whose best R@1 reaches 67.50% versus 37.50% for OCR-text. Ablations identify iterative search and page inspection as consequential capabilities, and providing the complete support context improves ranking on both routes. Trace analysis localizes the remaining losses to target discovery, candidate examination, and evidence-role integration. These findings motivate retrieval agents that combine modality-preserving discovery with evidence-directed verification.
Figures & tables
| Statistic | Count |
|---|---|
| Corpus | |
| Source documents / topics | 100 / 10 |
| Rendered visual units | 2,375 |
| Query-construction units | 2,324 |
| Construction | |
| Candidate semantic-bridge pairs | 10,000 |
| Route | Operation | Returned information |
|---|---|---|
| Visual | Visual search | Ranked opaque page handles and similarity scores. |
| On-demand OCR | Text and layout blocks from one discovered page or crop. | |
| OCR-Text | Text search | Ranked opaque page handles and similarity scores; no snippets. |
| Cached page OCR | Full OCR text for one discovered page. | |
| Both | Page inspection | Full-page images for up to ten discovered pages. |
| Regional cropping | Up to ten crops from previously inspected pages. |
| Retriever / Planner | Visual | OCR-Text | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| R@1 | R@3 | R@5 | R@10 | MRR@10 | R@1 | R@3 | R@5 | R@10 | MRR@10 | |
| Static Retrievers | ||||||||||
| Qwen3 Embedding | 20.83 | 30.00 | 34.17 | 45.00 | 27.34 | 1.67 | 5.83 | 13.33 | 19.17 | 6.01 |
| BM25 | – | – | – | – | – | 6.67 | 15.00 | 19.17 | 30.00 | 12.46 |
| BM25 + dense RRF | – | – | – | – | – | 5.00 | 14.17 | 19.17 | 26.67 | 11.41 |
| Nemotron ColEmbed | 40.00 | 52.50 | 65.00 | 70.00 | 48.86 | – | – | – | – | – |
| Configuration | R@1 | R@3 | R@5 | R@10 | MRR@10 |
|---|---|---|---|---|---|
| Visual | |||||
| Full agent | 61.67 | 65.00 | 65.83 | 68.33 | 63.58 |
| No iterative search | 53.33 | 59.17 | 59.17 | 60.83 | 56.35 |
| No regional crop | 64.17 | 69.17 | 71.67 | 74.17 | 67.34 |
| No OCR | 60.00 | 62.50 | 66.67 | 69.17 | 62.40 |
| No page inspection † | 45.83 | 50.83 | 57.50 | 63.33 | 50.03 |
| Level | Condition | R@1 | R@3 | R@5 | R@10 | MRR@10 |
|---|---|---|---|---|---|---|
| Visual | ||||||
| L2 | Standard | 60.00 | 62.50 | 62.50 | 62.50 | 61.25 |
| Support provided | 72.50 | 72.50 | 72.50 | 75.00 | 72.86 | |
| L3 | Standard | 40.00 | 45.00 | 47.50 | 52.50 | 43.36 |
| Support provided | 45.00 | 62.50 | 65.00 | 75.00 | 55.19 | |
| OCR-Text | ||||||
Appendix figures & tables15 assets
Supplementary material from the paper’s appendix.
Appendix
| Level | Required exposure | Hidden content | Example |
|---|---|---|---|
| L1 | identifiers and captions | “Find the unit where an error flag is shown as a red row in a comparison matrix.” | |
| L2 | “Find the unit where a policy instantiates a mechanism that is summarized by a stacked latency chart.” | ||
| L3 | and both links | “Find the unit where a condition produces an intermediate setting, whose evaluation yields a result displayed in a grouped plot.” |
| Role | Annotation content | Visibility and use |
|---|---|---|
| Agent-visible input | Final natural-language query; corpus pages exposed through opaque handles | The planner sees the query text and handles returned by tools. Handles are randomly assigned with a frozen seed and contain no document or page-order signal. |
| Evaluation metadata | Evidence-path level, topic, path scope, and review outcomes | Available to evaluators for stratification, audit, and data analysis only. |
| Target and construction annotations | Adjudicated target page; role-specific descriptors and directed relations; semantic alignments; evidence-path pages; query-exposure constraints | Supports scoring and construction audits while remaining strictly withheld from the agent. |
| arXiv | T | Cat. | Pg. | arXiv | T | Cat. | Pg. | arXiv | T | Cat. | Pg. | arXiv | T | Cat. | Pg. |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2601.18203 | T5 | cs.IR | 12 | 2605.07467 | T10 | cs.LG | 17 | 2606.05773 | T1 | cs.RO | 14 | 2606.18478 | T7 | cs.CV | 34 |
| 2602.06090 | T3 | cs.SE | 16 | 2605.13986 | T6 | cs.LG | 83 | 2606.06322 | T2 | cs.AI | 19 | 2606.18847 | T4 | cs.AI | 27 |
| 2602.06593 | T3 | cs.SE | 21 | 2605.17641 | T4 | cs.AI | 12 | 2606.06891 | T8 | cs.CV | 32 | 2606.19340 | T8 | cs.RO | 21 |
| 2602.19961 | T5 | cs.CL | 35 | 2605.17965 | T3 | cs.SE | 45 | 2606.06915 | T6 | cs.CL | 15 | 2606.19531 | T1 | cs.CV | 19 |
| 2602.20502 | T2 | cs.AI | 12 | 2605.17976 | T10 | cs.AI | 31 | 2606.08688 | T10 | cs.RO | 20 | 2606.19746 | T9 | cs.DC | 22 |
| 2602.22013 | T5 | cs.CV | 10 | 2605.17985 | T10 | cs.LG | 22 | 2606.08737 | T1 | cs.RO | 16 | 2606.20512 | T3 | cs.SE | 20 |
| Topic | Descr. | Rel. | Cand. | Verified | Paths | Valid | Final |
|---|---|---|---|---|---|---|---|
| T1 | 2,700 | 2,049 | 1,000 | 426 | 329 | 184 | 13 |
| T2 | 1,570 | 1,192 | 1,000 | 358 | 249 | 114 | 10 |
| T3 | 1,782 | 1,333 | 1,000 | 487 | 289 | 148 | 19 |
| T4 | 1,750 | 1,347 | 1,000 | 322 | 201 | 107 | 8 |
| T5 | 1,618 | 1,154 | 1,000 | 354 | 232 | 115 | 11 |
| T6 | 2,901 | 2,236 | 1,000 | 576 | 385 | 151 | 13 |
| Route | Action | Arguments | Observation and constraints |
|---|---|---|---|
| Visual | visual_search | query : string; top_k : integer | Ordered page_handle , score pairs from the page-image index. |
| ocr_image | target_handle : one searched full page or generated crop | Plain OCR text and blocks from PaddleOCR-VL-1.6; accepts one image per action. | |
| OCR-Text | text_search | query : string; top_k : integer | Ordered page_handle , score pairs from the OCR-text index; no snippets. |
| get_page_ocr | page_handle : one searched full page | Complete cached plain OCR text; no OCR model is rerun and crop handles are rejected. | |
| Both | inspect_pages | page_handles : 1–10 distinct searched pages | Full-page image artifacts plus handle and image dimensions. The call is atomic. |
| crop_pages | crops : 1–10 objects containing page_handle , normalized , and optional purpose | Cropped image artifacts and crop handles. The source page must have been inspected. Coordinates use top-left and bottom-right . Valid entries survive other entries’ failures; no maximum area is imposed. |
| System | Route | Model calls | Pages viewed | Input tokens | Output tokens |
|---|---|---|---|---|---|
| No iterative search | Visual | 11.00 | 30.00 | 101,075 | 8,932 |
| No iterative search | OCR-Text | 11.00 | 30.00 | 124,925 | 8,597 |
| Full agent | Visual | 8.34 | 25.22 | 177,056 | 2,250 |
| Full agent | OCR-Text | 10.18 | 28.22 | 248,125 | 2,632 |
| Retriever / Planner | Level | Visual | OCR-Text | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| R@1 | R@3 | R@5 | R@10 | MRR@10 | R@1 | R@3 | R@5 | R@10 | MRR@10 | ||
| Static Retrievers | |||||||||||
| Qwen3 Embedding | L1 | 40.00 | 52.50 | 60.00 | 72.50 | 49.11 | 2.50 | 5.00 | 10.00 | 17.50 | 5.84 |
| L2 | 20.00 | 27.50 | 30.00 | 40.00 | 25.30 | 2.50 | 10.00 | 15.00 | 20.00 | 7.50 | |
| L3 | 2.50 | 10.00 | 12.50 | 22.50 | 7.62 | 0.00 | 2.50 | 15.00 | 20.00 | 4.68 | |
| BM25 | L1 | – | – | – | – | – | 15.00 | 30.00 | 37.50 | 55.00 | 25.59 |
| Route | Topic | Queries | R@1 | R@3 | R@5 | R@10 | MRR@10 |
|---|---|---|---|---|---|---|---|
| Visual | T1 | 13 | 38.46 | 46.15 | 46.15 | 61.54 | 44.55 |
| T2 | 10 | 70.00 | 70.00 | 70.00 | 70.00 | 70.00 | |
| T3 | 19 | 42.11 | 52.63 | 57.89 | 57.89 | 47.54 | |
| T4 | 8 | 75.00 | 87.50 | 87.50 | 87.50 | 79.17 | |
| T5 | 11 | 72.73 | 72.73 | 72.73 | 72.73 | 72.73 | |
| T6 | 13 | 76.92 | 76.92 | 76.92 | 76.92 | 76.92 |
| Configuration | Level | R@1 | R@3 | R@5 | R@10 | MRR@10 |
|---|---|---|---|---|---|---|
| Visual | ||||||
| Full agent | L1 | 85.00 | 87.50 | 87.50 | 90.00 | 86.15 |
| L2 | 60.00 | 62.50 | 62.50 | 62.50 | 61.25 | |
| L3 | 40.00 | 45.00 | 47.50 | 52.50 | 43.36 | |
| No iterative search | L1 | 77.50 | 77.50 | 77.50 | 77.50 | 77.50 |
| L2 | 47.50 | 50.00 | 50.00 | 50.00 | 48.75 | |
| Route | Scope | Queries | R@1 | R@3 | R@5 | R@10 | MRR@10 |
|---|---|---|---|---|---|---|---|
| Visual | Single-unit | 40 | 85.00 | 87.50 | 87.50 | 90.00 | 86.15 |
| Same-document | 74 | 52.70 | 56.76 | 58.11 | 60.81 | 55.19 | |
| Cross-document | 6 | 16.67 | 16.67 | 16.67 | 16.67 | 16.67 | |
| OCR-Text | Single-unit | 40 | 42.50 | 42.50 | 42.50 | 47.50 | 43.06 |
| Same-document | 74 | 36.49 | 39.19 | 43.24 | 44.59 | 38.85 | |
| Cross-document | 6 | 0.00 | 0.00 | 0.00 | 16.67 | 1.67 |
| Step | Decision rationale | Action | Observation and state change |
|---|---|---|---|
| 1 | Search for the yellow-labeled examples and the high-priority-task failure. | visual_search ; top 30. | Support 1 appears at rank 2; Support 2 and the target are absent. |
| 2 | Inspect the strongest failure-example candidates. | inspect_pages on ten pages, including Support 1. | The high-priority-task request is linked to Action–Operation Misalignment. |
| 3 | Search for that failure mode and its broader family. | visual_search ; top 30. | Support 1, Support 2, and the target appear at ranks 3, 6, and 7. |
| 4 | Refine toward a yellow-highlighted family label. | visual_search . | The three path pages remain at ranks 3, 6, and 7. |
| 5 | Compare unseen pages in the failure-example series. | inspect_pages on ten pages, including Support 2 and the target. | The taxonomy page and the yellow-labeled candidate are visually identified. |
| 6 | Return to the exact high-priority-task wording. | visual_search ; top 30. | Support 1 is rank 1, Support 2 rank 7, and the target rank 18. |
| Step | Decision rationale | Action | Observation and state change |
|---|---|---|---|
| 1 | Search for grouped examples and a brightness-minimizing action. | visual_search ; top 20. | Neither support nor the target appears. |
| 2 | Inspect the strongest grouped-example candidates. | inspect_pages on ten pages. | No annotated path page is examined, and no benchmark relation is recovered. |
| 3 | Combine benchmark-example and minimum-brightness cues. | visual_search . | All three path pages remain absent. |
| 4 | Search the brightness instruction more literally. | visual_search . | All three path pages remain absent. |
| 5 | Emphasize the grouped smartphone layout. | visual_search . | All three path pages remain absent. |
| 6 | Inspect additional visual matches. | inspect_pages on nine pages. | The inspected pages still provide no annotated path evidence. |
| Qwen3.5 setting | Runtime for 120 queries |
|---|---|
| Visual, thinking | 4–5 hours |
| Visual, no thinking | 1–1.5 hours |
| OCR-Text, thinking | 6.5–7.5 hours |
| OCR-Text, no thinking | 40–50 minutes |
Visual Document Retrieval
Visual document retrieval finds relevant pages or regions in image-based documents using visual and multimodal representations.
See all 66 papers