dev.bastienrobert.memory.record
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A single durable memory belonging to the user. Deliberately one generic type: specialising into fact/preference/project/event types is premature until real requirements demand it. Retrieval-specific state (BM25 scores, vector ids, index cursors, caches) MUST NOT be stored here — it is derived data owned by whichever memory engine indexes this record. Consumers MUST preserve properties they do not recognise: an implementation that rewrites a record after dropping unknown fields destroys data written by a newer one.",
"key": "tid",
"record": {
"properties": {
"content": {
"description": "The memory itself: one self-contained statement that still makes sense months from now.",
"maxGraphemes": 2500,
"maxLength": 10000,
"type": "string"
},
"createdAt": {
"description": "When the memory was first stated.",
"format": "datetime",
"type": "string"
},
"kind": {
"description": "Coarse classification. Open vocabulary: an unknown value is legal and must not be dropped by a consumer.",
"knownValues": [
"fact",
"preference",
"decision",
"context"
],
"type": "string"
},
"occurredAt": {
"description": "When the remembered event happened, independent of createdAt. Omit when unknown.",
"ref": "#occurrence",
"type": "ref"
},
"provenance": {
"description": "Where this memory came from. Advisory: consumers must tolerate its absence.",
"ref": "#provenance",
"type": "ref"
},
"scope": {
"description": "Application label within a Space, never an access boundary. Use separate Spaces for different trust boundaries.",
"maxLength": 512,
"type": "string"
},
"supersedes": {
"description": "Older memories replaced by this statement, several when it merges them into one. Keep history; consumers only mask replacements within the same authorized Space and repo.",
"items": {
"format": "at-uri",
"type": "string"
},
"maxLength": 20,
"type": "array"
},
"updatedAt": {
"description": "When the memory was last revised, if ever.",
"format": "datetime",
"type": "string"
}
},
"required": [
"content",
"createdAt"
],
"type": "object"
},
"type": "record"
},
"occurrence": {
"properties": {
"from": {
"format": "datetime",
"type": "string"
},
"precision": {
"description": "Precision of the source statement; year and month dates are anchors, not exact event dates.",
"enum": [
"year",
"month",
"day",
"instant"
],
"type": "string"
},
"to": {
"format": "datetime",
"type": "string"
}
},
"required": [
"from"
],
"type": "object"
},
"provenance": {
"properties": {
"agent": {
"description": "The agent that wrote the memory, e.g. 'claude-code', 'codex'.",
"maxLength": 256,
"type": "string"
},
"client": {
"description": "OAuth client id of the application that wrote it.",
"format": "uri",
"type": "string"
},
"sourceUri": {
"description": "What the memory was derived from, if anything.",
"format": "uri",
"type": "string"
}
},
"type": "object"
}
},
"id": "dev.bastienrobert.memory.record",
"lexicon": 1
}
Metadata
- DID
-
did:plc:b3m4nj3hvdeqg5csp7qhlcjs - CID
-
bafyreify7srhighvy7i5zvatgjhamhy3enjihepshdoiy7o5orexhz6r4q - Indexed At
- 2026-09-14 08:09 UTC
- AT-URI
-
at://did:plc:b3m4nj3hvdeqg5csp7qhlcjs/com.atproto.lexicon.schema/dev.bastienrobert.memory.record
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
ai.syui.gpt.memory record
AI memory snapshot. Each record is a versioned snapshot of accumulated knowledge.
-
garden.engram.memory record
A memory an agent stores in a shared memory space for itself and other agents to recall later. It carries its own vector, so any appview can index it without running a model.
-
A public memory - an event or experience worth recording.