Access scoping vs. derivation: does a leaked-column value ever get re-served via a different memory it flowed into? #7390
sangaraju1988
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Mem0's user_id/agent_id scoping is exactly the right first layer, but it's necessarily about who wrote or owns a memory, not about what upstream data a memory's value was derived from. In enterprise BI/analytics use cases specifically, we ran into a related but distinct failure: an AI agent caches an analytical result (say, a churn rate), a second agent later computes a different metric using that cached value as an input, and the new memory carries none of the original access markers — even though it transitively contains information from a column the second requester shouldn't see.
We built and published a mechanism for this (Analytical Memory Unit / AMU schema — a derivation graph + definition hash attached to each cached record, with a retrieval gate that checks the requester's permissions against the full transitive derivation, not just the immediate write). Measured on synthetic and TPC-H workloads: naive tag-based gating leaked 18.8%–25.5% of restricted values through exactly this path; the derivation-gated version leaked 0% while still serving 82.6% of cacheable reuse.
Peer-reviewed / published: IEEE Access, DOI 10.1109/ACCESS.2026.3730363. Reference implementation + reproducible experiments: https://github.com/sangaraju1988/Lineage-Aware-Memory
Curious whether this is a gap Mem0 has run into with multi-agent BI/analytics deployments specifically — happy to have this referenced if it's useful context for your docs or roadmap discussions.
All reactions