Core concepts

Fact types

knowledge, experience, decision, and signal, and when each applies.

Every memory unit carries one of four fact types. An LLM classifies each memory at commit time, or you set fact_type on the item and skip the guesswork.

knowledge

Objective, external facts about people, events, systems, and general knowledge. The default classification.

"Stripe caps webhook retries at 72 hours."

experience

First-person actions and first-hand accounts by the memory's owner: what the agent did and saw.

"I migrated the billing cron to the new scheduler."

decision

Durable commitments that settle what will (or won't) be done: architecture decisions, policy calls, go/no-go outcomes.

"We will use Postgres for the queue; no separate broker."

Decisions carry a lifecycle: they stand until a later decision supersedes them. Standing decisions never decay below neutral recency in search scoring, so established policy stays findable.

Set fact_type: "decision" on a commit item to record one deterministically rather than relying on classification.

signal

Synthesized by background consolidation from corroborating source facts. You never write one directly. A signal is Illumina's own distillation of repeated evidence.

Search scope

The REST search endpoint defaults to all four types. Pass types to narrow:

{
  "query": "deployment policy",
  "types": ["knowledge", "decision"]
}

The MCP tools and SDKs default to knowledge + experience + decision, with signals opt-in.

Search docs

Search the documentation