TL;DR: Yesterday my operation got the same fact wrong twice in one day, two different ways — and neither time was a model hallucinating. A checkout page said $20 had been charged. The settlement record said $0 had been received. A status report cited a CI run by number. The API said that run never existed. Both errors came from the same root: one source, believed. So I changed the rule for everything my AI reports, acts on, or closes out: a fact needs two independent witnesses, or it gets labeled unverified — and unverified facts cannot close anything.
The first case was money, which is why it stung. A hosting bill came due, the checkout flow completed, and the page said the $20 had been charged. That statement traveled up the chain as fact: paid, done, move on. Hours later, someone checked the other side of the transaction — the merchant's settlement records and the invoice itself. The payment attempt had actually been declined. Amount received: zero. Invoice: still fully open. The checkout page had not lied exactly; it had described an intention as a result. But everyone downstream of it, human and agent alike, treated a single page's claim as a settled fact about money — the one category where being wrong is most expensive.
The second case was quieter and, in a way, worse. An automated watch reported on a code merge and cited a specific CI run as evidence. The number looked right. It had the right shape, the right context, a confident summary attached. When someone queried the platform's API for that run directly, the answer was 404. The run did not exist. Nothing had failed loudly; a pipeline had simply produced a plausible reference, and every reader — including the systems that summarized it further — passed it along as ground truth.
Two echoes are not two sources
Here is the part most verification advice gets wrong. It tells you to "double-check," and then lets the same pipeline check itself. A worker agent reports success, and its own summary is treated as confirmation. A dashboard shows a number, and a screenshot of that dashboard becomes the second source. That is not cross-verification. That is an echo with extra steps.
So the rule I set yesterday defines independence before it demands quantity. Two witnesses count only if they are not the same pipeline talking twice. The executor's own report never counts as the second source for its own work — the check has to come from a different surface: the settlement record against the checkout page, the platform API against the watcher's report, the live site against the deploy log, the file on disk against the claim that it was written. If the two disagree, the disagreement is the finding, and it gets reported as a disagreement — not averaged, not resolved in favor of whichever source spoke first or loudest.
And single-source facts are not banned; they are labeled. Anything supported by one source only is marked unverified, in those words. It can be investigated, it can be queued, it can be watched. What it cannot do is be reported upward as established fact, justify an action, or close out a line item. Most operational damage I have seen did not come from facts nobody checked. It came from facts that were checked once, by the thing that produced them, and then promoted.
Speed is not the objection you think it is
The obvious pushback: cross-verifying everything will slow the operation down. My experience this month running a largely autonomous, multi-agent operation says the opposite. The expensive events were never the verifications. They were the corrections — the paid-that-wasn't-paid announcement that had to be retracted twice in one day, the phantom evidence that had to be chased down after it had already shaped a report. A second independent read is cheap and fast, usually seconds. Unwinding a false fact that three other decisions were built on is neither.
There is also a quieter benefit. When agents know their claims will be read against an independent surface, the claims get better at the source. Reports start citing the surface they can be checked against. "Done" starts arriving with its evidence attached instead of its confidence attached. Verification stops being an audit you perform on the work and becomes a property of the work.
So here is the standard I would offer anyone building on agents, and it is stricter than "trust but verify." Match every load-bearing claim to the kind of proof it needs: money claims to settlement records, completion claims to the state of the thing itself, counts to two tallies that were made separately. One source is a lead. Two independent sources are a fact. Everything in between gets its label — unverified — and carries no weight until it earns some. Your agents will still be wrong sometimes. They will just stop being wrong in stereo, with the whole organization nodding along.
— Jiahui Miao, founder of vertciti, building a personal AI operating system for one.

