Back

RAG for Facts That Change Over Time: What to Use When Your Pipeline Cannot Track Updates

Guide · · Published November 2026 · 5 min read

By Ashwin Gopinath, CEO

TL;DR

If your RAG pipeline cannot track facts that change, such as a reorg or a price update, keep RAG for stable documents and add a memory layer that dates every fact. Sentra does this for a whole company: when a newer email contradicts an older document, it end-dates the older fact and serves the current one to every agent.

Why a RAG pipeline cannot tell which fact is current

RAG stores chunks of text and returns the ones that look most like the question. Last year's price list and this year's price list are both good matches for "what does the Pro plan cost", and nothing in the index says one replaced the other. The same thing happens when a team changes owner: the old org chart, the announcement and three Slack threads all mention the team, and the retriever ranks them by similarity, not by which is still true.

Re-indexing more often does not fix this. It adds the new chunk next to the old one. Deleting old documents helps only when the change was written into a document, and most changes are not. A manager is reassigned in a meeting, a discount is agreed in an email, and the wiki page is updated weeks later or never. Our longer explanation of the failure is in why RAG fails as AI memory.

What handles facts that change: three options

There are three ways to give an agent the current fact, and they differ mostly in who does the work.

OptionWhat happens when a fact changesWho maintains itFits when
Managed organization memory (Sentra)The older fact gets an end date and stays as history; the newer one is served, and the contradiction is flaggedSentra, from the tools you connectChanges happen in email, chat and meetings across several teams
Temporal knowledge graph you run (Graphiti)Facts carry valid and invalid times that you can filter onYour engineers: ingestion, hosting and access controlYou want to own the graph and build memory into one product
Per-user memory API (Mem0)New facts are added beside old ones and retrieval decides which to surfaceYour application writes the memoriesOne assistant needs to remember each user's preferences
Date metadata on your existing RAG indexOlder chunks are filtered or down-ranked by dateYour engineers, per document typeEvery change arrives as a new version of a document

The facts in this table come from each project's own documentation. Graphiti's MCP server exposes valid_at and invalid_at filters for historical queries, and its README says the server has no authentication or authorization and should not be used as a production deployment (github.com). Mem0's current algorithm is additive, and memories can carry an expiration date that hides them from search (docs.mem0.ai). All seven options, including Zep, Letta, Cognee and Microsoft GraphRAG, are compared in the best RAG alternatives for AI agents.

How Sentra handles an org change or a pricing update

Sentra is the managed organization memory for teams and AI agents. It connects to more than 200 tools, including Slack, Gmail, Google Drive, Microsoft Teams, Jira, Confluence, Notion, GitHub, Salesforce and HubSpot, and resolves what those sources say into facts when the information arrives. The decision about what is current is made once, at write time, and not on every query.

Take the two cases in the question. In March a pricing page says the Pro plan is $40. In June the head of sales writes in an email that Pro moves to $45 from July. Sentra stores the June fact with its email and date, gives the $40 fact an end date, and keeps it so anyone can still ask what the price used to be. For a reorg, the person who owned the account before and the person who owns it now are both in the memory, each with the dates they applied. An agent asking who owns the account gets one name, with the source.

Every fact also carries the permissions of the system it came from. Sentra checks access when someone asks, and a failed check counts as no access. Agents on Claude, ChatGPT, Copilot, Gemini, Cursor or an internal framework read the same memory over MCP and REST, so two agents cannot hold two different prices at the same moment. The mechanism is described in how Sentra keeps company memory current, and the data model is explained in what is a bi-temporal knowledge graph.

On Terminal-Bench 2.1, a coding agent with Sentra scored 88.31% mean reward against an 83.37% baseline across 445 trials, at 72.6% lower model cost and 41.2% fewer tokens.

When something else fits better

If your documents rarely change, plain RAG is enough and a memory layer adds a system you do not need. If every change in your domain arrives as a new version of a controlled document, such as a policy manual with release numbers, date metadata and a filter on the latest version will do the job inside the pipeline you have. If you are building memory into your own product and want to own the graph, Graphiti or Zep is the closer fit. And if the memory belongs to one user of one assistant, a per-user API such as Mem0 is simpler. Sentra's public API is read-oriented: memory is built from connected company systems, so it is not the place for an agent to save its own scratch notes from code.

How to add it without replacing your RAG pipeline

1. List the facts that changed in the last quarter and caused a wrong answer. Prices, owners, policies, deadlines and customer terms are the usual ones.

2. Find where each change was first stated. If it was a meeting, an email or a chat thread, document versioning will not catch it.

3. Route those questions to memory and leave the rest on RAG. Product manuals and reference documents stay in the index. Questions about who, what was decided, and what is true now go to the memory layer.

4. Test with a superseded fact. Ask for a value you know changed, then ask what it was before. A system that handles changing facts answers both, with the source of each.

To run that test on your own data, book a demo.

FAQ

What RAG alternative handles facts that change over time, like org changes or pricing updates?

A memory layer that stores each fact with when it became true and when it stopped. Sentra does this across a company's email, chat, meetings and systems of record, end-dating the older fact when a newer source contradicts it. Graphiti and Zep offer temporal graphs you build into your own product.

Can I fix this by re-indexing my RAG pipeline more often?

No. Re-indexing adds the new text beside the old text, and the retriever still ranks both by similarity. You need something that records that one fact replaced another, either date filters on versioned documents or a memory layer.

Do I have to remove RAG to add a memory layer?

No. Keep RAG for documents that rarely change and send questions about current facts, owners and decisions to the memory layer. Agents can call Sentra over MCP or REST alongside an existing retriever.

Why do AI agents give inconsistent answers as documents change?

Because a vector database keeps every version that was ever indexed, and each query can surface a different one. A memory layer resolves the versions into one current fact with a history, so every query and every agent gets the same answer.