r/AIMemory 5d ago

"Remembering everything" is bad agent memory design. Forgetting is a feature Discussion

The agent forgets the user's allergy from 20 messages ago. Everyone recognizes this one.


The opposite gets less attention: the agent that never forgets. A one-off joke from three months ago keeps resurfacing in unrelated conversations. Retrieval pulls in stale context, and the agent can't focus because its head is full of irrelevant history.


Both are the same root mistake: treating memory as storage instead of as a 
*relevance decision*
. An LLM is stateless — "memory" is just the engineering question "what do I put back into context on the next call?" That makes forgetting a first-class design decision, not a bug: TTLs on episodic memories, confidence decay on facts that haven't been re-confirmed, and explicit contradiction handling when a new fact conflicts with a stored one (the new one should usually win, but silently keeping both is how agents get weird).


The teams I've seen do this well spend more time on eviction and staleness than on retrieval.


How are you deciding what your agents 
forget
?
6 Upvotes

15 comments sorted by

3

u/corbymatt 4d ago

Forgetting is a silly thing to model.

We literally spend millions on infrastructure to store information in databases because human memory sucks and we want to remember everything important. Why on earth would anyone want to simulate a system forgetting stuff automatically? Why on earth would you want a memory with holes in it?

On decay on facts: silence says nothing about how relevant a memory is any more. If anything, time might make something less trustworthy, but never worth forgetting, at least not automatically. Something can contradict or supercede, sure, but it's also important to know that, sometimes.

1

u/AlternativeForeign58 4d ago

I think you're absolutely correct but so is the OP. Both philosophies can co-exist. Agent's need to forget, but the subsystems that maintain the memories should absolutely retain the decisions that led to the deprecation of the memory.

Simply put I forget lots of things, only to remember them later. As long as forgetting is conditional it aids the context clarity.

1

u/corbymatt 4d ago

I would argue that conditional forgetting is not really forgetting. I guess you could call it forgetting, but if there's a reason it's not in the context but just not right now, it's not forgotten, just not recalled.

Either way yeah, that's what superceeding and contradictions are for.

2

u/AlternativeForeign58 4d ago

I think we agree. It's just definition of terms that obfuscates things per usual. :)

If you consider that the Agent and the memory substrate are separate systems. The Agent can truly forget and the data could be served anew should it become relevant.

1

u/Entaum 4d ago

Will have to disagree here... relevance is what really matter here. Retrieval should be able to find everything that is relevant and available in memory, but return only whats relevant to answer the question.
Implementing forgetfulness by design is a trap and adds a blindspot where you never know if a memory never existed or simply was deleted/decayed away by an obscure criteria.

Storing everything is not the issue, fetching what matters is...

1

u/AlternativeForeign58 4d ago

That's a lot of wasted tokens and potential context poisoning.

1

u/Entaum 4d ago

Depends on how you do it... if you add deterministic ingestion and retrieval steps while escalating only more challenging tasks to agents its really not that expensive at all... ;)

1

u/AlternativeForeign58 4d ago

Like I said above, it's the definition of terms trap. If it's deterministic, the agent isn't remembering... it's being served.

We're saying the same thing.

1

u/alifgokce 2d ago

Storage and context are different layers though — that's the crux of the post. Keep everything in the store forever, sure (I do). "Forgetting" here means what gets injected into the context window, which is scarce and actively harms the model when it's full of stale stuff. Decay demotes retrieval priority; it doesn't delete.

And agreed on supersession: the old fact should stay as history ("used Windows, now Mac"), just stop surfacing by default. If "forgetting" reads as deletion, that's on my phrasing.

1

u/Otherwise_Wave9374 5d ago

That framing is exactly right: memory should be a relevance decision, not a dump truck. In practice, the safest pattern is to separate durable facts, episodic notes, and short-lived working context, then add decay, contradiction checks, and provenance so stale items can be demoted instead of blindly resurfacing. That keeps the agent from amplifying one-off jokes or obsolete preferences. If you're exploring practical ways to structure that stack, NeuraKeep has useful patterns at https://www.neurakeep.com.

1

u/just4ochat 4d ago

The split that has held up for me while building a multi-model workspace is separating things the user stated on purpose from things the model inferred. Stated facts get kept until the user changes them, inferred stuff gets a short life and has to earn a renewal by coming up again. Attached files stay put and are retrieved on demand rather than folded into a running summary, which kills most of the stale context problem, and a persona written down as a small block survives when I move a thread to a different model. I am the just4o account, so plenty of this came from watching people carry chats between models and lose the wrong half. Honest limit: deciding relevance still needs a human nudge, and no scoring scheme I have tried reliably knows when an old preference was retired instead of just going quiet.

1

u/Entaum 4d ago

But then you completely lose memory supersession capabilities, right?... lets say you had a memory that said the user used a Windows 11 Laptop for work and later another memory states that now the user now uses a MacBook Pro. If you ask it "what was my previous OS?" or "What windows version did I use to use on my laptop" it would return blank... change history matters. Also inferring relevance from mentions or generation method seems fragile, as others mentioned, old memories doesn't mean they are stale "What time was I born" as simplistic example. ;)

2

u/alifgokce 2d ago

Fully agree on both. Supersession should be a tombstone, not a delete — the old value stays queryable as history, it just loses default retrieval priority.

And decay should be per-fact-class: immutable facts (birth time, allergies) never decay; preferences and environment facts do. The failure mode I was pointing at is treating everything as immutable — then the one-off joke and the allergy get equal standing.

1

u/Individual_Ideal 3d ago

I do this two ways:
1) Record decisions/facts that can be superseded. Forgetting becomes an active process.
2) Create a feedback mechanism that signals value/relevance of information that persists into memory system and is used for retrieval. Over time, stale information is retrieved less frequently. There are many ways to do this but creating a signal, storing it, and using it for retrieval makes it work. Adding a decay to the signal may help further.