Memory Atoms
An atom is the fundamental unit of knowledge in Parametric Memory. Every piece of information your agent stores is an atom.
Anatomy of an atom
interface Atom {
key: string; // Namespaced identifier, e.g. "v1.user.Glen.pref.theme"
value: string; // UTF-8 string up to 64KB
version: number; // Auto-incremented on each update
hash: string; // SHA-256 of (key + value + version)
createdAt: number; // Unix timestamp ms
updatedAt: number;
}Key conventions
Keys use dot-separated namespaces. There is no enforced schema — the convention is
<version>.<domain>.<entity>.<attribute>:
v1.user.Glen.preference.theme → "dark"
v1.project.mmpm.status → "active"
v1.session.abc123.last_tool_used → "memory_store"
v1.fact.nodejs.current_lts_version → "22"Why namespaces matter: The Markov model learns which keys co-occur in sessions. Consistent prefixes give the prediction engine better signal.
Versioning
Atoms are append-versioned — you cannot delete or overwrite a version. Each store
call increments the version. You can recall any historical version explicitly:
// Latest
const latest = await memory.recall("v1.user.Glen.preference.theme");
// Historical
const v1 = await memory.recall("v1.user.Glen.preference.theme", { version: 1 });Size limits
| Tier | Max atom value size | Max atoms |
|---|---|---|
| Starter | 4 KB | 1,000 |
| Solo | 16 KB | 10,000 |
| Professional | 64 KB | 100,000 |
| Team | 64 KB | 500,000 |