triage · booking-agent · incident 1042 root cause found in 41 minutes
The symptom

The agent confirmed a booking
that never happened.

Three customers arrived for appointments the calendar did not have. Nothing in the run threw. Every log line is a 200. The transcript reads perfectly. There is no error to search for, so a log search finds nothing.

booking-agent, to the customer All set. I have moved you to Tuesday at 3pm. See you then.
the calendar, at the same moment ap_8831 — Thursday 11:00. Unchanged.
    If this were your system, day one
    1. 0:00Get one failing run id and its full trace. Not a description of the failure, the run itself.
    2. 0:20Replay it against a copy. If it reproduces, the hard part is over. If it does not, the cause is state or timing, and that changes where I look.
    3. 0:45Read every tool wrapper before reading any prompt. Most agent bugs that survive a team review are wrappers lying to the model, not the model being wrong.
    4. 1:30Fix, then add the assertion that would have caught it. A fix without a failing test is a fix that comes back.
    What I would need on day one

    If it does not reproduce in the first two hours I will say so, and say what I think it is instead. A confident wrong answer costs you a day you do not have.

    Agents I have already had to keep running
    Production Voice agent for a medical clinic Twilio to Deepgram to an LLM to TTS, taking real calls and writing real appointments. Live for a paying client.
    Code is public playwright-sentinel Browser automation harness: ranked healing selectors with a drift warning, retries only on transient errors, and a screenshot plus page HTML captured on every failure.
    Shipped SiteSitter A WordPress maintenance product where an LLM plans and critiques changes from Playwright screenshots. The screenshot module is written to degrade to an empty map rather than throw, because a blind agent is better than a dead worker.
    Running Eight scheduled agents Research, drafting and delivery agents on cron, with every outgoing message held behind an approval queue and a sensitivity gate that trips before the model is called.