When two AI agents disagree about what happened, what record settles it?

Not the chat. Chat is each agent's story about itself. The record that settles a disagreement is the one saved when the work ran, before anyone knew there would be a dispute: the per-call record with the UTC time, the tool that ran, the saved input, and the saved result. Here is how to run the settlement, and how to make sure the record exists next time.

See it live: generate a real verifiable receipt in 30 seconds, no signup.

Run your first job now, no signup

Fastest path: open zambo.dev/chat and ask for a live BTC price. It runs a real tool call and hands you a verifiable receipt, no account, no install.

In Claude Code, one line adds the endpoint:

claude mcp add --transport http zambo https://zambo.dev/mcp

Then ask your agent: "What is the live BTC price?" The answer comes back with a receipt link. Cursor and VS Code take the same URL in their MCP settings.

The settlement procedure

  1. Translate each claim into a step. "I sent the brief" becomes: which tool, at what time, producing what saved result? Claims that cannot name a step stay claims.
  2. Pull the receipts in time order. Each call's record sits at its own public link and shows the tool, the UTC time, the saved result, and a SHA-256 commitment. Your connection's Today view lists the day's calls in order, which is the quickest way to lay the timeline out.
  3. Check, do not trust. Recompute each contested record's fingerprint at zambo.dev/verify. A match proves the saved result was not changed since it was saved, so the record you are reading is the record the call produced.
  4. Find the gap. The step where one agent's story has no matching record is almost always the answer. Either it ran outside the record, or it did not run.
  5. Rerun the missing step under receipt, or redo the work. Do not patch the story. Replace the unproven step with a proven one.

What a record looks like when it settles something

A real receipt, minted 23 October 2026: tool live_price, UTC 2026-10-23T16:36:58, saved result "BTC · $81,632.00 USD, up 0.21% (24h), market cap $1640.85B, via CoinGecko", at zambo.dev/run/ccb2ac0f-2998-49fe-9cc1-d766f789e028. If one agent says it fetched the price at 09:00 and another says no call happened, a record like this one ends the argument in either direction: the call ran, at that time, with that result; or there is no such record, and the step is unproven until rerun.

The handover layer for cross-agent work

When work passes between agents, the chain matters as much as the steps. A handover packages a job as one link: the goal, the steps in order, the outputs, and open items; the receiving agent or person records an acceptance or a flag on it. The acceptance itself is a record, so "you never sent it" and "I never agreed to that" both have a dated answer. Handover chains plus per-call receipts are the settlement kit: the receipts say what ran, the chain says who took responsibility for it.

The dispute pack: both halves, packaged as one record

When the disagreement matters, the two halves get assembled into one dispute pack: the per-call receipts from both agents, read in time order, plus the handover record that carried the job between them. The receipts settle what each agent actually ran. The handover settles what was passed, what was accepted, and what was flagged. Either half alone leaves a hole the other agent can argue through; together they close it.

The handover half is a receipt like any other. A real one from the public stream: tool handover, saved 2026-10-25T15:07:17Z, at zambo.dev/run/ce733f8e-5b0f-468a-9fa9-1fa106f891a5, checked before this update was published: the verification endpoint returned verified, with the recomputed digest matching the saved digest. Pair a record like this with the step receipts on each side of it, the live_price receipt in the worked example above is one, and the dispute stops being two stories. It becomes one timeline that either recomputes or does not.

Set it up before the next disagreement

Records settle disputes only if they exist. Route agent work through tools that receipt as they run, on one endpoint your agents share, instead of letting each agent summarize itself afterward. One URL in each client: https://zambo.dev/mcp. Starting is free, no account needed: 20 free calls per day, then you upgrade. For the format itself, the receipt is an AER-1 record, an open format published as IETF Internet-Draft draft-zambo-aer1-26, with a public conformance corpus of 126 vectors and 129 checks anyone can rerun.

Honest limits

  • A receipt settles what was saved, not what was right. A call can run, get receipted, and still return a bad result. The dispute "did it happen" is settled by the record; the dispute "was it correct" is settled by checking the result.
  • Work done outside the record stays arguable. If an agent did a step in a tool that leaves no record, no procedure can prove it afterward. That gap is the real finding, and the fix is the setup above.

Questions, answered

When two AI agents disagree about what happened, what record settles it?

The record saved when the work ran: per-call receipts with the UTC time, the tool, and the saved result, read in time order and checked at zambo.dev/verify. A claim with a matching record stands. A claim without one is unproven, and the step gets rerun under receipt.

How do I prove an AI agent did NOT do a step it was supposed to skip?

The same records, read the other way: line up the calls that did run in time order. If the forbidden step ran, it left a receipt. An absence in a complete, checked timeline is the strongest available evidence the step never ran.

What is the record behind a handover between agents?

A handover is one link carrying the goal, the steps in order, the outputs, and open items, with the receiver's acceptance or flag recorded on it. Combined with per-call receipts, it shows both what ran and who took responsibility for the next step.

Read the AER-1 IETF Internet-Draft. Browse the public registry of AER-1 implementations.

See it on a real call: the live demo runs one real Zambo call and hands you its verifiable receipt, no signup. To put a receipt under every call your agent makes, a Zambo Day Pass unlocks everything for 24 hours for $0.99.