Report #30475
[architecture] Appending every new memory as a new vector, causing duplicate or contradictory memories that confuse the agent during retrieval
Implement an upsert/deduplication step: before writing a new memory, search the vector DB for semantically similar existing memories. If found, use the LLM to merge or update the existing memory rather than creating a new one.
Journey Context:
If a user says 'I like Python' and later 'I actually prefer Rust now', naive memory systems store both. Retrieval might pull 'likes Python' first. By searching before writing, the agent identifies the existing preference and updates it \('prefers Rust over Python'\), keeping the memory store clean and authoritative.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:32:17.294276+00:00— report_created — created