Self maintaining AI memory is a setup where scheduled jobs read an agent's own conversation transcripts after the fact and write the durable facts into persistent state, so the memory updates without anyone deciding to update it.
At ChatFuse this runs 4 times a day. At midnight, and again at 15 minutes past 9, 12 and 5, a job reads every transcript touched in the last 24 hours, works out which ones contain real work, and writes what it finds into the state files. Nobody triggers it and nobody reviews it first.
We did not start here. The first version ran inside the conversation, and it was a genuinely bad idea for a reason worth explaining.
What is self maintaining AI memory?
Self maintaining AI memory separates the act of having a conversation from the act of recording what mattered in it. The conversation produces a transcript as a side effect. A separate scheduled process reads that transcript later and decides what deserves to persist.
Most memory systems ask the model to save things as it goes, or ask the human to curate afterward. The first interrupts the work and the second never happens. Reading the transcript after the fact avoids both, because the recording step is no longer competing with anything.
Why not capture memory during the conversation?
Because capturing during the conversation has to block the conversation from ending, and that is exactly as annoying as it sounds. Our first version was a hook that ran when a session finished. To capture properly it had to hold the turn open, which meant it interrupted the person mid work to do bookkeeping.
- Holds the turn open to finish
- Interrupts the person mid task
- Only sees the session it ran in
- Two writers race on the same files
- Runs out of band, unattended
- Nobody notices it happened
- Sees every session from every terminal
- One writer, holding one lock
The second advantage was the one we did not predict. A hook only sees the session it lives in. A scheduled job reading files sees every session from every terminal that ran that day, including the ones nobody thought to close properly.
That turned out to matter more than the interruption. On a busy day at ChatFuse there are 3 or 4 terminals open on different threads of work, and the sessions that get abandoned without a proper close are usually the ones where something went wrong. Those are precisely the sessions worth recording, and the in session hook was systematically missing them because a session that ends badly never reaches the hook at all.
What does each run actually do?
Each run has 2 halves, and only 1 of them always executes. The reconciliation half refreshes the external picture every time. The capture half only runs if a transcript actually changed since the last sweep.
What must a system like this never do?
Never send anything. That is the hardest boundary in the design. A process running unattended at midnight, having read a day of conversation, has exactly enough context to draft a convincing email and no judgment about whether it should.
So the capture layer writes state and nothing else. It never sends, never replies, never posts, never drafts for sending. Anything outbound waits for a person, which is the same rule ChatFuse applies to every automated path.
It is worth being blunt about why this is a hard line rather than a setting. An unattended process that can write is recoverable, because you can read what it wrote and fix it. An unattended process that can send is not, because the message has already arrived. The asymmetry has nothing to do with how much you trust the model.
Does the model decide what is worth remembering?
Yes, and that is the part that needs bounding. Asking a model to extract the durable facts from a day of conversation works well. Letting it decide the shape of the memory does not, because it will happily invent new categories every run and the state file becomes unreadable within a week.
The ChatFuse fix is that the destinations are fixed and the model only fills them. Open items go in one place, people intelligence in another, decisions in a third. The model chooses content, never structure. That constraint is doing most of the work, in the same way that persistent memory is useful because of what it refuses to store as much as what it keeps.
Frequently asked questions
How often should AI memory capture run?
Often enough that a second session started later in the day reads current state. We settled on 4 times daily after running it once at midnight, which left an afternoon session reading the previous day's picture. The right number depends on how many separate sessions run in a day rather than on the volume of work.
Why read transcript files instead of the live conversation?
Because reading a live conversation means participating in it, which means interrupting it. Files are already written, so a job can read every session that ran without touching any of them. It also means a session that was closed badly, or crashed, is still captured.
What stops two capture jobs from corrupting the state?
A shared lock, so only one ChatFuse sweep writes at a time. It sounds like a small thing. The moment you have both a schedule and a manual path, two writers stop being theoretical.
Can this work across different AI tools?
Yes, as long as the capture reads every transcript store rather than just one. We run 2 different agent harnesses, one on Anthropic's Claude and one on OpenAI's GPT models, and they write transcripts in different formats to different locations. A capture layer reading only one of them reports a quiet day during an outage. That is a failure mode we hit before fixing it.
Is self maintaining memory the same as long term memory in a chat app?
No. Chat memory stores facts about you to improve future answers, the way ChatGPT, Claude and Gemini each do inside their own product. This stores the state of the work itself: what is open, what was decided, who said what. ChatFuse keeps the first kind in your account, across more than 100 models from OpenAI, Anthropic, Google and Meta, and the second kind is something you build on top.
Here is the test. Does the memory still work on the day nobody remembers to use it? Anything needing a person to trigger it is a habit. Habits lapse when things get busy, which is exactly when the record is worth having.
Start free with ChatFuse and keep the memory in your own account, or compare plans on the pricing page.
Comments
Loading commentsโฆ