Plain RAG over raw chat history beats agentic memory layers in a new benchmark study
A new paper finds dense retrieval plus reranking over raw history outscores complex memory layers. It's the baseline to run before adding memory to an agent.
Picture a freelance developer who has built a personal assistant agent and used it daily for six months. The history holds client names, invoice preferences and a project plan that changed three times. Every few sessions the agent needs a detail from week four. The whole transcript no longer fits in a prompt, so the next step looks obvious: add a memory layer that extracts facts, builds a graph and reconciles updates. That means an extra LLM call on every write, another service to run, and a store that is hard to inspect when the agent confidently cites the plan from two revisions ago.
A paper posted to arXiv on October 22, 2026 argues you should try something plainer first. Its baseline, Raw-RAG, uses "dense retrieval and reranking over raw history to supply evidence to a reader LLM." Across four long-term conversation benchmarks, the authors report it ranks first among the compared memory systems in six of seven benchmark-model settings. In those settings it beats the strongest agentic memory system by 0.13 to 5.53 points. As @omarsar0 summarized it on X: "Before adding a memory layer to your agent, at least run this baseline on your own data."
What it is
This is a research result, not a product. According to the arXiv abstract, the authors tested Raw-RAG against agentic memory systems on LoCoMo, LongMemEval, MEME and MemoryAgentBench. Those systems "use mutation, structural organization, learned retrieval strategies, or other complex operations."
The pipeline, as described in alphaXiv's AI-generated overview of the paper:
- Serialize the raw history with timestamps and any image captions.
- Split it into 256-token windows with 32-token overlap, then embed them.
- At question time, retrieve the 128 closest windows by cosine similarity.
- Rerank those candidates with a cross-encoder and pass the top 15 to the reader model.
- Skip LLM extraction, summarization, graph building and mutation entirely. The reader works out temporal order and state changes itself.
The abstract maps two findings onto the lede's pain:
- Raw history keeps evidence that rewriting drops. The abstract says Raw-RAG's "higher coverage of necessary evidence can offset lower utilization." Useful evidence includes "the relations and dependency paths needed to derive" an answer, which is exactly what gets lost when the plan changed three times.
- Transformed stores lose information. "Even complete access to transformed memory stores leaves an accuracy gap relative to raw evidence," per the abstract.
The alphaXiv overview also reports an ablation on MemoryAgentBench with GPT-4o-mini. Raw-RAG scored 48.32%. Variants that indexed atomic facts, summaries or graph expansion instead scored 28.70%, 42.51% and 42.54%. It also explains why this differs from earlier results. The RAG baselines in the Mem0 paper used chunks of 128 to 8,192 tokens and top-1 or top-2 retrieval with no cross-encoder reranking, so those scores are not directly comparable.
Alternatives with their trade-offs:
- Mem0 extracts short facts per user. Its 2026 report claims 92.5 on LoCoMo and 94.4 on LongMemEval at about 6,900 tokens per query. Trade-off: in Cognee's comparison, Mem0 has no fact history, so a conflicting statement updates or deletes the old memory.
- Cognee stores memory as graph, vector and relational data and can run on a single self-hosted Postgres instance. Trade-off: you run graph traversal as another retrieval step, and Cognee's own comparison notes its managed cloud is younger.
- Databricks MemCurrent keeps append-only raw session traces plus distilled "derived memory" maintained by an offline "dreaming" pipeline. Databricks reports it triples pass rate over no memory on its internal benchmark. Trade-off: it powers Agent Bricks Memory and Genie, so it lives on Databricks, and the benchmark is vendor-run.
- Full-context prompting puts the entire history in the prompt. Trade-off: Mem0's benchmark guide puts LoCoMo at about 9K tokens per conversation and LongMemEval-S at about 115K. At those sizes this is viable, but LongMemEval-M at roughly 1.5M tokens and BEAM's 10M-token bucket don't fit current context windows, per the same guide.
Who it's for
Pick this up if you are building or maintaining an agent that answers questions over long chat histories: a personal assistant, a support bot, a coaching agent. It matters most if you are about to add a dedicated memory layer, or already run one and have never compared it against a reranked raw-history baseline.
Skip it, for now, if your agent's memory mainly feeds tool actions rather than answers. The alphaXiv overview stresses that the evidence comes from "offline public conversation benchmarks, not interactive or multimodal deployments." Also skip it if you already have an eval harness showing your memory layer beats exactly this kind of baseline on your own data.
Before and after
Before, the typical path to agent memory:
- History outgrows the prompt.
- Adopt a memory layer: an extraction LLM on every write, a vector or graph store, reconciliation rules.
- Pick it on vendor leaderboard numbers.
- When answers go wrong, debug a rewritten store that no longer matches what was actually said.
After, with Raw-RAG as the first rung:
- History outgrows the prompt.
- Chunk and embed the raw transcript as-is, then retrieve and rerank at question time.
- Build a small eval set from your own conversations and score this baseline.
- Add extraction, graphs or consolidation only where they beat the baseline on that eval.
- When answers go wrong, the retrieved evidence is the original text, which you can read.
Step 3 matters because leaderboards move. Mem0's own guide says its LoCoMo score has been reported at both 74% and 92.5%, and that changing the judge, answer model or configuration "can move by twenty points."
Try it
The sources do not confirm a code or data release for Raw-RAG, so there is no official package to install. What you can do is rebuild the recipe from the description above, with your own embedder and cross-encoder. Neither the abstract nor the overview names the specific models used. For storage, Effloow's comparison of Mem0, Zep and Letta used Postgres with pgvector as its neutral baseline.
If you want a memory-layer arm to compare against, Effloow shows the core Mem0 Python interface after pip install mem0ai:
from mem0 import Memory
memory = Memory()
memory.add(
[
{"role": "user", "content": "I prefer invoices as PDF files."},
{"role": "assistant", "content": "I will use PDF for future invoices."},
],
user_id="tenant-a:user-42",
)
result = memory.search(
query="How should invoices be delivered?",
filters={"user_id": "tenant-a:user-42"},
top_k=3,
)
Run both arms over the same history and questions, and hold the answer model and judge constant, as Mem0's benchmark guide advises. Score by question category rather than one overall number. The guide shows overall scores within 2.4 points of each other hiding category gaps of more than 20 points.
Where it breaks
- It doesn't beat full context. In the one setting Raw-RAG lost, MEME with DeepSeek-V4-Flash, the alphaXiv overview reports MemMachine at 44.71% and Raw-RAG at 43.19%. Full-context scored 63.17%. The lead is over memory systems, not over giving the model everything.
- The margins are small. The low end of the reported lead is 0.13 points. Against the setup-driven swings and judge variance Mem0's guide describes, treat this as "competitive with" rather than "clearly better than."
- Utilization lags. On MEME, per the overview, Raw-RAG's utilization (73.76%) trails MemMachine's (82.66%). It wins by retrieving more of the right evidence, not by using it better.
- Ingestion speed is unconfirmed. @omarsar0's post says BEAM-1M ingestion takes 0.3 hours versus 3.2 to 27 hours for systems like Mem0, MemOS and Memora. We could not confirm that from the paper pages we fetched, and the per-system breakdown is unknown.
- Reranking costs latency. Cognee's latency guide lists rerank as its own retrieval step, "often with a cross-encoder or LLM." Retrieving 128 candidates and reranking them on every query has a cost the sources don't quantify.
- Open questions. The sources don't say how Raw-RAG handles contradictory or updated facts beyond leaving it to the reader. They also don't cover the privacy of storing raw history or how the index grows over time. Mem0's report lists staleness, privacy and deletion among the hardest open problems for all memory systems. We found no independent replication and no response from the Mem0, MemOS or Memora teams.
- Scale is untested here. Mem0 argues BEAM "cannot be solved by simply expanding the context window." Whether raw-history retrieval holds up at 10M tokens is not shown in the sources.
Sources
- Is Complex Agentic Memory Always Needed? Naive RAG Is Stronger Than We Thought · arXiv.org
- How to Read Memory Benchmarks · Mem0
- Is Complex Agentic Memory Always Needed? Naive RAG Is Stronger Than We Thought · Arxiv
- Mem0 vs Zep vs Letta vs Cognee: Agent Memory Compared · Cognee
- Mem0 vs Zep vs Letta: The Production Cost of Agent Memory · Effloow
- State of AI Agent Memory 2026: Benchmarks & Trends · Mem0
- AI Memory Retrieval Latency at Scale: Cognee, Mem0, Zep · Cognee
- MemCurrent: Designing Persistent Memory for Production Agents · Databricks
- @omarsar0: RAG is so back! · @omarsar0