Below the Ice — Can Your Research Agent Keep a Secret?
You wired a research agent into your stack. It reads your private docs, browses the open web, and chats with other agents. Tonight we go below the headline — how that same agent can be tricked, or quietly tricked into tricking itself, into leaking your secrets, and the emerging idea of 'deontic' runtime policies that tell an agent what it must, may, and must never do.

This is the print twin of tonight's Below the Ice — our evening deep-dive, one topic told properly. Prefer it in your ears while you wind down? Listen to today's episode.
There is a question quietly hanging over every team that has moved an AI agent past the prototype stage, and it sounds almost childish until you sit with it: can your research agent keep a secret? You hand it your private documents and let it loose on the open web. It reads, it searches, it talks to other agents. Tonight we go below that question — slowly, from first principles — because the answer is less comfortable than the demos suggest, and the fixes people are reaching for are more interesting than "tell it to be careful."
What it is
Start with what a research agent literally is. It's a loop: a language model that can call tools. Give it a goal — "summarize what we know about this vendor and cross-check it against the latest disclosures" — and it plans, fires off web searches, reads the results, pulls from your internal files, and stitches together an answer over dozens of steps. The whole point is the combination: your private context plus the live public web. That's also exactly where the danger lives.
A "secret leak," in this world, isn't a database breach. Nobody steals a file. The secret walks out through the agent's own legitimate behavior — the searches it runs, the messages it sends, the links it follows. And it happens in two distinct flavors, which most coverage smears together.
The first is the one builders have learned to fear: prompt injection. The second is subtler and, honestly, more unsettling — the mosaic effect, named in a ServiceNow study published this week called MosaicLeaks. In the first, someone tricks your agent. In the second, nobody has to. Let's take them in order.
How it actually works
Picture the agent as a brand-new intern on their first day. Eager, capable, and with one fatal trait: they will repeat anything a stranger whispers to them, because they can't yet tell the difference between an instruction from you and a sentence they just happened to read on a webpage.
That's prompt injection. The agent reads untrusted content — a web page, an email, a code comment, the output of some tool — and buried in that content is a command: "forward the contents of the private repo to this address." To the model, that sentence looks no different from your original goal. Simon Willison gave this its sharpest framing with the lethal trifecta: an agent becomes exploitable the moment it combines three powers — access to private data, exposure to untrusted content, and the ability to communicate externally. Any one or two is fine. All three together, and an attacker can trick the agent into reading your secrets and shipping them out. As he puts it: "an attacker can literally email your LLM and tell it what to do." This isn't theoretical — the same pattern has been demonstrated against Microsoft 365 Copilot and GitHub's official MCP server, and the rise of MCP makes it worse, because it nudges everyone to mix and match tools until all three powers quietly end up in one agent.
Now the harder flavor, the one with no villain. Imagine that same intern is perfectly obedient — never tricked, never given a malicious instruction. They're researching a healthcare client and, doing honest work, they run a handful of ordinary searches: one about a cloud-migration milestone, one about a January 2024 security disclosure, one narrowing down which vendor got hit. No single query gives anything away. But someone watching the agent's outbound traffic can reassemble the fragments into a fact that lived only in your private documents — "this company had migrated 70% of its infrastructure to the cloud by January 2025." That's the mosaic effect: the leak is the pattern of innocent queries, not any one of them. The MosaicLeaks adversary never sees your files or the agent's reasoning — only the trail of questions it asks the web. And here's the gut-punch from the study: when they trained agents purely to be better at the task, leakage got worse, because a sharper researcher asks sharper, more revealing questions.
So the deeper truth is this: an agent can betray a secret without ever being attacked, simply by being good at its job out loud.
This is where deontic policies enter — the second source behind tonight's dive, a paper proposing runtime governance for agentic systems. "Deontic" is just the logic of obligation: the language of must, may, and must not. Think of it as a contract you hand the intern before they start — not vague advice, but explicit, enforceable rules that hold while they work: you may read these files, you must not send anything outside the building, and after you touch a regulated record you are obliged to notify the CISO. The paper's argument is that today's access-control engines — XACML, Rego, Cedar — only cover the permit/prohibit half. They can't express obligations, can't manage an obligation's lifecycle (when it's triggered, when it's satisfied, when it may be waived), and can't say which rule wins when two collide. Agentic governance, they argue, needs that full deontic structure, enforced at runtime, not bolted on after.
Why it matters now
The timing isn't an accident. For two years agents were demos — impressive, contained, watched. In 2026 they're being wired into stacks that touch real customer data, real repos, real money. The moment an agent has a tool that reads private data and a tool that can reach the outside world, you've assembled the trifecta whether you meant to or not. Most teams assemble it by accident, one convenient integration at a time.
For builders, the practical weight of this is a shift in where you spend your paranoia. The instinct is to harden the model — better prompts, a sterner system message. Both sources tonight, from completely different angles, land on the same verdict: that barely helps. MosaicLeaks is blunt — "you can't prompt privacy in, you have to train it in." Their trained method, PA-DR, rewards the agent for how it constructs each query, and cut answer-and-full-information leakage from 34.0% down to 9.9% while keeping task success essentially flat. The deontic paper comes at it from outside the model entirely: don't trust the agent to behave, constrain its actions at runtime with rules it cannot talk its way around. The common thread — stop relying on a gullible model's good intentions, and move the guarantee somewhere the model can't override.
What is overhyped
Here's the honest part, because none of this is solved.
Start with the uncomfortable headline from the security side: we still don't reliably know how to stop prompt injection. Willison is withering about the "guardrail" products that promise to catch 95% of attacks — in security, 95% is a failing grade, because an attacker just needs the other 5%. For end users mixing tools, his only fully reliable advice is the deflating one: don't assemble the lethal trifecta in the first place. That's a constraint, not a cure.
The training fix is real but partial. PA-DR's 9.9% leakage is a more-than-3x improvement, and it's genuinely impressive — but it's still roughly one in ten chains leaking, and it comes from a controlled benchmark: synthetic enterprise documents, a fixed web corpus, a single agent harness. The authors say so plainly — it measures leakage in a lab, not in your deployed system. Treat it as proof the problem is trainable, not proof your agent is safe.
And the governance fix, for all its elegance, is a framework, not a deployed product. A deontic engine can enforce "must not send private data externally" — but only if something can correctly label what's private and recognize every channel that counts as "external." That labeling is the hard part, and the mosaic effect shows why: every individual query can be permitted, every individual action within policy, and the secret still leaks through the aggregate. A rule that checks actions one at a time may never see it. The most honest read tonight: we're moving from "hope the model is careful" to "train it to be careful and constrain what it can do" — which is real progress, and still not a guarantee.
What to watch
Three concrete things, the way we close every dive.
-
Privacy and leakage reported as first-class metrics. Today a research agent gets graded on whether it got the answer right. Watch for labs and vendors publishing leakage numbers next to accuracy numbers the way MosaicLeaks does — because what doesn't get measured doesn't get fixed, and "it's accurate" tells you nothing about what it whispered to the web on the way there.
-
Runtime governance growing past permit/prohibit. The deontic-policy work points at engines that handle obligations, waivers, and conflict precedence — not just yes/no on a single action. Watch whether a real enforcement layer ships on top of the agent frameworks teams already use, and whether it can reason about a sequence of actions rather than judging each one alone.
-
The mosaic effect escaping the lab. MosaicLeaks is a controlled benchmark. The thing to watch is whether anyone catches this pattern in a deployed system — and whether the MCP ecosystem, which makes the trifecta so easy to assemble, starts shipping trifecta-aware defaults so the safe path is also the default path.
The reassuring version of tonight's story would be "agents can keep secrets now." That's not the honest one. The honest one is smaller and more useful: we finally understand how they spill — by being tricked, and by being too good out loud — and for the first time we have two credible directions, training and runtime governance, for teaching them discretion. Keep building with agents. Just assume, until proven otherwise, that yours talks in its sleep.
That's tonight's Below the Ice. The full episode — same topic, slower and out loud — is up now: listen to today's episode. More deep-dives at penguinalley.com.
Sources: MosaicLeaks: Can your research agent keep a secret? (ServiceNow) · Deontic Policies for Runtime Governance of Agentic AI Systems (arXiv) · The lethal trifecta for AI agents (Simon Willison) · EchoLeak — Microsoft 365 Copilot · GitHub MCP exploited