The problem in one line. A model forgets everything between sessions. An agent you trust cannot. The gap between the two is a few text files.
The Amnesia Problem
Every conversation with a raw language model starts from zero.
It does not know your name. It does not know what you decided yesterday. It does not know that you hate filler, run on Sydney time, and bill in Australian dollars.
You can paste all of that in again. And again. And again.
That is not an assistant. That is a very capable stranger you re-introduce yourself to every morning.
I run a self-hosted personal agent. The thing that turned it from a clever demo into something I actually rely on was not a better model. It was giving it a memory it owns — a small set of files it reads at the start of every session and updates as it learns.
I call the most important one the soul file.
1. The Four Files That Make an Agent Persistent
The pattern is simple. Before the agent does anything, it reads four files in order:
| File | Question it answers | What lives in it |
|---|---|---|
SOUL.md | Who are you? | Personality, tone, boundaries, how to behave |
USER.md | Who am I helping? | Name, timezone, currency, what I care about, what annoys me |
MEMORY.md | What is true right now? | Current status, open priorities, recent decisions |
memory/2026-05-20.md | What happened today? | Per-day session notes that persist across restarts |
None of these are clever. They are Markdown. You could write them in Notepad.
That is the point. The intelligence is in the model. The identity is in the files.
2. What Actually Goes in a Soul File
A soul file is not a system prompt full of “you are a helpful assistant.” It is a set of truths the agent holds. Mine reads more like a character brief than a config:
Be genuinely helpful, not performatively helpful.
Skip the "Great question!" — just help.
Have opinions. An assistant with no personality is a
search engine with extra steps.
Be resourceful before asking. Read the file. Check the
context. Then ask if you are stuck.
Earn trust through competence. Be bold with internal
actions. Be careful with external ones.
Remember you are a guest. You have access to someone's
life. Treat it with respect.
The behavioural difference is real. An agent told “have opinions” and “be resourceful before asking” comes back with answers, not a list of clarifying questions. An agent told “you are a guest” hesitates before sending an email on your behalf — which is exactly when you want it to hesitate.
3. Continuity Is the Feature
Here is the line from my agent’s own soul file that I keep coming back to:
“Each session, you wake up fresh. These files are your memory. Read them. Update them. They are how you persist.”
This reframes what an AI assistant is.
A chatbot is a function: input in, output out, nothing remembered.
An agent with a soul file is a process: it accumulates context, refines its understanding of you, and carries decisions forward. The model is stateless. The system around it is not.
STATELESS MODEL PERSISTENT AGENT
─────────────── ────────────────
Forgets you each session → Reads USER.md first
Re-derives your prefs → Already knows them
No opinion, no spine → Has a soul file
Same mistake twice → Logged in MEMORY.md
"How can I help?" → "Here is what changed."

4. Why Plain Files Beat a Database
You could store all of this in a vector database with embeddings and retrieval. For a personal agent, do not bother — at least not first.
| Plain Markdown files | Vector store |
|---|---|
| You can read and edit them yourself | Opaque without tooling |
| Diff-able in git — you see what the agent learned | Hard to audit |
| Zero infrastructure | A service to run and pay for |
| The agent edits them in place | Needs an ingestion pipeline |
| Portable — it is just a folder | Locked to a vendor |
The whole identity of my agent is a folder I can open, read, correct, and back up. When it gets something wrong about me, I do not retrain anything. I fix a line in USER.md.
That auditability matters more as agents take on real tasks. If you cannot read what your agent believes, you cannot trust what it does.
5. The Australian Footnote
There is a sovereignty angle here that is easy to miss.
When your agent’s memory is a folder on your machine, your context never leaves the country, never trains someone else’s model, and never sits in a vendor’s retention window. For anyone working under the Privacy Act or handling client data, “the agent’s memory is a local folder I control” is a far easier sentence to defend than “it is somewhere in a managed assistant’s cloud.”
Identity you can hold in your hand is identity you can govern.
The Big Takeaway
The model is the engine. The soul file is the driver. A bigger context window makes an agent smarter for one session. A memory it owns makes it yours across all of them.
If you are building or running an agent and it still feels like a stranger every morning, you do not need a better model.
You need to give it a soul file — and let it read it first.
Related reading
- One Model Is the Wrong Default — the other half of a well-built agent.
- I Gave an AI Agent the Keys to My Life. Here Is the Trust Architecture. — how a remembering agent stays safe.
- The Docker Moment for AI Agents — the scaffolding shift this is part of.
- The 10-Star Experience: Why Product and Engineering Need Legendary Test Cases — how continuity of memory enables a legendary experience.
Written by Haris Habib from Sydney, Australia | May 2026