Preserve where a memory came from without confusing source metadata with authorization or ownership.
Provenance is part of the public memory record
The memory contract exposes provenance alongside content, path, source_identity, agent_id, agent_instance_id_hash, and agent_instance_source. Provenance is structured evidence about how a record was produced; it is not a bearer token and cannot widen the caller's access.
- source_identity is the compact caller/source label used by write and audit paths.
- provenance is a JSON object for source, adapter, event, or other evidence fields.
- agent_instance_id_hash is the privacy-preserving installation attribution value.
Agent events carry their origin
AgentEvent.to_memory_candidate creates a MemoryCandidate with provenance containing source=agent_integration, adapter=<event source>, and event_id. The candidate metadata also keeps the event type, time, agent id, task id, tool name, command, file path, and status after the shared sanitizer has run.
{
"provenance": {
"source": "agent_integration",
"adapter": "codex",
"event_id": "evt_<stable-event-id>"
},
"metadata": {
"agent_event": {
"event_type": "decision_made",
"task_id": "<task-id>"
}
}
}
Write attribution with the memory
The public remember and store request models accept source and provenance. Supply stable, non-secret labels at capture time; keep the access credential in its header or environment and let the server sanitize content, metadata, and provenance before persistence.
POST /v1/remember
X-API-Key: <your-assigned-api-key>
Content-Type: application/json
{
"content": "The deployment decision was verified.",
"path": "projects/memory-os/decisions",
"source": "codex",
"provenance": {
"source": "agent_integration",
"adapter": "codex",
"event_id": "evt_<stable-event-id>"
}
}
Sanitization does not erase lineage
The persistence sanitizer walks content, metadata, and provenance structurally. Credential-shaped values are removed; if redaction occurs, the server records privacy.server_write_sanitizer audit metadata while retaining safe provenance fields. Treat the resulting record as sanitized evidence, not as a raw event archive.
Persona flows
ChatGPT user
Give ChatGPT durable access to your XMemo preferences, project facts, decisions, and TODOs without pasting bearer tokens into a chat.
Save a synthetic preference or project note, start a new chat, then ask ChatGPT to recall it through XMemo before continuing work.
Copilot / Codex developer
Carry repo decisions, coding conventions, bug-fix notes, and task history between IDE and CLI agents.
Record a codebase decision or bug fix, then ask the next IDE or CLI agent to recall the relevant XMemo context before editing.
Team / enterprise pilot owner
Evaluate shared memory with account controls, source attribution, export/delete workflows, and reviewer-safe setup evidence.
Have a pilot member save a synthetic team memory, confirm source attribution in XMemo, then review delete/export and support paths.