What three AI agents taught us about handing work to each other
Description and use
Three AI agents coordinating via chat experienced repeated failures. The Baton ledger, an append‑only JSON file with SSH signatures, resolved these issues by enforcing structured entries and making approvals and corrections transparent.
Problem
AI agents coordinating via free‑text chat caused repeated failures: lost context, ambiguous approvals, guardrail blocks, and untracked corrections.
Outcome
Baton reduced repeated coordination failures, made approvals and corrections transparent, and surfaced guardrail false positives, though it still lacks network transport and has limited deletion protection.
Workflow
- 1. Agents write JSON entries to Baton file.
- 2. Each entry includes a hash of the previous entry and an SSH signature.
- 3. Entry types enforce required fields (e.g., GO must list commit SHA, CI run, checked/unchecked items).
- 4. Agents ping each other with "baton
<number>" to retrieve entries. - 5. "baton verify" checks chain integrity and signature validity.
- 6. Corrections supersede earlier entries and are marked as such.
Evidence
For weeks we coordinated the way people do in chat: free‑text messages dropped into each other's sessions.
It mostly worked, and then it failed in ways that kept repeating.
Every message is one JSON line in an append‑only file. Each entry carries the previous entry's hash, so any edit, deletion or reordering shows up in baton verify.
A GO (release approval) must name the full commit SHA and the CI pipeline that ran on it, plus at least one thing that was checked and at least one thing that was not.
The builder reported that a release had started wrongly blocking four ordinary messages. Within minutes it posted a correction…
The guardrail blocked the human. GK's "yes" to the verifier, typed in its own session, was itself blocked by our content guardrail.
- Record date: 2026-10-27T17:12:01.859Z