Typed Knowledge

Not all memory
is the same.

Five typed primitives turn notes into structured intelligence. The Dream Engine treats a @Fact differently from a @Hypothesis. A @Decision compounds differently than a @Goal. Shape matters — and REM knows it.

Every knowledge primitive has a job.

Tag a memory with its type at capture time — explicit with an @mention, implicit through the SDK, or auto-detected by REM. Then watch the Dream Engine treat each one according to its semantics.

@Fact
Verified, static, citable. Compressed aggressively; validated against sources.
"Stripe raised at $95B in 2024"
@Hypothesis
Provisional belief. Tracked over time; flagged when contradicted by new facts.
"Power users prefer daily dream cycles"
@Decision
Committed choice. Immutable by default, branchable. Drives counterfactual analysis.
"Ship ambient mode in Q2"
@Goal
Directional intent. Gates retrieval ranking; fused with calendar for intent prediction.
"Hit 10k MRR by Q3"
@Model
Mental model, framework, or theory. Synthesized across sources; strong retrieval weight.
"Jobs-to-be-done framework"

Typed primitives drive the Dream Engine.

Generic memory gets generic consolidation. Typed memory triggers type-aware strategies. Every primitive has a signature interaction with each of the 9 dream strategies.

@FactCompress aggressively · Validate against sources · Flag contradictions
@HypothesisAssociate with facts · Forecast outcomes · Evolve with new evidence
@DecisionBranch on change · Counterfactual simulate · Reflect on consistency
@GoalBoost retrieval weight · Pattern extract from progress · Synthesize paths
@ModelCross-source synthesize · Generate insights · Associate with hypotheses

Three ways to tag.

# 1. Explicit via SDK — strongest signal await rem.memory.set({ "key": "q2-pivot", "value": "Ship ambient mode in Q2", "type": "decision" # first-class field }); # 2. Inline @mention — works in any input "@Decision: Ship ambient mode in Q2. Driver: churn ties to capture friction." # 3. Auto-detected by REM # "I've decided to ship ambient mode in Q2" → auto-typed as @Decision # "Stripe raised at $95B" → auto-typed as @Fact

Auto-detection runs on every memory write. Confidence below 0.7 keeps the memory untyped — you can upgrade it later in the console with a single click.

Knowledge with a shape.

Generic memory is a lake. Typed primitives are a system. Every Dream Engine strategy gets smarter when your memory has semantics.

Start Free Read the docs