Agents need to “remember” without turning every chat into a junk drawer. The stack I run splits that job into two systems that stay honest about what each is good for.

Neither replaces the other. One is query-shaped; the other is document-shaped.

The clearest on-ramp into both layers is Ivy — the agent interviewer: the /interview module in agent-talk-v2, with the extraction log that lights up as memory_remember and obsidian_vault_write complete. The table below is the conceptual split; that post is the live UI and wiring — same pipeline, different zoom level.

The fundamental table

Temporal memory (MCP memory tools)Obsidian
ShapeAtomic facts, dated, queryable by time / entityDocuments, folders, wikilinks, whole vault
Who writesAgents via memory_remember (and similar flows)You + agents via obsidian_vault_write
Best for“We agreed X on date Y”, preferences, “did we discuss Z?”, superseding old beliefsNarrative, research, legal / audit trail, graph structure, anything too long for a fact row
Retrievalmemory_get, memory_query_temporal, memory_with_episodesRAG, grep, glob, read file, graph_*

Why this split works

Temporal memory is the index card box — one claim per card, timestamps and entities baked in so you can ask *when* something became true and *what replaced it*. In an Ivy session, that is the Memory lane in the extraction sidebar — memory_remember when I say something stable and short enough to store as a fact.

Obsidian is the file cabinet and lab notebook — room for paragraphs, sources, links, MOCs, and the messiness of real thinking. If it needs sections, citations, or a wikilink graph, it belongs in the vault, not squeezed into a fact string. Ivy surfaces that as the Obsidian lane when she uses obsidian_vault_write — same interview UI, different destination.

Retrieval is the product

The mental model only pays off if fetch matches shape. Fuzzy “what did I ever write about this?” → RAG / graph / search in Obsidian. Tight “what do we believe *now* about this entity, and when did it change?” → temporal tools + episodes.

If I used only one layer, I would either drown facts in prose or flatten narratives into brittle bullets. Two layers keep both precise and expressive.

One line to keep

Facts with clocks in MCP memory. Stories with links in Obsidian. Pick the layer that matches the grain size of what you are storing — then retrieval stops being a treasure hunt.