Your agent's log has 1,509 rows and zero denials. That is the problem.
An agent that never refuses anything is not a working agent. It is a script with a credit card. I keep seeing the same artefact offered as proof of control: a log where every row says allowed. Fifteen hundred rows, zero
An agent that never refuses anything is not a working agent. It is a script with a credit card.
I keep seeing the same artefact offered as proof of control: a log where every row says allowed. Fifteen hundred rows, zero denials, exported to CSV for the auditor. It proves traffic. It does not prove that anything was ever stopped.
What a refusal actually looks like
A deny record is small and boring on purpose:
{
"v": 1,
"prev": "<sha256 of the previous record>",
"ts": "2026-10-31T09:14:02+00:00",
"decision": "deny",
"policy": "spend_limit_per_call",
"requested": {"amount_usdc": 40},
"limit": {"amount_usdc": 5},
"subject": "agent:invoice-runner",
"signature": "ed25519:..."
}
Four properties make it evidence rather than a note:
- It exists only when something was refused. If the file is empty, either nothing was stopped or nothing was checked. Both are answers.
- It chains.
prevbinds each record to the one before it; deleting a row breaks every row after it. - It is signed offline. A verifier checks the chain and the signature without trusting the service that produced it.
- It names the policy and the numbers. "Denied" is an opinion; "asked 40, limit 5, policy spend_limit_per_call" is a fact.
The question that breaks most demos
Show me one refusal from last week, with the policy that fired.
Most systems cannot answer it, because denials are logged at the same level as successes and thrown away first.
What this is not
It is not a compliance certificate, and it does not make an agent safe. It makes one narrow claim verifiable: this action was stopped, at this time, under this policy, and the record has not been edited since. Everything else still needs a human.
If you already keep such a log, the only thing I would ask: can someone verify it without your dashboard? If yes, you are ahead of most teams shipping agents today.
I build attest, a deterministic verifier for agent artefacts — schema, emptiness, provenance, and mandate authority, one Ed25519-signed verdict. The deny log is public: https://attest.rta.lat/deny-evidence
Originally published by Dev.to Security. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.