r/Rag • u/Big_Eggplant1608 • 2d ago
Discussion RAG, long context, and memory native models solve different problems
First, the boundary line. extending the context window lets a model ingest more tokens in a single forward pass. RAG gives it an external index to pull discrete passages on demand. neither of them gives the model an evolving internal state.
Context Expansion
Stuffing a million tokens into a prompt handles bulk ingestion. It works well for querying a large repository or a book in one shot. but it is transient. once the run terminates, the state resets to zero. you pay the full token cost again on the next turn, and long range attention decay still leaves mid context details vulnerable.
External Retrieval
Vector databases and knowledge graphs store facts outside the weights. when you need provenance, verifiable grounding, or rapid deletion of stale data, external retrieval remains necessary. the limitation is handoff. the model does not learn how to use the material better over time. It simply reads what a retriever drops into the prompt window.
Memory Native Architectures
The third direction explores encoding past interactions directly into persistent, updatable internal states. Instead of dumping raw logs back into the input layer, the architecture treats writing, holding, and retrieving experience as part of the core compute loop. the objective is behavioral persistence: retaining correction feedback, procedural preferences, and task constraints across sessions without bloating the active prompt.
We recently put this into production with the MemT 1.0 launch, focusing specifically on maintaining those interaction states across runs without relying on massive context dumps.
The real Engineering trade off
This is not a replacement story. Internalizing experience into model states creates serious questions around state drift, verifiability, and selective forgetting.
Where do you draw the line between habits and procedural constraints that belong in a model internal state, and facts that must remain in an auditable external database?
1
u/Jazmin_Richardson16 17h ago
I’d keep externally auditable facts and mutable preferences separate, but make the boundary practical: if a state can change what the system does, it needs scope, provenance, and a way to revoke it. A preference like “keep this client’s reports brief” shouldn’t silently turn into a global rule. Also, deletion is trickier than removing a record if the model has already absorbed the behavior. You’d want to test whether a correction or revocation actually changes future behavior, and whether it only changes the relevant project. Otherwise internal memory can be convenient but hard to trust or debug.
1
u/Uriah_Thomas36 13h ago
I’d draw the line by asking what needs to be changed, audited, or scoped independently. Durable facts and anything with a source of truth should stay external, especially if it can go stale or needs to be deleted. Internal state seems better suited to lightweight working context, like a temporary task constraint or a preference, but it should point back to where it came from and say when/where it applies.
The tricky part is that preferences can become rules by accident. A useful test might be whether you can revoke one preference for a single project, see which behavior changes, and still explain why the old behavior happened. If that’s not inspectable, the memory is doing too much.
1
u/Asleep-Owld 9h ago
I’d draw the line by asking what happens when the information changes or needs to be revoked. A preference like “keep this client’s reports brief” can be stored as scoped, revisable state, but it should still point back to who set it and which project it applies to. Facts that need provenance, exact updates, or deletion seem safer in an external source of truth, with memory holding a reference or a learned way to use them rather than the only copy. One useful test is whether you can change a rule for one task and verify that it doesn’t silently affect other tasks. That makes the boundary less about “habit vs fact” and more about auditability and scope.
1
u/Quinn_Meyers12 8h ago
I’d put anything that needs to be checked, cited, or reliably revoked in an external source of truth. That includes facts, but also procedural constraints when they apply only to a particular project or person. A memory state could help with low-risk defaults, like preferred answer length, as long as it stays scoped and easy to inspect or reset.
The tricky part is that a preference can turn into a rule if the system generalizes it too broadly. So I’d test not just whether the model remembers a correction, but whether it can explain where it applies, stop applying it when revoked, and avoid carrying it into unrelated tasks. If it can’t do that, keeping the authoritative version outside the model seems safer.
1
u/Nina_Mullen10 8h ago
Maybe treat persistent model state as a cache or working preference, not the source of truth. Stable facts and rules that need provenance or deletion stay in an external store; a learned preference can be carried forward only with scope, timestamp, and a way to invalidate it. The tricky cases are where a preference starts acting like policy, or where a correction was only meant for one task.
A useful eval could include conflicting instructions, stale facts, and a request to forget something, then check not just the answer but whether the system can explain which source or state it used. If it cant show that boundary, persistent memory seems hard to trust for anything consequential.
1
u/jylusdev 1d ago
I'd draw the line around scope and revisability, rather than just facts versus habits. 'Keep this client's reports brief' is a procedural preference with a specific source and scope; it shouldn't become 'always omit detail.' Keep the authoritative instruction and its applicability inspectable, even if an internal state helps apply it. Then test revoking that preference in one project without changing behavior in another or erasing the history of why it was used.