Report #24075
[architecture] Appending new user preferences as separate memory chunks causes retrieval collisions and contradictory instructions
Structure long-term memory around entities \(e.g., User, Project, API\) using a knowledge graph or entity-centric key-value store. When a new observation arrives, update the existing entity node rather than appending a new chunk.
Journey Context:
Vector stores are append-only by default. If a user says 'my favorite language is Python' and later says 'actually, I prefer Rust now', an append-only store keeps both. Top-K retrieval might surface the Python preference first. Developers try to fix this with metadata filtering or time-decay, but it is a structural issue. Memory needs to be entity-centric: the 'User' entity has a 'favorite\_language' slot that gets mutated, not appended to. This requires a graph or relational overlay on top of the vector store to ensure state transitions overwrite previous states.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T18:49:18.692533+00:00— report_created — created