SparseRead · arXiv:2608.22237v1

SparseRead

Your agent is burning tokens by reading everything.
SparseRead makes it stop.

Token-efficient reading for AI agents. SparseRead admits only the evidence needed for the next decision, so token volume drops versus Naive full reading — up to 92.9%.

up to 92.9%tokens vs Naivemedian 69.0% on NanoBot
up to 89.0%wall time vs Naivemedian 64.4% on NanoBot
Five scenarioslong text, PDFs, file trees, tables, materialsquality held or improved on 26 of 30 settings

Over-reading

Over-reading is object-level access when the current decision needs only a bounded evidence slice. Long-context models, KV-cache tricks, and post-hoc compressors act after a broad object read has already been paid.

In representative high-sparsity tasks, only 6–15% of the exposed reading content contributes to the current decision.

In paired high-sparsity runs, full-read agents spend up to 17.3× more tokens than SparseRead without improving task score.

Same protocol, four harnesses

SparseRead is a thin adapter around one token-efficient reading runtime, not a new agent. The paper evaluates NanoBot, OpenCode, and OpenClaw. Claude Code ships in the GitHub release. Token savings are real and not uniform.

NanoBot
NanoBotv0.3.0

Median 69.0% tokens · 64.4% wall

OpenCode
OpenCodev1.18.25

Median 71.8% tokens · 64.9% wall

OpenClaw
OpenClawv2026.8.1

Median 28.7% tokens · 28.2% wall

Claude Code
Claude Code2.1.252

MCP + session hooks · GitHub release

Paper medians cover NanoBot, OpenCode, and OpenClaw · five models · Claude Opus 5 is not in that suite · 12 of 15 cells hold or improve score

Flagship replay

Long-context reading / DeepSeek-V4-Flash / NanoBot. Recorded run, labeled REPLAY — not a live model. PaperBench demo tokens are not shown here.

REPLAY

REPLAY of a recorded Figure 8 run — not a live model

Five facts from a 100k-character history chapter

Answer five local questions about the Fall of Outremer without reading the whole book into context. LooGLE · DeepSeek-V4-Flash · NanoBot · single run · Figure 8

Over-read / Full Read

369,042 tokens

17 req · 97.8 s · score 1.0

Whole chapter stays in context

03 write_fileFive answers; score 1.0

SparseRead

50,699 tokens

4 req · 39.4 s · score 1.0

Five anchored slots, then stop

03 write_fileEvidence State closed; stop. Score 1.0

369,04250,699 tokens · 86.3% · score 1.0 / 1.0 · five local questions, same answers

step 3/3 · Long-context reading

Single run · SparseRead row is historical same-task in the CSV · Do not present as an average · Figure 8 · results/reports/two_scenario_three_model_baseline_comparison_20260723.csv

A gate in front. Snap-in backends behind.

The control plane decides whether to read sparse. The data plane admits only a bounded slice — backends plug in on one interface. Public terms first; implementation aliases in parentheses.

Control plane

Object Preview (FileCard) → Read Intent (HintSpec) → Read Gate → macro actions → Evidence State.

The Read Gate switches work modes on its own:force, advisory, or native. Agent-selected macro actions:scout, focus, collect,refine, verify. Evidence State / EvidencePack holds anchors, coverage, unresolved needs, and stop / refine / protocol fallback.

Data plane · compress inside the reader

Reader backends do the compression: the object stays outside context until a bounded slice is admitted. Swap Text/PDF, tables, collections, or the script library without changing the Read Gate. A specialized compressor registers as a backend here — not after a full read.

Unified reader · installed
Text / PDFlocal evidence from long documents.txt · .md · .pdf · .log
Collectionspick sources, close cross-file evidencefile trees · mixed sources
Tablesschema, projection, exact handoff.json · .csv · .tsv · .yaml · .xlsx · .xml
Script libraryvalidated LAMMPS templates.py wrappers · LAMMPS input

Full object

useful evidence

User extensions · wrap and register
SWE-Prunerwrap as a backend
LLMLinguawrap as a backend
AI4S domain readersame interface

Examples: SWE-Pruner, LLMLingua, or an AI4S domain reader (materials chemistry uses the same snap). SWE-Pruner and LLMLingua are wrapping paths, not evaluated in this work. SparseRead is not post-hoc summarization, KV-cache compression, or an always-on replacement for native tools.

What you can take away without the paper

SparseRead is cheaper on tokens and wall time when the task is sparse. Quality usually holds. It is not an always-on win on every cell.

Flagship cell · long-context reading

