Skip to content

Back to the catalog

Tessera: Structure-Completed Evidence Units for Web Retrieval-Augmented Generation
arxiv.orgpaper

Tessera: Structure-Completed Evidence Units for Web Retrieval-Augmented Generation

Tessera is a training-free evidence delivery layer for web retrieval-augmented generation. It rebuilds retrieved pages' HTML into fine-grained evidence units, each completed with page title, section path and table headers, then packs the relevant units into the reader context at the same token budget. Tracing evidence over full English Wikipedia shows chunking loses table and infobox content. Tessera adds 5 to 6 accuracy points on three QA benchmarks and carries over to agentic search.

TL;DR Proposes a training-free layer that rebuilds retrieved HTML into context-completed evidence units, lifting web RAG answer accuracy by 5 to 6 points at equal token budget.
Document

What it claims

Fixed 1,024-token chunks are a good unit for retrieval but a poor unit for reading. Tessera keeps the retriever's ranked list and uses it only to pick pages. It then rebuilds those pages' HTML into small labelled units and spends the last reader slot on them. On 7,851 questions from Natural Questions, NQ-Tables and SimpleQA, this adds 5 to 6 accuracy points to text and screenshot pipelines. It gains up to 5.2 points inside a multi-step search agent on FRAMES and MuSiQue. Under matched budgets it beats 14 alternatives, including RAPTOR, late chunking, small-to-big retrieval, contextual retrieval, two HtmlRAG variants and two structure-aware chunkers. With Tessera, 3K tokens of reader context beat 12K tokens of plain chunks or tiles.

How it works

The reader normally gets the top k items. Tessera passes items 1 to k-1 through unchanged and replaces item k with a unit block of equal or smaller token size.

flowchart LR
  L[Ranked list: chunks, tiles, search results] --> K[Top k-1 items, unchanged]
  L --> P[Distinct pages of top m items]
  P --> H[Fetch HTML from index snapshot]
  H --> U[Build units: rows, list items, paragraphs]
  U --> S[Lexical prefilter, then cross-encoder]
  S --> B[Pack into slot k, size at most item k]
  K --> R[Reader]
  B --> R
  1. Anchor pages. It takes the distinct pages behind the top m items (default m=10), in rank order, and fetches their HTML from the same crawl snapshot the index was built from.
  2. Units. It walks the DOM after stripping scripts, styles, navigation and citation superscripts. Each paragraph, list item, definition and figure caption becomes a block unit, prefixed with the path "page title › section › subsection". Each table or infobox row becomes a row unit, with every cell paired to its column header. A Wikipedia page yields about 150 units.
  3. Faithful table grid. Tables are rebuilt as grids with merged-cell span expansion before rows are read. Naively pairing cells with the first header row in DOM order mislabels or drops a cell in 32.5% of 2.9 million table rows.
  4. Selection and packing. A lexical prefilter cuts candidates to N units. A cross-encoder then scores each (query, unit) pair. The packer writes shared context and headers once.

Units do not depend on the query, so they can be cached per page. No training is involved. The index, retriever and reader stay unchanged.

Evidence

The diagnostic study uses a Qwen3.5-4B reader and an August 2025 English Wikipedia snapshot. The pipeline is hybrid dense plus BM25 retrieval with BGE-reranker-v2-m3.

  • Text versus screenshots. Once both are reranked over the top 50, text and PixelRAG screenshots are within -0.4 to +2.6 points. The hybrid text index scores 64.8 on NQ, 48.4 on NQ-Tables and 83.6 on SimpleQA, the best on all three. The reported screenshot advantage is a ranking gap.
  • Where evidence is lost. Quoted answer evidence reaches the reader for 59.5% of 5,883 source-supported questions. For 16.5%, it is stored in some chunk but ranked out. For 20.3%, it does not appear verbatim in any chunk. Extraction loses 16% of table cells, 40% of figure captions and 44% of table captions, against 1% of paragraph fragments. Of quoted table cells that do survive, 31% sit in chunks without the column headers.
  • Oracle. On 715 questions where one stored chunk holds all the evidence, putting that chunk in slot 3 raises accuracy from 49.1% to 78.5%. Tessera reaches 65.0% with no oracle information. Swapping in another chunk from the same page moves accuracy only 2.1 points.
  • Standard remedies. Re-extraction, neighbouring chunks, structure prefixes, a 4x reader budget and screenshots each add at most 2.2 points, with extra budget or inference overhead.
  • Chunk size. 512-token chunks enlarge the index by 73% and answer fewer questions than 1,024-token chunks.

How to use it

Code is at https://github.com/sarendis56/Tessera. The layer needs three inputs: the pipeline's ranked list, a page identity for each item, and the HTML of those pages from the crawl that built the index. Text, screenshot and agentic pipelines all fit, because only the final reader slot changes. The fetched text gives no install commands, cross-encoder model name or licence.

Limits

  • Coverage. The page text is cut off partway through the method section. Per-query latency, the cross-encoder choice and the agentic setup details are not in the fetched portion.
  • HTML dependency. The layer needs page HTML that matches the indexed snapshot. A pipeline that keeps only extracted text or screenshots must also store the raw pages.
  • Corpus. All reported experiments use English Wikipedia, whose infoboxes and tables are fairly regular. Results on arbitrary web HTML are not shown in this excerpt.
  • Automated grading. The evidence trace relies on quotes chosen by a grader model (GPT-5.6 Luna) and on string matching. 473 questions were excluded from the trace because their pages were used to develop the protocol.

Organisations named here

  • Wikipedia

Technologies named here

  • Tessera
  • HTML
  • RAG

Techniques named here

  • Structure-completed evidence units
  • Evidence tracing from source HTML to reader input