Every remember and remember_batch call runs two checks
before insert:
remember call returns that row’s id with
message: "Already remembered".
dedup_policy parameter decides what happens:
insertSkip the check entirely. Always inserts.
skip_if_nearDon’t insert. Return the existing memory id.
ask(Default.) Insert anyway. Include the near-duplicates in the response so the calling LLM sees what looked similar.
previously_corrected so the calling LLM
can warn: “this fact was deleted with reason X.” This check does
not block the insert — it’s a signal, not a veto.
Soft-deleted rows are dual-purpose: hidden from
recall/list_memories/text_search but consulted by
the dedup-on-write check. Hard delete (forget hard_delete=true)
is the only way to truly remove a memory’s influence.