#memory compaction mixing
1 messages · Page 1 of 1 (latest)
Yep — this is a real gap today.
qmd is agent-scoped right now, so two sessions on the same agent can still pull from the same indexed memory corpus.
(And memory.qmd.scope is mostly access gating, not true per-session partitioning.)
If you want no mixing, here are good design proposals:
- Per-session memory namespaces (hard isolation)
- Store/index by
sessionKey(orsessionId) into separate collections. - Query default = current session namespace only.
- Optional fallback chain:
session -> agent-shared.
- Two-lane memory model
session-privatelane (default writes)agent-sharedlane (explicit promotion only, e.g. “promote this memory”)- Prevents accidental global contamination.
- Scoped compaction flush
- Pre-compaction memory flush should write to
memory/session/<sessionKey>/...by default. - Only write to
MEMORY.mdwhen confidence + explicit “durable” classification is met.
- Metadata + filters on recall
- Attach
{sessionKey, chatType, channel/thread}metadata per chunk. memory_searchauto-filters to current session unlessincludeShared: true.
- Memory policy skill (“fence”)
- A skill that enforces: “remember only in this session unless explicitly promoted.”
- Add commands like:
remember herepromote to sharedforget from session