# Your agent isn't done An AI agent saying "done" is not evidence that the work is done. This sounds obvious until an agent tells you it updated the customer record, sent the invoice, fixed the bug, or published the page. The message is clean. The confidence is high. The actual work may be sitting in a draft, written to the wrong folder, or quietly rejected by an API. A better model won't fix this. The mistake is accepting the agent's final message as proof. The agent is reporting what it thinks happened, not checking what the target system recorded. I use a simple rule: completion needs evidence from the system that owns the result. For any agent task, define "done" before it starts:

  • What changed?

  • Where should the result exist?

  • What can the agent read back to prove it?

  • What must remain untouched?

  • Who reviews the result if the action can't be reversed?

Then require the final report to include the evidence. "Invoice sent" should include the recipient, message ID, and sent status. "Page updated" should include the live URL and a read-back of the changed text. "Bug fixed" should include the changed files and the test result. "Task created" should include the task ID, owner, and due date fetched from the task system after creation. If the agent can't produce that, the status isn't done. It's attempted. Changing models doesn't solve this. A read-back check does. Add this instruction to one agent workflow: "Do not report success until you can read the result back from the system that owns it. If verification fails, report attempted, the exact error, and what still needs to happen." Check its next five runs. Note every time the read-back fails. Reply with the worst false "done" report you've seen. I'll pick one apart in a future issue.