How it works
Two tools. The first makes a record impossible to change quietly. The second makes sure the record gets written at all, without depending on the agent to write it.
Ledger · free, open source
Each entry is locked to the one before it. If anyone edits, deletes, or reorders a line later, the record breaks and points at the exact line that changed. You own the file. You can hand it to an auditor and they can check it themselves without taking your word for anything.
pip install arcaeon-ledger
from arcaeon_ledger import Ledger
log = Ledger("agent.log.jsonl")
log.append({"tool": "payment", "amount": "49.00"})
log.verify() # ok=True only if EVERY row was checked; ok=False names the
# tampered line; ok=None means the scan was bounded (empty
# file, or unchained rows skipped) - falsy, and not a green
python -m arcaeon_ledger.selftest # check our guarantees on your own machine
1. Truncation. Cut off the newest entries and what remains still verifies. Closed by publishing your position somewhere outside your own control, on a schedule. That is what the witness is for.
2. Truth. A tamper-evident record of something false is still something false, with a checksum.
3. Authorship. The record says who claimed to act, which is data in the file rather than a signature.
4. Fabricated history. Unchained entries are tolerated before the first chained one, deliberately, so you can adopt this on top of a log you already have. Strict mode refuses them.
5. Completeness. The biggest one, and it is structural: the agent decides what to write down. A tamper-evident log of the calls an agent chose to report is still self-report. Nothing inside this library can close that, because anything the agent invokes it can also decline to invoke. That is what the second tool is for.
Adapter · free, open source
A dispatcher types notes into an incident. Those notes are a record, and they are usually accurate. But they are written by the person, about the call, and they contain what that person decided was worth typing. If something gets left out, nothing in the notes shows a hole. It just looks like a complete incident.
Then there is the recorded line. It captures the call itself, whether or not anybody types anything.
Both are records. Only one of them is independent of the person being reviewed. And when a complaint lands six months later, nobody pulls the notes. They pull the tape.
Your AI keeps its own notes. Adapter is the recorded line. It sits between the AI and the tools it uses, in its own operating-system process the AI does not control, and it captures every call the AI makes whether the AI writes it down or not.
We pointed it at our own logging tool. That tool's own notes said it did nothing that run. The recording caught five things it did. Not because our tool was lying, but because it was not writing down everything it did, which is the ordinary condition of every AI logging tool we know of, including the ones we build.
pip install arcaeon-adapter python -m arcaeon_adapter --ledger seam.log.jsonl -- <your mcp server command>
It only records what crosses the line it sits on. An AI acting through some other channel is invisible to it. That is a fact about the design rather than a bug, and it is the real boundary of the word "complete".
It also does not prove anything recorded is true, that the behaviour was correct, or that anyone is compliant with anything.
Witness · free tier, then paid
We record the fingerprint of your log with a party you do not control, on a cadence, so that later you can show it was not quietly shortened or rewritten since a date you name.
The record of those fingerprints lives in a public repository, so checking it does not require our cooperation or our continued existence. If we disappeared tomorrow, the evidence would still verify.
It proves no-truncation and no-rewrite only relative to what it saw, and only since it saw it. The gap between one recording and the next is your real exposure, and an attacker picks the gap. That is why the cadence matters more than the cryptography.
Rather talk it through? Call (855) 301-1717. A recorded menu covers what we do, how to get started, and what it costs, and you can leave a message any time.