Memory and personalization
Vault Operator remembers what you care about, how you like to work, and what you have discussed before. The same memory store also takes input from the other AI tools you use, so a fact learned in Claude Code can surface in a Vault Operator conversation.
The mechanics behind this are explained in Memory and Unified Chat Memory. This page covers how to use it day to day.
How it remembers
Memory v2 stores everything as facts. A fact is a single short statement with metadata: when it was learned, which AI tool produced it, how often it has been confirmed, which topics it belongs to. Old fixed-category files (user-profile.md, projects.md, patterns.md, soul.md) are gone. The fact store handles all of those at once.
Three things happen automatically:
- At the start of each conversation, Vault Operator picks the facts that match what the conversation is about and includes them in the system prompt. A coding chat sees coding facts; a personal chat sees identity and preference facts.
- At the end of each conversation, Vault Operator extracts new facts from the transcript in a single LLM call. Facts that re-appear get a confirmation boost. Facts that contradict existing ones produce an edge so you keep the history.
- In the background, importance scores age based on how often a fact gets used. Identity-level facts decay slowly (months). Event facts decay quickly (weeks). Nothing gets deleted; it sinks down the ranking until something more relevant takes its place.
You can browse, edit, or soft-delete individual facts. Settings > Vault Operator > Agents > Memory > View memory opens a viewer with a list of facts, edges, and the active communication style.
You are in control
Memory is a SQLite file in .vault-operator/data/memory.db. The viewer lets you remove anything that is wrong. Auto-extraction never overwrites a fact in place, so the original is always recoverable through the audit log.
Three layers, one store
The internal architecture is the Three-Layer Memory Architecture (3LMA). All three layers read and write the same SQLite file. Nothing here lives in markdown notes.
| Layer | What it does | Code |
|---|---|---|
| Store | Facts, edges, communication styles, session summaries in memory.db | KnowledgeDB |
| Retrieval | Picks the right facts for the current conversation using topic inference and hybrid search | MemoryRetriever |
| Updates | Extracts new facts, resolves conflicts, ages importance over time, in one tool call per session | SingleCallExtractor |
You will rarely need to think about which layer does what. The viewer shows facts; the agent retrieves and updates them. The full breakdown lives in Memory.
Memory across your other AI tools
If you use Claude Desktop, Claude Code, ChatGPT, or Perplexity alongside Vault Operator, memory can flow between them via the MCP server.
The shared layer is called Unified Chat Memory (UCM). From your side, here is what it gives you:
- Conversations from those tools land in Vault Operator's history sidebar, in a tab named after the source (Claude.ai, Claude Code, ChatGPT, Perplexity).
- Facts saved in those tools end up in the same store as Vault Operator's own facts, with a
source_interfacetag. - The other tool can call
recall_memoryandsearch_historyto read what Vault Operator knows. - A topic that crosses tools (start in Claude.ai, continue in Claude Code) can be linked into a single cross-interface thread.
To set this up, see Connectors.
Sync modes per tool
Family-shared accounts are a real concern. ChatGPT and Perplexity ship with Manual sync mode by default, which means saved conversations stay in history but do not flow into memory until you confirm. Your personal Claude tools default to Auto, where extraction runs immediately.
Override per source in Settings > Vault Operator > Agents > Memory > Cross-surface sync.
Living documents
The other tools usually save the same conversation more than once as it grows. UCM treats those repeated saves as a living document: new turns get appended to the existing conversation instead of creating duplicates. The 30-minute window per MCP session keeps it predictable. Settings > Vault Operator > Agents > Memory > Living-document by default controls the global setting.
Chat history
Chat history is on by default. Every conversation, both Vault Operator's own and those saved from other tools, lives in history.db and shows up in the sidebar.
To open the history:
- Click the clock icon in the chat toolbar.
- The panel groups conversations by date (Today, Yesterday, This Week, Older).
- Source tabs above the list let you filter to one tool at a time.
- Click any conversation to restore it and pick up where you left off.
If you have a small, fast titling model configured (Haiku, Flash, or GPT-4o mini work well), Vault Operator titles conversations automatically. Without one, it falls back to the first 60 characters.
Chat linking
When Vault Operator creates or edits a note, it can add a link back to the conversation in the note's frontmatter. Anyone reading the note later can jump straight to the chat that produced it.
How it works:
- A
chatsfield is added to the note's YAML frontmatter - The value is a list of clickable links in the format
obsidian://vault-operator-chat?id=... - Clicking a link opens Vault Operator and jumps straight to that conversation
To configure chat linking, go to Settings > Vault Operator > Advanced > Interface and look for the "Auto-link chats in frontmatter" toggle.
Cost saving
Use a cheap, fast model for titling, separate from your main model. Even small models handle short titles well.
Onboarding wizard
When you first install Vault Operator, a conversational setup wizard walks you through the basics:
- Introduction: Vault Operator introduces itself and asks your name
- Naming: rename the agent if you prefer a different name
- Backup reminder: a prompt to back up your vault before you let the agent write
- Permissions: pick your comfort level for automatic approvals
- Profile: tell it what you use your vault for so it can tailor its help
Your answers go straight into the fact store as identity-kind facts with a high initial importance and a long half-life. Vault Operator is personalized from the first real task.
Vault notes as memory sources
You can mark any vault note as a memory source. Vault Operator runs the same extraction pipeline against it that runs after a conversation, with source_uri='vault://...'. Edits to the note retrigger extraction in the background. Long-form documents like personal-profile.md or project-roadmap.md become structured facts without losing the original.
To mark a note, ask the agent: "mark @note as a memory source". The agent calls mark_note_as_memory_source against the note path. Use unmark_note_as_memory_source to remove the mark, and list_memory_source_notes to see every note that currently feeds the fact store, with the count of facts each one has produced.
To rewrite the agent's tone or your "soul card" (the short identity block included in the system prompt), ask the agent to call update_soul with the new text.
Memory settings
Open Settings > Vault Operator > Agents > Memory to configure:
| Setting | What it does | Default |
|---|---|---|
| Enable memory | Master toggle for the entire memory system | On |
| Auto-extract sessions | Run the single-call extractor when a conversation ends | On |
| Minimum messages | Conversations shorter than this threshold are skipped (range: 2 to 20) | 4 |
| Chat history | Save conversations so you can browse and restore them | On |
| Cross-surface sync > Default sync mode | Auto or Manual when a source has no override | Auto |
| Cross-surface sync > Living-document by default | Treat repeated save_conversation calls as appends | On |
| Cross-surface sync > Sync mode per provider | Override Auto vs Manual per source | Defaults above |
| View memory | Browse facts, edges, communication styles | n/a |
| Delete all memory | Wipe the entire fact store and audit log (requires typing DELETE) | n/a |
The memory extractor reuses the agent's main model. There is no separate model dropdown anymore: the cost stays small because the extractor runs as a single structured tool call, not a free-form conversation.
Tips
Have real conversations. The more you interact, the more the fact store learns. One-off lookups produce little memory.
Correct the agent. If a fact is wrong, tell it. Corrections produce an edge of kind
updateand the new fact takes precedence in retrieval.Skim the memory viewer now and then. Soft-delete anything outdated. The audit log keeps a record so you can recover if you remove something by mistake.
Tune the minimum messages threshold to your habits. Short chats not worth remembering? Raise it. Every conversation matters? Lower it.
Use sync mode per source if you share an AI account with family. Manual mode keeps the conversation in history but holds extraction back until you confirm.
Keep chat linking on. The frontmatter links give you an audit trail across notes, conversations, and tools.
