Agent·

OpenClaw 2.0 keeps secrets out of the model's context — Credential isolation proxy — What does it mean?

The news. On September 1, 2026, the OpenClaw project released OpenClaw 2.0, a rebuild of its agent runtime around durable sessions, paired local and cloud workers, and explicitly scoped permissions. Two parts of the release are about where a secret lives: credentials are requested through a masked prompt rather than typed into chat, and they can be proxied to tools without the value entering model-visible context. Interactive outputs and recurring automations get narrow grants instead of inheriting broad permission. Read the release notes →

Keep the card reader in mind. The bartender takes your order, rings it up, and turns the terminal toward you. You tap. The terminal talks to the bank, the bank answers, and the bartender hears one word: approved. The person doing the work never learns your card number, and that is the design — not a rule about what they are allowed to say, but a path the number never travels.

An agent harness can be built the same way. The model decides a tool has to run and emits the call — send_invoice, query_db, deploy — naming the credential it needs by handle rather than by value. The harness stops there and asks you for the secret through a masked prompt, so the characters go into the harness and not into the conversation. When the call goes out, the harness attaches the real value at the boundary. The tool result comes back, and the model reads the result. The key was used in the room; it was never written on the page the model reads.

That distinction matters because the model re-reads its whole conversation on every turn. A secret typed into chat is not stored once. It is replayed into the prompt of every later tick, copied into every trace span that records the prompt, and kept in a conversation you can search months later. A value in the model's context is not a stored value, it is a broadcast one.

The AI Agents track draws agent risk as three legs that have to meet: access to private data, exposure to untrusted content, and a way to send data out. An attack needs all three, and the tools themselves are the surface where they connect. The credential proxy is a cut to the first leg, and it is the cheapest of the three to cut, because it changes plumbing rather than capability — the agent still calls the tool, it simply cannot read the key that authorizes the call.

Compare that with the other two. Cutting the second leg means keeping untrusted content away from the agent, which usually means giving up the feature: an agent that cannot read email cannot triage email. Cutting the third means blocking outbound channels, and a tool call is itself an outbound channel, so the list of things to block is long and open-ended. The first leg is the one where the value can be moved without the capability moving with it.

It does not make the agent safe. A proxied key can still be used by an injected instruction — the agent told to send one invoice can be talked into sending forty. That is what the sibling mechanism in this same release, operation-scoped approvals, is for. The proxy stops the secret from leaking; it does not stop the authority from being misused.

Where you put the keyWhere the value livesWhat can read itIf the transcript leaks
Pasted into chatthe conversationthe model, on every later turn, plus your trace storethe key leaks
Environment variable on the tool processthe process the tool runs inthe tool, and anything that can read that processthe key does not leak — unless a tool echoes it back into a result
Masked prompt plus credential proxythe proxythe proxy, and the outbound request it signsthe key does not leak

Put numbers on it (illustrative). Take one session of 40 ticks, with the key pasted into chat on the first one. The model re-reads the conversation each turn, so that key is replayed into 39 outbound prompts — ticks 2 through 40. If your tracing records the prompt on each span, and recording the prompt is the usual default, that is 39 more copies sitting in your observability store. Add the stored conversation itself and one secret now exists in 79 places, none of them a vault, most of them in systems whose retention you chose without a secret in mind.

Now run the same session through a proxy. The key is written once, into the proxy. The model's context holds it zero times — at tick 1 and at tick 40 alike. The 40 tool calls still carry it, because they have to; they carry it on the outbound leg, where it was always going to travel. What changed is not how often the secret is used, it is how many systems keep a copy: 79 down to 1.

Goes deeper in: AI Agents → Security & the Lethal Trifecta → Cut a Leg

Related explainers

Frequently Asked Questions

Check what you knowMap your AI & GPU knowledge across every track — free, role-based