# Memory

> Source: https://whisperer.one/llms/memory.md · Whisperer machine-readable layer.
> Product overview: https://whisperer.one/llms/product.md · Full corpus: https://whisperer.one/llms-full.txt

Memory is Leo's long-term memory of the user, kept between sessions.

## What it is for

Without it the assistant starts every conversation from a blank page and makes the person
re-explain what they already said. Memory holds stable facts about the user, their
preferences, what was discussed in past conversations, and how recurring actions are usually
carried out.

## What it is not

- **Not the knowledge base.** Knowledge is content the user deliberately put in and can
  browse. Memory is what the assistant retained about the person.
- **Not the conversation thread.** A thread is one conversation and belongs to the assistant's
  own state; memory outlives it.
- **Not a silent recorder.** What is deliberately never written down is part of the design,
  not an omission.

## How it works

Each memory item is stored with its embedding and recalled by relevance to the current
question, within a retrieval budget. Entries have kinds and decay: not everything is worth
keeping forever, and an assistant that remembers everything equally is worse than one that
remembers what matters.

The user can list what Leo remembers and forget individual items. Forgetting is physical, not
a flag — which is also why it is not exposed to external MCP clients: erasing someone's
memories through a third-party client, with no confirmation screen, is not recoverable.

## Access from outside

`whisperer:leo.read` exposes listing memory, commitments, errands and Leo's settings.
`whisperer:leo.write` exposes changing settings and personalisation. Forgetting a memory,
cancelling an errand and resolving a commitment are never exposed.

A longer explanation of why a context window is working memory rather than storage:
https://whisperer.one/en/blog/why-ai-forgets/
