Method

What an AI agent should record every time it acts

An agent that runs unattended and leaves nothing behind cannot be audited, corrected, or trusted — and its silent failures are indistinguishable from success until something downstream breaks. Six fields per action fixes that. Here they are, and what to do with them.

Published 2026-08-07

The question is not "did it work?" — you will find that out eventually either way. It is "if it stopped working, how long before anyone knew, and could you say what it did in the meantime?"

Deciding what an agent may do on its own is the first governance question, and it has its own page: what an AI agent should be allowed to do on its own. This is the second question, and it is the one that gets skipped. A boundary you cannot verify after the fact is not a boundary — it is an intention. The record is what turns one into the other.

Most teams reach for application logs and consider it handled. Logs are written for debugging: they are verbose, unstructured, retention-limited, and organised around code paths rather than business actions. Nobody reviews them weekly, and nobody can answer "what did this agent decide about that customer in March" from them. That is a different artifact.

The six fields

One entry per action the agent takes — not per function call, per action a human would recognise. Six fields, all of them required. The discipline is in the "required": an optional field is a field that is absent exactly when the incident happens.

The test for the sixth field Pick any entry at random and ask: who said this agent could do this? If the answer requires opening a config file, reading a prompt, or asking the person who built it, the record is incomplete. The authority belongs in the entry, at the moment of the action — because the config will have changed by the time anyone asks.

Append-only, or it is not evidence

A record you can edit is a record that proves nothing, and the point is not that someone would falsify it. The realistic failure is far more ordinary: a well-meaning cleanup, a migration that rewrites history, a retry that overwrites the first attempt and erases the fact that there was a first attempt. Overwriting the failed run destroys the single most interesting entry in the file.

Append-only also gets you something subtler for free. When every attempt is preserved, the shape of the sequence becomes readable — three retries then a success is a different operational reality from one clean success, and only one of those is fine. A mutable record smooths that away.

The failure mode this exists for

Automated work fails silently and asymmetrically. A broken report is loud: someone opens it and it is empty. An agent that quietly stopped acting produces nothing at all — and nothing looks identical to "there was nothing to do." Weeks pass. When it surfaces, it surfaces downstream, with no trail explaining when it began.

This is why observability is one of the four properties that decides whether a process is even a viable automation candidate in what to automate first. If nothing would tell you the work stopped, you are not automating a process — you are removing a person from the only place the failure was visible.

So record the null case explicitly. "Ran, found nothing to do" is a real entry and must be written. An agent that logs only when it acts is silent in exactly the two situations you care about most: when it has stopped running, and when it has stopped finding work it should be finding.

What to review, weekly

A record nobody reads is a compliance artifact, not governance. The review is short and looks at four things — none of which require reading individual entries:

Findings from that review become proposed policy changes, and approved changes become the new baseline — which is the audit and improve half of the five-step loop. Without the record, those two steps have nothing to operate on and quietly become aspirations.

Where this came from

Our own workforce of internal agents writes to exactly this shape, and has since before we offered it to anyone — the same append-only record behind the hiring pipeline case study. The sixth field was not in the original design. It was added after an incident where the interesting question turned out not to be what the agent did, but who had said it could — and the record could not answer it.

← All writing

If you have agents running and no record like this, that gap is the first thing we'd close. Bring us what's running and we'll tell you what it should be leaving behind.

Talk to us