MemWalker: Navigation Procedure
① a tree, no traversal
→
② score-based, both ways
→
③ LLM-guided instead
→
④ traversal learned
→
⑤ multimodal
0 · build the memory tree
seg 1
seg 2
seg 3
…
summ A
summ B
root
summ = LLM(children) · recursed to a root
offline · query-independent
1 · branch selection at every node, from the root
root · LLM
summ A
summ B
seg 1
seg 2
seg 3
seg 4
enter
sees the children's summaries + the query
Reasoning: B mentions the war…
Action: 1 → enter summ B
menu at a non-leaf: enter child 0…N
or revert
· one LLM call per node
↻ not a leaf → select again, one level down
at a
leaf
2 · at a leaf: read the real segment
root
summ A
summ B
seg 1
seg 2
seg 3 ★
seg 4
[working memory]
rides the path
commit −2 → answer
the leaf holds the full segment, not a summary
commit ends the walk · revert climbs back and enters a sibling
revert −1 → select again at the parent
output · the answer
answer text
+ the path as explanation
a reader, not a retriever:
no chunk set is handed
to a separate model
terminates when the LLM
commits at a leaf
, or after 3 unparsable replies (
"no answer"
) · a single path,
no beam
not tool-calling: two zero-shot prompts (branch-selection · leaf) fix an output format · the LLM writes Reasoning / Action as plain text, parsed each step
14 / 32