ddmin, not log grep
Logs correlate with failure; delta debugging isolates it. Reducing the configuration until only the failing part remains converts a hypothesis into a measured result.
THE CLOCKWORK CABINET
The Fault Finder · room 02 of 11
Something broke your AI agent. Let's find exactly what.
AgentXRay adapts Andreas Zeller's Delta Debugging to tool-calling AI agents: when an agent fails, it isolates the minimal failure-inducing instruction, tool schema or environment flag — then proves the isolation with counterfactual verification.
It ships as a Python SDK (`agentxray.diagnose`), a POSIX CLI with strict exit codes, and an interactive web product with a client-side ddmin sandbox.
the mechanism — watch a configuration shed parts
an illustrative configuration — the SDK runs this reduction against the real one
A failing AI agent is a configuration space problem: the prompt has instructions, the tools have schemas, the environment has flags — and any combination of them can be the one that breaks the run. Reading logs narrows the suspicion list but rarely names the culprit.
Brute-forcing every configuration is expensive: each test costs an evaluation call. The engineering problem is to remove as much of the configuration as possible, as few calls as possible, and still be able to prove that what remains is really the cause.
Delta Debugging treats the agent's configuration as a set of parts and systematically sheds them: each pass tests a reduced configuration and keeps the halves that still fail.
When reduction converges, the result is put through counterfactual verification — the suspected part is swapped back in and the failure must return — establishing 1-minimality rather than a plausible guess.
Everything runs against 5 hermetic offline testbeds (<15 ms per run, $0.00 spend), so diagnosis never burns API budget, and the CLI reports through strict exit codes so pipelines can branch on the outcome.
Logs correlate with failure; delta debugging isolates it. Reducing the configuration until only the failing part remains converts a hypothesis into a measured result.
A minimised failing case only counts when re-adding the part reproduces the failure — 1-minimality is verified, never assumed.
Five offline testbeds run in under 15 milliseconds at zero cost, making thousands of reduction calls practical instead of prohibitive.
Strict exit codes make the minimiser a pipeline component — CI can fail a change because AgentXRay proved it breaks the agent.
every number here carries its source — my resume's figures and the synthetic-fixture results are marked for what they are