A Green Light Proves Nothing: Make Agents Show Their Work
A developer set up a nightly agent job. It read the day's work, found the places where a person had corrected the agent, and turned them into short lessons for later. A missing settings file left the job with nothing it was allowed to send. It logged success anyway, every night, for a week.
Nobody noticed because nothing looked wrong. The dashboard was green. The same developer counted the review queue afterwards: 7 lessons approved, 44 rejected and 111 still waiting. "Automating the writing mostly gave me more reading."
That is the agent problem in small. An agent reports on its own work, and a report is cheap to get wrong. For a business putting agents near orders, invoices or customers, the question is how you know the work happened.
Why agents fail quietly
Ordinary software fails loudly. A script crashes and someone gets an error. An agent is built to keep going, so it routes around a missing file, a lapsed login or an empty inbox, and then describes the run as done.
Owners running agents in their businesses describe the same pain. One seller let an agent handle listings and customer messages. When a session died mid-step, the agent marked an item sold after the payment had already gone through, then sent a duplicate invoice. The owner refunded a customer by hand, and it happened about twice a week. Others in the same discussion said most of their supervision time goes to one question: did that action happen or not?
None of this shows up as a failure in the agent's own log. It shows up as a customer complaint, a duplicate charge, or a quiet week that looked like progress.
Make every run prove its work
The fix is to stop accepting the agent's word and ask for evidence. One reply to the developer put the test plainly: "A run that 'succeeds' with zero output is the one I'd alert on." Count what went out. Count what passed a second check. Treat zero as a failure unless the input was empty too.
The same idea scales up. Before an agent retries anything that moves money or sends a message, it should read the real state first: the sent folder, the payment record, the stock count. If it cannot tell, a person checks. That is the fourth of our ten guardrails, tested and watched: nothing goes live untested, and nothing stays unwatched once it does.
A financial firm that runs agents on client work described its version in effect. Agents do the internal analysis on their own. Anything that moves money or speaks to a client goes to a named person to execute. Every action, by an agent or a human, writes a record of what changed, who changed it and when. That record is what lets a compliance team trust the outcome.
Where a person stays in the loop
The line is the same one we drew for customer messages in Automation Can Acknowledge, Never Promise. An agent can draft, sort, check and prepare. A person approves anything that commits money, time or the business's word, and anything the agent cannot confirm.
That keeps a person in control without approving every click. Owners in that discussion were clear on the balance. They wanted approval on payments and anything irreversible, and no interruptions for the rest.
How to tell if you have the problem
Three questions sort it out. Does your agent's success report include a count of what it produced? Could you find, today, the record of what it did on a given night? When it stops halfway, does anyone know which steps finished? If the answer to any is no, the green light is decoration.
What it looks like done properly
Our operations agent, Adam, is built around this. Every workflow has written limits on what he completes, queues for approval or escalates. Every task goes on the record. He is paid per task completed and verified, so a run that did nothing costs nothing and shows up as nothing.