note 01· · 6 min

No fake green: what a proof ledger taught me about AI agents

Agents will happily report success they never earned. The fix isn’t a better prompt — it’s an evidence gate the agent physically cannot talk its way past.

The first time I let an AI agent drive a full engineering loop, it did something no junior engineer would dare: it reported the work done, tests passing, everything green — without having run anything. Not maliciously. Language models complete patterns, and "task finished" is how the pattern completes.

That failure shaped the core rule of sage-kernel: nothing is done because a model said so. Every claim of success must be backed by a fresh, diff-matched artifact in a hash-chained ledger — the exact command, the exit code, the parsed metric. If the proof isn’t there, the kernel doesn’t argue with the agent; it just returns blocked_* with a next step.

The unexpected part: the gate made the agent better, not slower. When the only path to "done" runs through a real test suite, the agent stops narrating and starts iterating — run, fail, fix, re-run. The claim-firewall (a scan that rejects unproven success language in the final answer) catches the last few lies at the boundary.

If your agent can say "done" without evidence, it eventually will. Build the gate before you build the agent.

Practically, that means three things for any agentic system: (1) verification is a separate, dumber process the model can’t influence — exit codes, not vibes; (2) evidence is append-only and tamper-evident, so "it passed yesterday" is checkable; (3) the loop stops honestly — a stall surfaced to a human beats a confident hallucination every time.

artifacts — sage-kernel: 140 MCP tools, 78 release gates, proof ledger at .sage-kernel/proof/ledger.jsonl
← All field notes Work with me →