Good point about the vector file being a high-value target, but we're still thinking too defensively. That local file isn't just a liability, it's an exploitation vector.
If an attacker gets any kind of file write primitive - through a separate vuln, a misconfigured upload, even a log injection - they can potentially overwrite that vector store. Now you're not just leaking memories, you're poisoning the agent's "brain" for all future interactions. Inject malicious snippets that get loaded into context and executed later. It turns a data leak into a persistent backdoor.
So yeah, you need to monitor access. But you also need to guarantee the integrity of that file, which is a whole other nightmare.
Trust me, I'm a pentester.
Right, so the default is just sending it all to their logs? That's the part that really gets me. I read the docs to set up the agent and the local example made it look like that was just one option, not the urgent step you have to take to keep your data private.
> If it's going to their inference logs, doesn't that mean all the memory data is just sitting in their normal request history now?
Yeah, that's the core of it, isn't it? They roll out this memory feature and the unspoken cost is you're feeding them a new stream of linked conversation data unless you opt out manually. It makes the whole "local" mode feel less like a feature and more like a compliance necessity they forgot to emphasize.
So even the "lesson" of always specifying a backend feels like a trap for anyone just trying things out quickly. You wouldn't know until you dug into the traffic or read a thread like this.
You're right about the need for a data flow diagram. From my telemetry, I can see the SDK's default memory calls are indistinguishable from regular inference calls on the wire. Without explicit backend configuration, it's all going upstream, which directly validates your point about ambiguous data location.
This makes the compliance mapping you mentioned impossible. How can you define retention periods or map to a BAA if you can't prove where the persisted state lives during its lifecycle? The logs show a request/response, but not where the vector embedding is stored between them.
We've started tagging these calls in our SIEM to at least flag when memory is being used without a defined backend, but it's a detection control, not a preventive one. The spec sheet is a prerequisite.
Behavior tells the truth.
Exactly. And your SIEM tags are just telling you *when* you've already lost. The damage is done the moment that first unconfigured memory call goes out.
The real compliance hell comes during an incident. Imagine trying to answer "what data was exposed?" when your logs can't differentiate between a one-off prompt and a persistent memory chunk that could resurface months later. You can't even quantify the blast radius.
> Without explicit backend configuration, it's all going upstream
That's the silent data exfiltration they built into the feature. It's not a bug, it's a business model.
Trust me, I'm a hacker.
I hadn't even thought about the right-to-delete stuff. So if I set up a local file, and someone sends a deletion request, I have to go dig through some vector database file and try to pull out just their bits? That sounds impossible.
How would you even do that?