The most under-discussed feature of any serious personal AI agent is what happens between the user's last message of the day and their first message of the next. To the user, nothing happens; the night is silent. To the agent, the night is the most active time. It is the only window where consolidation is possible: the agent reads back what was said and done over the past 24 hours, decides what is worth keeping, lifts the important parts into long-term memory, and writes a short reflection.
We call it dreaming. The name was tongue-in-cheek when we first deployed it; it has stuck because the analogy is genuinely the right one. Sleep is when the brain takes the day's experiences and decides, mostly without conscious participation, which to consolidate into long-term memory. The agent does the same job. The user wakes up with an assistant that has more carefully organised yesterday than they have.
This post is what dreaming actually does, why it is essential rather than ornamental, and how to read your daily reflection.
The problem dreaming solves
A personal AI agent has a recall problem. Each conversation generates dozens of episodic notes ("user said X," "user mentioned Y," "user asked for Z"). After a week, that is hundreds of notes. After a month, thousands. The naive approach is to load all of them into the prompt at every turn, which fails on context limits within days. The slightly-less-naive approach is to load the most recent ones, which makes the agent feel forgetful (it remembers what you said this morning but not what you said three weeks ago).
The right approach is to consolidate: not all memories deserve to live forever. Most are operational and decay quickly ("you asked for the weather"). A few are important and should be lifted into long-term storage where they survive the recency cutoff. A handful are core: things about you that should never expire and should always be loaded into the prompt.
Consolidation is the engineering problem that makes the difference between an assistant that feels learned-in and one that feels stuck in the last 24 hours. Dreaming is how we run consolidation.

What the dreaming job actually does
A walkthrough of one night's pass for one user, in plain terms.
The job loads the day's notes, scores each one on a few signals (does this fact recur, is it specific, did the user explicitly ask to remember it), promotes the important ones into long-term memory, lets the trivial ones fade, and writes a short reflection summarising the day. If the user solved something interesting that day, the agent may capture a candidate skill from it.
The whole pass is quick. It runs against a frozen snapshot of yesterday's memories so live conversations are not affected. By the time the user opens their first conversation in the morning, the consolidation has happened and the agent's recall is sharper.
- 1LoadYesterday's episodic notes
- 2ScoreRecurrence, specificity, user-affirmed
- 3PromoteImportant notes lifted to long-term
- 4ReflectA paragraph summarising the day
- 5Skill checkDid the user solve something interesting? Save a skill.
What "the reflection" looks like
The user-visible artifact of dreaming is the reflection: a 2-3 sentence summary the agent writes about the day. You do not have to read it; the agent does. But you can. Asking "what did I do yesterday?" returns the reflection.
A representative example, after a normal weekday:
Yesterday you launched the new pricing page after a week of internal review. You spent the afternoon catching up on the thread with Sara about the H1 retrospective; her concern was that the team's velocity number was misleading without context. You made a note to circle back to her on Monday with a redrafted definition. Evening was quiet; reading and a meal with K. The launch traffic looked steady through the night.
That is the agent reading itself. The next morning, when you ask "where did we land on the H1 retro?", the agent picks up the thread without you having to remember which day it was.
Why simple search is not enough
The naive way to do this is to throw every memory into a search index and pull whatever matches the current query. That alone is not enough. Search retrieves what is similar to the current question, not what is important to remember. After a few months of usage, you end up with lots of slightly-similar notes from the recent window and miss the consolidated long-term facts that should be the steady backdrop.
Dreaming is the layer that decides which memories deserve to be in the long-term store at all. Search is then the layer that retrieves from the long-term store at runtime. The two compose: consolidation is for keeping; retrieval is for finding.

What you can do with the reflection
Three concrete uses.
The "what did we agree on" recall. When you and someone else were having a conversation through the agent (a meeting recap, a back-and-forth on a project), the reflection often captures the agreed outcome. Asking "what did Sara and I land on yesterday?" returns the answer.
The mood baseline. Over time, reflections accumulate a useful baseline of how you are spending your weeks. The agent can use it: "you have had four heads-down evenings in a row, want me to push the coffee with David out a week?" That is the agent reading your week back to you and offering to negotiate on your behalf.
The skill catch. When the agent saves a new skill on a given night ("I learned that you like meeting recaps with action items split by owner"), the reflection mentions it. You see what the agent learned. If it learned wrong, you correct in plain English; the next dream incorporates the correction.
Where it goes wrong
Two failure modes.
Over-promotion. The dreamer decides a fact deserves long-term status when it actually was a one-off ("you said you wanted to skip lunch on Thursday" promoted as a routine). The fix: the agent always cites the source when surfacing a long-term fact, so the user can ask "where did I say that?" and dispute the promotion. The fact gets demoted on dispute.
Under-promotion. The dreamer fails to promote something that was important. The fix: the user can affirm a memory in the moment ("save this: my mother's birthday is March 14"). User-affirmed memories skip the consolidation gate and go directly to long-term.
- Memory degrades to recency-only after a few weeks.
- The agent feels forgetful by month two.
- Long-term facts compete with fresh notes for context.
- Skills never get saved unless the user manually says so.
- Long-term store grows over time, organised by importance.
- The agent feels steadier with usage, not flakier.
- Recency window stays focused; long-term lives separately.
- Skills accrue automatically as the agent watches the user solve things.
Frequently asked
Why call it dreaming and not consolidation?
Can I read every reflection?
Does the dreaming job ever fail?
Privacy: what does the dreamer see?
Can I disable dreaming?
Try it
Talk to the agent for a normal day. Ask "what did I do yesterday?" the next morning. The reflection is the proof that the system was working while you were asleep.


