On the bench
What Auto Diagnostics Taught Me About AI Debugging
the fault code is a symptom, not a diagnosis
A fault code is not a diagnosis. U010E doesn’t mean the AdBlue module is dead —
it means communication with it was lost, which could be the module, the wiring,
the gateway, or a fuse that cost forty pence. Mechanics who swap parts based on
codes alone are called parts cannons, and they’re expensive to know.
LLM systems fail the same way. The error you can see — wrong answer, refusal, hallucination — is a symptom at the end of a chain. The cause is upstream: a retrieval miss, a poisoned context, a tool schema the model misread, a system prompt fighting itself.
The mapping I keep using:
- Wiring diagram → trace the actual context that reached the model, not the one you think reached it
- Known-good comparison → the same prompt against a clean session
- One variable at a time → change the context OR the model OR the tools. Never two.
- Verify the fix → a fixed bug without a regression test is a fault that will return with the next rain
On the bench. Being written between actual diagnostic jobs, which is rather the point.