The Open Memory protocol (draft 0)
Last verified against the code: 2026-10-21 (first commit). Only §1 is implemented (
lessons.jsonl); the rest is the design from the paper §5, written down so it can be argued with.
The protocol is what makes Open Memory open: the format of a lesson, how it moves, and the rule by which it becomes common knowledge. It is meant to be small enough to fit on one page and strict enough to be safe.
1. The lesson (implemented)
One JSON object per line, UTF-8, in lessons.jsonl:
| Field | Type | Meaning |
|---|---|---|
id |
string | Local identifier |
text |
string | The lesson. An observation, never an instruction. |
kind |
error | correction |
What kind of surprise it came from |
seen |
integer | How many surprises it has absorbed |
strength |
number | Its current weight |
updated |
ISO 8601 | When it last changed |
Readers ignore unknown fields; writers never remove or rename one. Nothing from the raw stream appears: no transcript text, paths, commands, names or outputs beyond what the lesson sentence itself says.
2. Provenance (designed)
Fields a shared lesson adds:
| Field | Meaning |
|---|---|
hash |
BLAKE2b of text + the sorted hashes of its source episodes: the lesson's identity across agents |
origin |
The publishing agent's public key fingerprint |
sig |
The origin's signature over hash, text, kind, updated |
parents |
Hashes of lessons this one merged from, when two lessons were found to be the same |
Two agents that meet the same surprise and write the same sentence produce the same hash: the commons
deduplicates by content, and the second agent's publication is a verification, not a new lesson.
3. The merge rule (designed)
A lesson has a state in the commons:
| State | Meaning | Transition |
|---|---|---|
candidate |
Published by one agent | → common after N independent confirmations (N = 3 proposed) |
common |
Verified | → fading when confirmations stop for W days (W = 90 proposed) |
fading |
Losing strength | → removed, or back to common on a new confirmation |
revoked |
Withdrawn by its origin, or by a quorum | Propagates like a lesson; every holder drops it |
A confirmation is an agent's sleep reporting that a prediction made from the lesson was confirmed by that
agent's own sessions, where that agent did not itself publish the lesson and had not met the surprise before
receiving it. The verification is the normal verify pass; it costs nothing extra.
4. Safety rules (designed, the first one implemented)
- A lesson is an observation, never an instruction. Imperative lessons are rejected at write, at receive and at merge. No agent ever acts because a lesson says to; it acts because it decided to, with the lesson in mind.
- Nothing raw moves. Episodes, transcripts and screens never leave the machine. Lessons are published only by opt-in, per project.
- Everything is signed and hashed. A lesson without a valid signature is dropped. A revocation is signed by the origin or by a quorum of confirmers.
- The personal layer is sovereign. Lessons about the person (corrections) are never published by default; only error lessons are. The commons is what everyone knows; who an agent is stays its own.
- Readable all the way down. Any holder can show a person every lesson it holds, where each came from, and who confirmed it.
5. Transport (designed)
Lessons move as files first (lessons.jsonl copied between machines or checked into a repository), then by gossip:
each agent exchanges its new lessons and confirmations with a few peers on each sleep. Logarithmic in the number
of agents; no center required. A directory of peers is a convenience, not a dependency.
6. Composition (designed)
An agent runs with layers, each a lessons.jsonl: common → domain (a language, a tool, a codebase) → personal.
Higher layers never overwrite lower; an agent sees the union and the strongest instance of a duplicate.
7. What is deliberately not in the protocol
- Any representation of compiled state. Compiled memory (paper §6) is per model and per agent; what moves is always the text.
- Any payment or ranking of agents. Confirmations are counted, not weighted by who made them, until there is evidence that weighting helps.
- Any central registry. A directory of peers may exist; nothing depends on it.