The elephant that never forgets (and why you should not want that)
The instinct is natural: if memory is good, more memory must be better. Store everything. Delete nothing. Build the largest possible knowledge base and let the agent search through it all.
This instinct is wrong.
An AI agent that stores everything forever faces three compounding problems that get worse with every session:
- Memory bloat. After hundreds of sessions, the knowledge base accumulates thousands of entries. Many are outdated. The deployment process you documented three months ago has changed twice since then. Your team switched from Slack to Discord. The staging URL moved. The old information is still there, competing with the current information for attention.
- Irrelevant context. When the agent retrieves memories for a query, stale entries pollute the results. Instead of getting the three most relevant memories, you get two relevant ones and five that were relevant last quarter. The agent has to work through all of them, and its responses reflect the confusion.
- Slower retrieval. Vector similarity search is fast, but not free. At 10,000 memories, brute-force cosine similarity starts taking noticeable time. At 100,000, it becomes a bottleneck. And most of those 100,000 memories are dead weight.
The solution is not better search. The solution is fewer, better memories.
How Ebbinghaus forgetting curves work
In 1885, German psychologist Hermann Ebbinghaus published the first systematic study of memory decay. His finding was remarkably clean: memory strength decreases exponentially over time when there is no reinforcement. The rate of decay follows a predictable curve.
The mathematical model is simple:
strength = e^(-t / half_life)
Where t is time since the last access and half_life controls how quickly the memory fades. A shorter half-life means faster decay. A longer one means the memory persists.
Ebbinghaus also discovered something equally important: rehearsal resets the curve. Every time you actively recall information, the decay clock restarts. This is why spaced repetition works for learning: each retrieval strengthens the memory and extends its lifespan.
These two properties — exponential decay and rehearsal-based reinforcement — create a self-organizing system. Important information (which gets accessed regularly) stays alive. Unimportant information (which nobody retrieves) fades out. No manual curation required.
How NEXO Brain implements decay
NEXO applies Ebbinghaus forgetting curves to both of its active memory stores:
- Short-Term Memory: 7-day half-life. A memory at full strength (1.0) drops to 0.5 after one week without access, 0.25 after two weeks, and so on. This store holds recently important information that needs to prove its worth.
- Long-Term Memory: 60-day half-life. Memories that have been promoted through repeated access or explicit importance get the slower decay curve. Two months without access before strength halves.
When a memory's strength falls below the retrieval threshold (configurable, default 0.1), it is no longer returned in search results. It is not deleted — it enters a dormant state. The data is still in the database. If a future query has very high semantic similarity to a dormant memory, that memory can be reactivated.
This is the "oh wait, I remember this" moment. You ask about something the agent has not thought about in months, and a dormant memory fires because the semantic match is strong enough to overcome the low strength score. The memory is reactivated, its strength resets, and it re-enters the active pool.
Rehearsal resets strength
Every time a memory is retrieved through nexo_recall or surfaces in a nexo_heartbeat context injection, its last_accessed timestamp updates and its strength resets toward 1.0. This is the rehearsal mechanism.
The practical effect: memories you actually use stay alive indefinitely. The deployment process you reference every week? Permanent. The debugging trick you used once in February? Gone by April, unless you need it again.
For critical knowledge that must never decay, NEXO provides a pin mechanism. Pinned memories are exempt from forgetting curves entirely. Their strength is always 1.0. Use this for genuinely permanent facts: company name, server addresses, architectural decisions that will not change.
Comparison: decay vs. store-everything
| Aspect | Store Everything | Forgetting Curves |
|---|---|---|
| Memory size after 6 months | Thousands of entries, growing linearly | Hundreds of active entries, self-regulating |
| Retrieval relevance | Degrades over time as stale entries accumulate | Stays high; stale entries decay out of results |
| Maintenance required | Manual cleanup or ever-growing storage | Automatic; no human intervention needed |
| Contradictions | Old and new facts coexist, causing confusion | Old facts decay; newest version dominates |
| Search performance | Slows as corpus grows | Stable; active set stays bounded |
Systems like Mem0 and Basic Memory take the store-everything approach. They provide excellent write and retrieval mechanisms, but no decay model. Over months of heavy use, the difference becomes significant. NEXO's approach keeps the active memory set lean — typically a few hundred items after 100+ sessions — while still maintaining the ability to reactivate dormant memories when they become relevant again.
The "oh wait, I remember this" moment
The most compelling behavior we have observed in production is spontaneous reactivation. A user asks about a project they have not discussed in two months. The relevant memories have decayed to dormant status. But the semantic similarity between the query and those dormant memories is high enough to pull them back.
The agent surfaces the memory with full context: when it was originally created, what session it came from, and why it was stored. The user sees something like: "Based on our discussion on February 3rd, you mentioned that this service requires a specific auth header."
This is not magic. It is the forgetting curve working as designed. The memory was not deleted — it was dormant. The right query brought it back. And now, with a fresh access timestamp, it will stay active as long as it remains relevant.
Forgetting is not the opposite of remembering. It is how remembering stays useful. An AI agent that implements principled memory decay will outperform one with a perfect archive, because intelligence is not about how much you store. It is about how quickly you surface what matters right now.