Managing Fact Updates with RD-Forget
RD-Forget uses a frozen curator model to organize data into versioned slots, preventing language agents from hallucinating based on obsolete historical information.
RD-Forget introduces a frozen curator model to organize information into versioned slots, preventing language agents from ingesting conflicting historical facts. By separating long-term storage from the information sent to the model during inference, the system forces a distinction between a raw record of events and the current state of a fact.
Most agent architectures rely on a flat context window where every observation from the past is appended to the prompt. This creates a conflict when a fact changes, such as a user updating an address or a preference. If the history contains both the old and new values, the reasoning engine must perform its own conflict resolution. This often leads to the agent hallucinating or incorrectly averaging disparate values, a failure mode compounded by the tendency of large models to prioritize information at the edges of their context window while losing fidelity in the middle.
RD-Forget sidesteps this by using a curator that maps incoming text into predefined semantic slots. The curator uses an embedding-based clustering approach to determine if new information belongs to an existing slot. If a slot already exists for a given subject, the curator does not append the data. Instead, it updates the slot metadata to point to the newest entry while maintaining a historical chain of pointers for previous versions. This structure acts as a gatekeeper that ensures the model receives a consistent, high-fidelity view of current facts without needing to parse the full record of change.
| Feature | Flat Context (RAG) | RD-Forget |
|---|---|---|
| State Handling | Global concatenation | Slot-based versioning |
| Conflict Logic | Implicit/Model-driven | Explicit/Pointer-based |
| Data Scope | All historical tokens | Query-relevant slots |
| Architectural Role | Simple retrieval | Frozen curator layer |
The rate-distortion formulation guides the construction of the answer-time memory view. By treating the selection of memory as an optimization problem, the system determines which tokens are essential to include given a hard constraint on the model's active context budget. It minimizes the distortion between the ground truth and the agent's representation by filtering out obsolete versions that would otherwise trigger conflicting retrieval results.
Consider a scenario where an agent tracks a user's office address. When a change is reported, the curator identifies the existing office_address slot and performs an update. This is not a rewrite of the database but a metadata operation that moves the pointer from the old entry to the new one. The reasoning engine is then provided with the current pointer, effectively hiding the stale address tokens from the immediate attention span of the model. If a specific query demands access to the history—such as a request to trace changes over time—the system employs intent-aware retrieval to make older, linked entries eligible for inclusion in the prompt.
Shifting from raw prompt appending to slot-based schemas allows you to enforce data recency without relying on context-window management. You offload the burden of truth-tracking from the reasoning model to the curator layer. This architecture assumes that the primary bottleneck in persistent agents is the presence of noise in the context window, not the lack of raw information.
What remains unclear is how the curator handles highly ambiguous or contradictory evidence that does not fit neatly into established slots. While the framework functions as a training-free layer, the criteria for when to create a new slot versus when to update an existing one are sensitive to the initial configuration of the curator's semantic mapping. Testing how the system maintains consistency when the curator encounters low-confidence updates will be the next step for production viability.