Memory
Memory Types
Understand Origin's six canonical memory types, how agents choose them, and which legacy aliases still appear at API boundaries.
At a glance
01
Origin's current public taxonomy has six canonical memory types: identity, preference, decision, lesson, gotcha, and fact.
02
Corrections are still valid capture content, but correction is not a canonical memory_type value in the current wire taxonomy.
01
Canonical values
The daemon stores canonical memory_type values as lowercase strings. Claude Code skills pick one of these values in local memory mode; model-equipped daemon paths can classify on the daemon side.
Use the type that best explains why the memory should matter later, not merely the first label that seems plausible.
memory_type
identity durable facts about the user
preference habits, style choices, or user preferences
decision a choice made with rationale
lesson root cause, workaround, or technical insight
gotcha sharp edge, warning, or negative learning
fact durable knowledge about people, projects, or tools02
How to choose
Use decision for a concrete choice with rationale. Use preference for a recurring user habit or style. Use lesson when the work produced a reusable insight.
Use gotcha for traps and warnings. Use fact for durable knowledge about people, projects, tools, or the work itself. Use identity only for durable facts about the user.
03
Corrections and supersession
A correction is a kind of capture intent, not a canonical memory_type. When a fact changes, capture the corrected statement and include what it supersedes.
Origin can then surface revision or supersession behavior while keeping future recall pointed at the current fact.
04
Stability tiers
Origin treats identity and preference as protected because they describe the user. Standard work memories can still be important, but they are easier to supersede when new work changes the current record.
Missing or invalid types are treated as ephemeral at the stability boundary. Good captures should avoid leaving the type ambiguous when the agent can classify confidently.
Stability
Protected: identity, preference
Standard: decision, lesson, gotcha, fact
Ephemeral: missing or invalid memory_type05
Aliases and compatibility
Some high-level or legacy labels can still appear at API boundaries. They exist for compatibility or classification flows, not as the six user-facing values agents should prefer.
For new captures, choose one of the canonical values unless the daemon or skill explicitly handles the alias.
Aliases
profile classify into identity or preference
knowledge classify into fact, lesson, or gotcha
goal deprecated; folds into identity
correction/custom/recap legacy compatibility; folds into fact06
API usage
memory/store accepts memory_type as an optional field. If you provide it, use the canonical lowercase value.
If you are building a Rust local tool, prefer origin-types so invalid values fail visibly instead of drifting through untyped JSON.
Next
Glossary
A quick map of Origin terms: memory, handoff, page, space, daemon, MCP, local index, provenance, and eval language.
Read next