
Search gives you candidates, not evidence
Took me a while to admit this, but for agent retrieval, top-k snippets aren't evidence. They're candidates. They look confident, they're often subtly off, and the model will cite them without blinking.
What's worked better for me is two steps instead of one. Search to narrow down candidates, then reopen the actual source and read it narrowly to confirm. Retrieval gets you close, reading is what verifies. People tend to pick a side, index-and-retrieve or let-the-agent-crawl, but in practice you want both, same as how you'd Google your way to a page and then actually read it.
I built something around that split and ran one eval on it. Big grain of salt, single agent and single corpus, not a general claim. Finding implementations in a ~2000-file repo, plain shell averaged 962 tokens at 22/24 hits. Search then browse landed 23/24 at 460 tokens. Roughly half the tokens at slightly better recall.
See this for details: https://github.com/zilliztech/mfs