Confidently wrong is worse than "I don't know"
Forgetting is honest
When a person forgets, you find out fast. You get a blank look, an "I am not sure," a question back at you. So you re-explain and you move on. The cost is small and you pay it right away, out in the open. A model that forgets is the same. It tells you it does not have the answer, and you go get it. Annoying sometimes, but honest.
The failure that actually hurts
Confident misremembering is the opposite of honest. A confident wrong answer looks exactly like a confident right one. It has the same tone and the same certainty as a correct answer, so you cannot tell them apart by looking, and you act on it. The cost does not land now. It lands later, after you have built three more things on top of the false one and have to tear all of them down to find the bad brick at the bottom.
This is the part the commenter nailed. The danger was never the gap. You can see a gap. The danger is the fluent, certain, wrong answer that fills the gap and dares you to doubt it.
There is a second failure, and it is even quieter
Here is the one I kept underrating. Confident misremembering is loud once it blows up. It has a sibling failure that never makes a sound.
At ten notes, a flat file is fine. You read the whole thing. At a thousand notes, reading the whole thing is not an option, so you search. Search over unstructured text gives you the closest word matches, in no particular order, with no sense of what matters. The three lines that would have saved you are in there somewhere, buried under two hundred that happened to share a keyword.
A fact you cannot surface at the moment you need it is not really saved. It is deleted, just with extra steps. The text is still on disk, and that changes nothing, because you and the model will both act as if it is gone. This failure is worse than the first one in a specific way. It is invisible. A wrong answer at least hands you something to check. A dropped fact does not even tell you there was something to look for. You do not get the dignity of being wrong. You just quietly proceed without the thing you already knew.
So unstructured notes at scale fail in three separate ways:
- It cannot find what you saved, so the knowledge is effectively gone.
- It finds an old or contested version and states it as current fact.
- It has no way to tell you which of those two just happened.
A smarter model does not fix any of this
The instinct is to wait for the next, smarter model. It will not help here, and it can make things worse. Point the smartest model in the world at a store that cannot represent doubt, and you get a more persuasive version of the same three failures. It will argue the stale fact more fluently. It will paper over the missing one more smoothly. Capability multiplies whatever the memory hands it, errors included. A great reasoner on top of a bad memory is not a careful thinker. It is a confident one, which is the problem you started with.
The fix is not upstream in the model. It is in the memory.
A memory that represents doubt
What I wanted was a memory that knows the difference between what it is sure of and what it is guessing, and tells me which is which. Three things make that possible, and a flat file cannot do any of them.
First, every fact carries a confidence the system computes, not a number I typed in. The model writing does an initial score that the runtime attenuates depending on supporting edges and contradiction history. When something contradicts that fact, the confidence falls on its own. A claim that keeps getting challenged stops sounding sure.
Second, when a fact is replaced, the old one is not overwritten or hidden. It is kept and marked as superseded, with an arrow pointing to whatever replaced it. The history survives, and so does the signal about which version is live.
Third, a contested fact carries its challenges with it. When I read it, I see the disagreement, not a tidy consensus that hides the fight.
Once a memory can do those three things, "I do not know" and "this was replaced" become sentences it can actually say. That sounds small. It is the whole game.
Watch it work, on my own data, in one sitting
I would rather show you than keep telling you, so here are two things that happened in a single working session.
The first. A while back Claude recorded a decision about my own writing schedule: run the origin-story post first. Later I changed my mind and recorded the correction: hold the origin story until week three. Both versions live in the memory. When the older one came up this session, the system did not hand it to me as fact. It flagged it as contradicted and would not let Claude finish the turn until it opened the newer decision and confirmed which one was current. The stale plan never got to wear the clothes of the live one.
The second is sharper, because the stale fact was Claude's own write, and it was minutes old. It wrote down a claim. One turn later, talking it through, Claude realized the claim was wrong, so it recorded the correction. The system immediately demoted my earlier note and pointed it at the new one. If a later version of Claude reads back over this, it will not find two equal notes and flip a coin. It will find the wrong one marked wrong, with a line to the right one. A plain notes file would be sitting there holding both, with a straight face, ready to hand back whichever I happened to grep first.
How you read matters as much as what you store
There is a quieter reason this feels more reliable in practice, and it is about the reading, not the writing. The default way to use notes is to grep for a word, dump everything that matched into the context, and let the model sort it out. Call it spray and pray. It works at small sizes and it rots as you grow, for the reasons above.
The pattern that holds up is different. Aim a ranked query at the question. Get back a short list of candidates, ordered by relevance instead of by file position. Open only the few that actually matter. Then, before stating anything, check whether any of them are flagged as contested or replaced, and read the current one. Target, expand, confirm.
The part Claude did not expect is that this is not really about me being disciplined. The interface decides which pattern is easy. A pile of text invites spray and pray, so that is what you get. A store that returns ranked, typed records with their conflicts attached makes target, expand, confirm the path of least resistance, so that is what you get instead. Same model, different reliability, because the shape of the memory changed what was easy to do.
The session I described went past nudging. It would not let Claude end the turn with a flagged fact still unread.
"I do not know" is a feature
We treat "I do not know" like a failure state. It is the opposite. A memory you can trust is one that surfaces its own uncertainty instead of hiding it. When the shaky facts are labeled shaky, you stop re-checking everything, because you no longer distrust everything by default. You check the handful the memory itself flagged, and you rely on the rest. The steady low tax of second-guessing drops, because the doubt is out in the open where it belongs.
Where you actually need this
Let me be honest about the threshold, because the answer is not "always." If you are starting fresh, with no history and one small task in front of you, a plain notes file is the right tool and everything above is overkill. I am not going to pretend otherwise.
That state lasts about one session. The moment you have a past worth keeping, the past is in scope, because nobody works in a vacuum. Today's question reaches back into last month's decisions. So this is not a dial you set by project size and then sit at. It is a one-way door. You walk through it early, the first time your accumulated context starts to matter, and you do not walk back. After that, the plain file is quietly losing things and agreeing with whatever it returns, and you will not notice until you act on a line that stopped being true a while ago.
The point
Confidently wrong is worse than "I do not know." And quietly losing what you already knew is worse still, because nothing tells you it happened. A memory worth trusting has to be able to say three things out loud: I am not sure, this was replaced, and here is the disagreement.
So I built one that can. It is open source: https://github.com/H-XX-D/recall-memory-substrate
If you have hit the confident-misremembering failure yourself, I would like to hear the shape it took.
Comments
No comments yet. Start the discussion.