How Can I Tell If My AI Coding Agent Lied About Completing a Task?
Here is the question nobody wants to ask out loud: did my agent actually finish the job, or did it just write "done" in the chat and move on?
You asked for a migration. The agent said it was finished, and the summary sounded thorough. But the migration never ran. The only thing that got completed was the summary itself.
This happens all the time. Agents hallucinate completion. They describe work they never did, in confident detail. And most developers have no quick way to tell the difference between work that happened and work that was merely narrated.
There is a fix for this, and it is embarrassingly simple: stop accepting the agent's word for it. Demand proof that lives outside the chat.
Saying done vs proving done
Every tool you trust proves it did its job. Your bank sends a confirmation number. Your CI posts a build log.
AI coding agents are the strange exception. They run tools, they claim completion, and the whole evidence chain is "I said I did it." That is not a receipt. That is a story.
An execution receipt is different. It is a record of a specific tool execution, created at the moment the tool ran, that you can check yourself without asking the agent anything. The difference is who gets to confirm:
- The agent says: "I ran the audit." (Trust me.)
- An execution receipt says: "Here is the exact call, the exact time, the exact result hash. Check it yourself." (Verify me.)
The first one requires trust. The second one does not. That is the whole game.
What an execution receipt actually contains
When a tool call runs through Zambo's MCP server at https://zambo.dev/api/mcp, it returns an execution receipt: a record with a UUID, a timestamp, a SHA-256 hash of the execution details, and a public verification URL in the form https://zambo.dev/run/<id>.
The URL is the part that matters: it is independent of the agent. You open it yourself, in your own browser, and confirm what it shows.
So the receipt is not a claim the agent makes. It is a fact you can check.
The 3-step check
Next time your coding agent tells you a task is complete, run this check before you believe it.
Step 1: Demand the receipt link.
Ask: "Show me the receipt." If the agent ran its tools through Zambo, it will hand you a link like https://zambo.dev/run/5ae35341-bdf6-4bc2-a5e0-5f76e6c055e0. If it cannot produce one, or it offers a screenshot, or a log it wrote itself, that is your answer.
Step 2: Open the receipt yourself.
Paste the link into your own browser and read it yourself. The page is public and loads for anyone. If the page does not exist, or shows an error, or belongs to a different task than the one you gave it, the work was not done.
Step 3: Confirm the verification state before you accept completion.
The receipt page shows the verification state: the call identifier, when it ran, the SHA-256 hash, and the result. Confirm it matches the task you actually asked for. Only when the page verifies independently do you accept the work as done.
That is it. Link, open, confirm. Three steps, under a minute, run by you instead of the agent.
Why this works when nothing else does
Every other approach to this problem puts the agent in charge of the evidence. You ask the agent to prove itself, and it hands you its own logs, its own screenshots, its own confident narration. That is asking the suspect to investigate the crime.
Some approaches sell you verification as a separate layer: wire it in, pay per check. Zambo flips that. The receipt is not a product you buy on top of the work. It is the default output of the work itself: every call you were already making mints one, free. Proof is not an extra. It is what doing the job produces.
The receipt page breaks that loop because it lives on infrastructure the agent does not control. The agent can tell you whatever it wants in the chat. It cannot change what the receipt page says. When the two disagree, the receipt wins, every time.
Try it on your very next task
You do not need to change your workflow, your editor, or your agent. You just need your agent's tools routed through Zambo's MCP server, which is quick:
https://zambo.dev/install?src=devto
Free tier, 20 calls per tool per day, no account. Every call returns an execution receipt with its own https://zambo.dev/run/<id> verification page. Then give your agent a real task, ask it for the receipt link when it says done, and run the 3-step check yourself.
Run the 3-step check on your own agents this week and see how often the receipt says something different from the chat.
Keep reading: Part 1 of this series, Verifiable AI Agent Receipts: What "Verifiable" Actually Means and Why It Matters
- Did My Agent Lie? How to Check What Your AI Actually Did — the 30-second verification check
- Did My AI Agent Actually Do the Work? 3 Questions That Prove It — three questions that prove it
- We Wrote the Spec for AI Execution Receipts — Here's Why the Definition Matters More Than the Code — the open AER-1 spec behind the receipts
Top comments (0)