Making it remember
Today’s chat disappears when you close it. What you want kept has to be written down.
Where it keeps things
Part II starts here because an agent that forgets your preferences every morning makes you repeat yourself forever. Your agent keeps things in three places, and it is worth knowing which is which.
| Where | What it holds | How much |
|---|---|---|
| 1 · The notebook | SOUL.md, MEMORY.md, USER.md — read at the start of every chat | Small on purpose |
| 2 · Past chats | Old conversations it can search back through | As much as your disk allows |
| 3 · Your notes | A folder of your own notes it can read (next lesson) | As much as you write |
It writes now, it reads next time
The agent reads its notes once, when a chat starts. So if it writes something down mid-conversation, asking “do you remember?” in that same chat can still come up blank — the file is right, it just has not re-read it. Check the file, then start a new chat to see it in action.
MEMORY.md has the line and this session ignores it — close and reopen before blaming the agent.`MEMORY.md` and `USER.md`
MEMORY.md is the agent notebook — your setup, your conventions, what it learned. USER.md is your card: name, preferences, things to avoid. The agent writes both; you can edit them in any text editor. Anything it never writes down, it never keeps.
Both are deliberately small, because they are read at the start of every chat — every line you add is a line the agent carries around forever. Keep decisions, preferences and corrections; never transcripts. When they fill up: merge lines, shorten them, delete what is stale.
That makes three files in your Hermes home, all loaded every chat, so it is worth being precise about which is which:
| File | Holds | Who writes it |
|---|---|---|
SOUL.md | Who the agent is — role, tone, hard limits | You, once — it rarely changes |
MEMORY.md | What it learned — your setup, conventions, decisions | The agent, as you work; you can edit |
USER.md | Who you are — name, preferences, avoid-list | The agent, from what you tell it |
USER.md, not SOUL.md. Identity is what the agent is for everyone; memory is what it knows about this setup and this person.Prove it remembers
- Tell the agent: “Remember that project codename is HARNESS-01 and I prefer short answers.”
- Ask it to write that to durable memory.
- Open
MEMORY.md/USER.mdon disk and check the lines are really there. - Fully close the chat. Open a new one. Ask: “What is my project codename and answer length preference?”
Memory vs hallucination
Without memory the model fills gaps with confidence. With memory and sources it consults first. Still fallible — but checkable by you and by the agent.
Where do durable preferences live?
Pick one — the answer is revealed straight away.
File updated but chat “forgets” now?
Pick one — the answer is revealed straight away.
You are done when
You already have an agent. Now give it durable memory and ownership habits.