The Raw Stream
Episodes are the raw stream of everything that happened. Every conversation turn gets a compact block appended to today’s episode file — a timestamped headline, the user message, the tools that ran, and a preview of the response. No LLM call — just a formatted, capped extraction of the turn.Location
YYYY-MM-DD.md.
How Episodes Are Written
After every turn completes,hippocampus.appendEpisode() appends a block to today’s file:
success, failed, denied, or blocked), and a response preview (capped at 200). The full-fidelity transcript lives in brain/conversations/*.json and is always reachable via conversation_read.
Origin Tags
Turns that didn’t come from you typing in the app carry an origin tag in the header —[heartbeat] for scheduled automation runs, [worker] for workflow agent tasks, [telegram] or [whatsapp] for channel messages, [procedure] for saved-prompt runs. In-app turns carry no tag. This keeps machine-generated activity distinguishable from real user activity, both for recall filtering and for the nightly consolidation.
No LLM call is involved. The block is a deterministic extraction of what happened, not a generated summary. This keeps episode logging instant and free.
Example Episode File
Here’s what2026-05-16.md might look like after a day of use:
How Episodes Are Used
Retrieval, Not Injection
Episodes are never loaded into the prompt. The<memory_map> stub in the system prompt tells the model how many episode records exist and their date range; the content itself is retrieved on demand:
memory_searchwithsources: "episode"for keyword search across every daywolffish_recallwithdate: "2026-05-16"to pin results to a single daymemory_geton afile:ref to read a whole episode file
Consolidation Input
Episodes are the raw input for the daily compaction pass. Each night the brainstem reads that day’s episode file, sends it to the LLM for fact extraction, promotes durable facts to knowledge files, and appends a daily summary to the week’s consolidated file. The weekly review then records a coverage digest over the last seven days. Episodes remain on disk afterwards — they’re never deleted automatically.Cortex Search
All episode files are indexed by the cortex (SQLite FTS5) at section granularity — each## HH:MM block is its own searchable record. When you ask “what did we discuss about auth last week?”, memory_search returns the matching blocks with BM25 relevance ranking and refs you can follow with memory_get.
Manual Editing
Episode files are plain markdown. You can:- Delete entries you don’t want remembered
- Add entries to seed memory (e.g., a
## 09:00 — Started the billing service projectblock) - Edit entries to correct inaccuracies