Episodic memory is the raw, ordered conversational record: sessions and turns as authored, including anaphora (pronouns and phrases like “he” or “that project” that refer back to something said earlier). Extracted identity, knowledge, context, instructions, and uncertainty records cite this layer through provenance (source.ref, source.span, source.trust). See Memory categories.
What is a session?
A session is a conversation container with a stable id, scope paths, and metadata. Memory extracted from the conversation references the session for audit and transcript views.
What is a turn?
A turn is one message with a role:
| Role | Description |
|---|---|
user | Human participant |
assistant | Model output |
system | Injected system prompt |
tool | Tool result |
Turns are ordered within a session. The episodic record is the source of truth for lexical attribution.
Recommended ingest: /facts/batch
For new integrations, send the full message list in one call instead of appending turns one HTTP request at a time:
Harness adapters (LangChain, Vercel AI, OpenAI Agents) use this path with platform-derived Idempotency-Key values.
Extraction pipeline
Each ingest path runs the same reconciler:
Extract entities, attributes, and relations from new text
Reconcile against existing records (authority, temporal, calibration)
Persist with provenance
Return a structured diff and
trace_id
You do not call a separate “process” endpoint.
Introspection
Session-scoped state and diff endpoints support debugging what changed across turns.
CLI transcript tooling
See Creating sessions and Adding turns for operational detail aligned with the current API.