Posts tagged Debugging — AI × software engineering, made practical.
You'll learn how to log each model decision as a structured record (options, choice, stated intent, context refs and parent link) so you can trace a wrong output in a live LLM app or agent back to its root cause.
You'll learn why describing a problem to an AI gets you generic answers, and how pasting the raw evidence (files, full errors, versions, constraints) gets you answers about your actual problem.
You'll learn why AI assistants make up function names, kwargs and CLI flags, where those fakes usually show up, and how to check in one line that a symbol exists before you paste it.
You'll learn how a mid-sentence chunk split causes a RAG pipeline to confidently deny a fact that's actually in the source docs, and how to find and fix that failure in your own pipeline.
You'll learn how event sourcing — keeping an immutable log and deriving state by replaying it — fixes the way agent context summarization destroys debuggable history.
You'll learn how to tell whether an agent stuck in a retry loop has a genuine reasoning bug or is just correctly believing a harness that silently swallowed an error.
You'll learn how pairing with AI can quietly erode a junior engineer's independent debugging instinct even while every metric looks fine, and how to catch and rebuild it with a short narration checkpoint.
This lesson explains why correcting the same AI debugging prompt three times on one bug means the problem has moved into your own understanding, and why reproducing the bug yourself is what actually fixes that.
A support agent hit the right API, got a valid response, and still told a customer the wrong thing — and the postmortem that followed exposed a blind spot most agent observability setups share.
Two hundred tool calls into a cleanup session, my agent quoted a config file back to me word-for-word — a file it had deleted ninety calls earlier — and the real explanation had nothing to do with the model being wrong.
A three-week 'flaky model' postmortem turned out to be a one-character field rename nobody validated — here's the fix that turns that class of bug into a single stack trace.
The 'flaky' bug where Agent B redoes work Agent A already fixed isn't a timing race at all — it's a consistency choice your context store made for you without asking, and naming it changes everything you reach for next.
A queue promises your message will arrive eventually — it never promised you could prove what happened to it, and that gap is what pages you when a delivery goes quietly, successfully wrong.