Same answers. 86% fewer tokens.

DeepSeek-V4-Flash on a five-question long document. Score stayed 1.0. One recorded run, not an average.

  • 86.3%tokens
  • 174requests
  • 98s → 39swall time
  • 1.0 = 1.0score

Strongest model evaluated

Claude Opus 5 still saves most of the read.

On sparse-fit scenarios the strongest model still drops 59.6–89.0% of tokens and 51.3–78.1% of wall time versus full reading.

Same protocol, three harnesses

The saving ports. It is not uniform.

Median token cut across five models: NanoBot 69.0%, OpenCode 71.8%, OpenClaw 28.7%. Wall-time medians follow the same order.

  • NanoBot69.0% tokens · 64.4% wall
  • OpenCode71.8% tokens · 64.9% wall
  • OpenClaw28.7% tokens · 28.2% wall

Against other reading cuts

Lowest tokens and time. Score never below full read.

Versus ACON and last-10 masking, lowest tokens and wall time in every setting. Only method whose score never fell below Naive. 63.4–86.3% tokens; 1.8–3.6× sooner.

  1. SparseReadlowest tokens and time
  2. ACONcompresses after the full read
  3. Last-10 maskdrops old observations

Quality usually holds

Quality held or improved on 26 of 30 settings.

Four cells dipped between −0.10 and −0.02. Tokens and wall time still fell in all 30. Across the three paper harnesses, 12 of 15 cells hold or improve; three regress between −0.031 and −0.013.

Flagship cell is a single recorded run · Opus range is from the paper, this checkout has no Opus traces · comparison vs ACON and last-10 masking is six settings, some n=1

Install into the agent you already use

Source install from GitHub. Clone once, then pick a framework. There is no PyPI or plugin-marketplace pin yet.

Clone
git clone https://github.com/Zedong-Liu/SparseReading.git
cd SparseReading

Choose a platform

NanoBot
uv pip install \
  packages/sparseread-core \
  integrations/nanobot/python

from sparseread_nanobot import install
runtime = install(agent)

Python adapter into the nanobot venv you already have. No installer script.

After install, ask the agent to use SparseRead on a large file. You do not call sro_preview by hand. Full matrix, Windows notes, and doctor checks are in thesource installation guide.

Academic prototype

Read Less, Solve More: Token-Efficient Sparse Reading for AI Agents

arXiv:2608.22237 (v1, 2026-08-23). Setup in the claim registry(125 general tasks from QwenClawBench, Claw-Eval, PinchBench, LooGLE, materials-chemistry AI-for-Science; models Claude Opus 5, Qwen3.6-Plus, DeepSeek-V4-Flash, DeepSeek-V4-Pro, GLM-5.1, Kimi-K2.5); frameworks NanoBot v0.2.0, OpenCode v1.17.14, OpenClaw v2026.6.11. Claude Code 2.1.252 is a fourth GitHub-release integration, not a paper Table 1 row.

This checkout can replay the recorded Figure 8 flagship / multi-file audit / force-mode boundary packets (make reproduce CASE=flagship|strong_model|regime_boundary) and can cite paper ranges. It cannot reproduce from this tree:

@article{liu2026sparseread,
  title={Read Less, Solve More: Token-Efficient Sparse Reading for {AI} Agents},
  author={Liu, Zedong and Wu, Jiaan and Ma, Xinyang and Xu, Le and Wang, Kai and Hu, Yuanchao and Tao, Dingwen and Tan, Guangming},
  journal={arXiv preprint arXiv:2608.22237},
  year={2026},
  url={https://arxiv.org/pdf/2608.22237}
}

FAQ

What is SparseRead?

A training-free, token-efficient reading layer for AI agents. It admits only the evidence needed for the next decision instead of dumping whole files, PDFs, or repositories into context.

Which agents does SparseRead support?

NanoBot, OpenCode, OpenClaw, and Claude Code. One token-efficient reading runtime; four harness adapters.

How do I install it?

Clone the GitHub repo, then use the Quickstart for your agent. Source install today — pick a platform and copy the command.

Can I add a custom compression tool to SparseRead?

Yes. The unified reader backend can take any new tool — wrap it, register it, and SparseRead will call it instead of reading the whole object first.

What does it save?

Token volume drops by up to 92.9% versus Naive full reading. Wall time drops by up to 89.0%.

Limitations

Authors

Zedong Liu · Jiaan Wu · Xinyang Ma · Le Xu · Kai Wang · Yuanchao Hu · Dingwen Tao · Guangming Tan

As listed on arXiv:2608.22237.