PageIndex: Retrieval by Reasoning over the Hierarchy
① a tree, no traversal
→
② score-based, both ways
→
③ LLM-guided instead
→
④ traversal learned
→
⑤ multimodal
the hierarchy index · fetched whole
title
pages
X100 User Manual
1-52
1. Introduction
1-4
2. Safety
5-9
2.1 Operating Env.
7-8
5. Maintenance
30-44
5.1 Cleaning
30-33
5.2 Filter
34-37
5.3 Battery
38-41
5.4 Firmware
42-44
6. FAQ
45-48
every node carries its own page range
a parent range = union of its children
1 · reason over it → which pages to read
LLM
sees titles + ranges · no page text yet
Thinking: intervals live under Maintenance;
heat may matter → check Operating Env. too
picks titles
copies their stored range
2.1 Operating Env.
7-8
5.3 Battery
38-41
get_page_content(
"7-8, 38-41"
)
the numbers are
copied from the index
, never guessed
one call carries several ranges = several sections
choosing a parent instead (5. Maintenance → 30-44) pulls every subsection
2 · read those pages, then judge
p.7-8
p.38-41 · 5.3 Battery
fan
12 mo
battery
6 mo
found: battery → 6 months
and from p.7-8 · halve it in high heat
enough to answer?
the LLM itself decides · no scorer
it may also follow a reference it just read
("see Appendix G") back into step 1
output
enough → answer
"every 6 months,
3 in high heat"
+ the sections it opened
5.3 Battery · 2.1 Operating Env.
as citations
sections, not chunks
a reader, not a retriever
not enough ↻ pick other titles, call again
state between rounds = the
tool history already in the prompt
· what it read stays there, there is no note store
Reasoning, not similarity
· an LLM matches titles, page numbers are looked up · zero embeddings
15 / 32