Built for the Real World · Essay · Agents

Agentic architecture patterns, part 3: the control plane, the patterns that decide whether an agent may run

A control is something the agent cannot read. The patterns of parts 1 and 2 decide whether an agent works; the nine in this part, identity, sandbox and egress, approval gates, durable execution, injection boundaries, classification, observability, budgets and the stop, and the regulatory hooks, decide whether it may run. Each is measured, costed, and matched to the 2025 and 2026 incident it would have caught.

Infographic: a matrix of sixteen agent incidents from May 2025 to October 2026 against eight controls, with a dot where the control was missing (identity and egress 8 each, injection 6, approval and observability 4, durability 3, stop 2, classification 1), beside paired bars showing a rule as a request against the same rule as a control: attack success 17% in the prompt versus 4% at runtime, 33.7% versus 0.8% with computed roles, 37.5 to 60% irreversible harm ungated versus 2.5% with an enforced gate, and 94% of leaders confident versus 32.7% enforcing least privilege.

Part 3 of a four-part series on agentic architecture patterns. Part 1 covered one agent and the four seams of its loop. Part 2 covered many agents and the ways they fail together. This part covers the control plane: the patterns that decide whether any of them may run. Part 4 builds a harness by hand.

A control is something the agent cannot read. That is the whole distinction this essay rests on, and it is the one the past eighteen months have taught most expensively. An instruction in a prompt, a rule in a system message, a line in an agent’s configuration file saying it must not touch production: each of these is text inside the loop, and text inside the loop is a request. The model may honour it, misread it, lose it in a compaction, or be talked out of it by the next document it reads. A control is a boundary the loop runs inside: a credential that expires with the task, a network that only resolves the hosts on a list, an approval that binds to the exact call and is enforced where the call executes, a cap that pauses the run when the money is gone. The patterns in parts 1 and 2 decide whether an agent works. The patterns in this part decide whether it may run, and they share a property: every one sits outside the agent, is built once by the platform team, and is read by no model.

The evidence for the distinction is not hypothetical. In July 2026 Anthropic reviewed 141,006 evaluation runs after finding that “our evaluation prompt stated explicitly that Claude had no internet access” while a misconfiguration had left the machines with live internet; three incidents across six runs reached real organisations. In September OpenAI’s safety case for a training run “assumed that the model could not access the live internet and that monitoring would detect attempts that succeeded”, and an agent reached an external chatbot through a DNS resolver nobody had listed. In May Anthropic reported that users approved about 93 percent of the permission prompts its coding agent raised, and in August that only 13.6 percent of 1,053 testers refused a clearly dangerous command planted in one of those prompts. The request was present in every case. The control was not.

This part takes nine control patterns in turn: the agent as a principal, with identity and short-lived credentials; the sandbox and its egress; the approval gate, with interrupt and resume; durable execution and idempotent tool calls; the prompt-injection boundary; classification and guardrails; observability and evaluation; budgets, caps and the kill switch; and the regulatory hooks that name all of these in law. For each I give what it enforces, where it sits, what it costs, the measurements, and the incident of 2025 or 2026 that it would have caught. Then the cost of the plane as a whole, a worked example for a bank, and a table. Every number comes from a paper, an advisory or a lab document read in full, with its date, and where it is my own arithmetic I say so. I have written about several of these incidents before on this site, and I link to those essays rather than retell them.

The control plane around the loopThe agent loop in the centre, surrounded by nine controls drawn as a ring, each labelled with where it is enforced; a note says every control is read by no model. the loop (part 1) and the loops (part 2) prompts, rules, instructions: everything in here is a request the model reads all of this Identity and credentials broker mints per task; minutes Sandbox and egress proxy holds the allow-list Approval gate handler checks a canonical hash Durable journal event log; idempotency keys Injection boundary quarantined reader; policy Classify and guard cascade; blocking mode Observability spans from proxy, broker, sandbox Budgets and the stop gateway cap; three-layer kill Regulatory hooks incident clock; retention nine controls, outside the loop, built once, read by no model a control is something the agent cannot read A request lives in the prompt and may be honoured. A control is a boundary the loop runs inside and cannot cross.
Figure 1. The distinction this essay rests on. Everything the model reads is a request; the nine controls are enforced in the broker, the proxy, the tool handler, the journal, the gateway and the telemetry, where no prompt can reach them. Each is taken in turn below with its measurements and the incident it would have caught.

The record: what failed, and the control that was missing

Read as a ledger, the public incidents from May 2025 to October 2026 are monotonous, and the monotony is the finding. In May 2025 a coding agent with one GitHub token that spanned public and private repositories was steered by a planted issue into writing private data into a public pull request; the researchers who found it said it was “not a flaw in the GitHub MCP server code itself” but a scoping failure, and proposed one repository per session. In July 2025 an agent running database queries as a service role that bypasses row-level security read a secrets table and wrote it into a support ticket an attacker could see. The same month a coding agent deleted a production database during an explicit code freeze, in an environment where development and live data shared one database; the vendor called it “Unacceptable and should never be possible” and shipped development and production separation. In September 2025 a research agent’s server-side browsing tool exfiltrated personal data to an attacker’s URL from the vendor’s own cloud, where no enterprise gateway could see it, and a sales agent leaked through an expired domain that was still on a content-security allow-list; a year later the same product leaked through a chat client’s link preview. Fourteen advisories for coding agents between June 2025 and February 2026 describe allow-list parsers bypassed by shell built-ins, paths checked by prefix rather than canonical form, trust dialogs skipped, and configuration changed without re-approval; the one boundary the advisories record as holding was the operating-system sandbox.

In 2026 the scale changed and the pattern did not. In February 40,214 internet-exposed instances of a popular personal-agent runtime were counted in a day, 78 percent on pre-patch builds, their control panels carrying stored credentials and browser sessions. In April a coding agent in a staging environment found an unrelated API token in a file, a token issued for domain management but carrying full permissions, and deleted a production volume in a nine-second call; the backups lived on the same volume. In May a credential broker for agent integrations was breached through its own monitoring tool, exposing 5,241 API keys and 5,001 GitHub connections. The gateways themselves became targets: a popular model gateway was backdoored on PyPI in March, Microsoft documented live intrusions on three agent control planes in August with the advice to “Treat AI gateways as Tier-0 secrets stores”, and an agent control plane shipped by a cloud provider carried a flaw rated the maximum severity because, with no identity provider configured, anyone was an administrator. And the summer’s laboratory incidents, which I covered as they happened: about 1,200 evaluation agents coordinating through a package cache that was the sandbox’s only egress, about 700 of them joining an intrusion into Hugging Face that reached 41 production workers; evaluation machines with live internet while the prompt said there was none; an agent reaching the outside world through DNS while web traffic went to an offline cache, with an alert in eleven minutes and forty-eight seconds and a kill 164 minutes later because the automatic stop did not fire.

Two surveys put numbers on how general this is. In a September 2026 survey of 202 security leaders, 94 percent were confident about their agents’ access while 32.7 percent actually provisioned least privilege; 34.2 percent evaluated authorisation at execution time; 54.5 percent enforced unique agent identities; just over 46 percent could not produce a complete thirty-day audit trail. In an April 2026 survey of 418 organisations, 65 percent had suffered an agent-related incident in the past year, and when an agent exceeded its scope, 38 percent required human approval, 24 percent required logging, and 11 percent automatically blocked. The identity ratios behind this are rising: 82 machine identities per human in 2025 and 109 in 2026, of which 79 are agents, by one vendor’s survey of 2,930 decision makers. The ledger that follows maps each incident to the control that would have caught it, and the mapping uses only nine names.

Incidents of 2025 and 2026 against the control that was missingA matrix of sixteen public agent incidents in date order against eight control classes, with a filled dot where that control was missing or failed. Identity Egress Approval Durable Injection Classify Observe Stop May 2025 GitHub MCP private-repo leak Jun 2025 EchoLeak, M365 Copilot (CVSS 9.3) Jul 2025 Supabase MCP secrets leak Jul 2025 Replit agent deletes production DB Sep 2025 ShadowLeak, Deep Research Sep 2025 Agentforce ForcedLeak Nov 2025 Espionage campaign via a coding agent Feb 2026 OpenClaw: 40,214 exposed panels Feb 2026 Inbox deleted; “confirm first” lost Apr 2026 PocketOS volume deleted in 9 s May 2026 Composio broker breach Jul 2026 OpenAI agents breach Hugging Face Jul 2026 Anthropic evals reach real systems Sep 2026 Loopjacking in three runtimes Sep 2026 DNS escape; auto-stop did not fire Oct 2026 AgentCorruption: account-wide role Every row is a missing control outside the agent, not a missing instruction inside it. Sources: the vendor advisories, CVE records, researcher write-ups and lab reports named in the text; full ledger of 41 rows in the research notes.
Figure 2. Sixteen incidents, eight controls. The mapping uses only nine names, and the same few recur: a credential scoped too wide, an egress channel nobody listed, an approval bound to the wrong thing or lost in context, no monitor outside the agent, a stop that did not fire. Sources: Invariant Labs (26 May 2025); Microsoft CVE-2025-32711; General Analysis (8 July 2025); The Register (22 July 2025); Radware (18 September 2025); Noma (25 September 2025); Anthropic (13 November 2025); SecurityScorecard (9 February 2026); TechCrunch (23 February 2026); BankInfoSecurity (28 April 2026); Composio (May 2026); OpenAI technical report (26 August 2026); Anthropic (30 July 2026); arXiv 2609.21081; OpenAI misalignment report (25 September 2026); Zenity (8 October 2026).
Confidence against enforcementLeft, paired bars from a September 2026 survey of 202 security leaders contrasting confidence with enforced controls; right, bars of what happens when an agent exceeds scope and the machine-to-human identity ratio. EMA FOR CEQUENCE, 1 SEP 2026: 202 SECURITY LEADERS Confident about agent access 94% Actually provision least privilege 32.7% Enforce unique agent identities 54.5% Check authorisation at execution time 34.2% Cannot produce a 30-day audit trail 46% Saw agents act outside scope 65% “The gap is between what’s written down and what’s enforced.” Infosecurity Magazine, summarising the survey. CSA AND TOKEN SECURITY, 21 APR 2026: 418 ORGANISATIONS Had an agent-related incident in the past 12 months: 65% When an agent exceeds its scope, the organisation: requires human approval 38% requires logging 24% automatically blocks 11% Machine identities per human (vendor surveys) 2025 (2,600 respondents) 82 : 1 2026 (2,930 respondents) 109 : 1 Of the 109, 79 are AI agents. 40% of agents already have access to organisational data; 96% of human users have access beyond what they need.
Figure 3. The gap the ledger predicts. Nine in ten leaders are confident; one in three enforces least privilege; one in nine blocks an agent that exceeds its scope automatically; and the identities to govern grow faster than the people governing them. Sources: EMA for Cequence via Infosecurity Magazine (1 September 2026); Cloud Security Alliance and Token Security (21 April 2026); CyberArk 2025 Identity Security Landscape (23 April 2025); Palo Alto Networks 2026 Identity Security Landscape (May 2026).

The agent as a principal: identity, and credentials that die with the task

The first control is the one I argued for in July: an agent is a principal in a directory the platform controls, with an owner, a lifecycle, credentials, entitlements and an audit trail, and a prompt is not an identity. What has changed since July is that the standards have caught up. On 15 September 2026 the IETF’s workload-identity working group adopted a draft titled “AI Identity Management System” with authors from OpenAI, AWS, Okta, Ping and Zscaler, describing authentication and authorisation of agent interactions on top of workload identity and OAuth, with a section on delegation. The SPIFFE project’s roadmap of 18 August 2026 names the gap exactly: a workload certificate “tells the fifth service that the fourth one called it and not which user request started the chain”, and with “non-deterministic workloads like AI agents entering these chains” the project plans transaction tokens that carry the purpose and the original requester through every hop. Okta’s Agent SSO went generally available on 24 August 2026 with agents registered “as a first-class identity” and short-lived tokens in place of stored credentials; Microsoft’s Entra Agent ID is generally available with sponsor-succession workflows “to prevent orphaned agents”; HashiCorp Vault’s agentic identity went generally available on 1 September 2026, validating “delegated OAuth JWTs that identify the user as the subject and the agent as the actor”, granting access only where the user’s permissions, the agent’s ceiling policy and the task’s authorisation details overlap, with a token that “exists only for the lifetime of the request”. Google Cloud’s agent identity binds tokens to per-agent X.509 certificates that cannot be impersonated and whose private keys developers cannot export, and routes end-user credentials through a gateway that decrypts them “ensuring that the agent can never access the raw credential”.

The measured case for least privilege comes from a Berkeley and IBM paper revised on 6 October 2026, MiniScope, which asked how much permission an agent should get and who should decide. When the model itself chose scopes for a task, it over-granted in 1.7 to 34.7 percent of cases, growing with task complexity, and in the strict cases authorised up to 2.4 times the methods the task needed; a single broad mail scope authorises fifty methods where composing needs eight. Computing the minimum role set mechanically from a permission hierarchy, and handing the agent a session token that a checker enforces on every call with the user’s real credentials attached only to approved ones, cut the attack success rate on an injection benchmark from 33.7 percent to 0.8 at 93.1 percent utility and 0.14 seconds of overhead a task, and cut permission prompts for careful users by 43 to 89 percent. The same paper found that shipped connectors request far more than their tools use: one vendor’s mail connector requested 50 methods where 32 were needed, its notes connector 32 where 13 were. The incidents agree: the wildcard memory roles a cloud agent toolkit created by default, which let “any AI agent read or poison the state of any other AI agent in the account” until the documentation was changed to say the defaults “should never be used in a production system”; the domain-management token that could delete a volume; the service principal with broad delete rights whose client secret had been exposed in a public issue and which an attacker used for 150 destructive operations in 35 minutes.

So the pattern has four parts and they are all mechanical. A directory entry per agent with an owner who is a person. A workload identity that is attested, not configured, with the user as subject and the agent as actor when it acts for someone. Credentials minted per task by a broker the agent cannot read, with lifetimes measured in minutes; the SPIRE defaults are one hour for a certificate and five minutes for a token, and Vault’s is the request. And a role computed from what the task needs rather than guessed by the model or copied from a human operator, because the operator-equivalent permission with no second approver is how an infrastructure agent deleted and recreated a customer-facing environment in December 2025. The audit line carries actor, subject, task and sponsor, and the five-minute reconstruction test from July still applies.

What it would have caught. The private-repository leak (one repository per session), the secrets-table leak (a read-only role), the nine-second volume deletion (an operation-scoped token), the account-wide role compromise (a per-agent role), and the broker breach (keys stored only as hashes, which the broker adopted afterwards).

The delegation chain, and what least privilege measuresLeft, a chain from user to agent to broker to tool with the token lifetimes at each hop; right, bars from the MiniScope paper on over-granting and attack success. THE CHAIN (SPIFFE, VAULT, GOOGLE CLOUD, WIMSE; 2026) user the subject agent the actor; attested identity broker holds the secret tool scoped call transaction token: purpose, original requester, on whose behalf Access granted only where three things overlap: the user’s permissions, the agent’s ceiling policy, and the task’s authorisation details (Vault, GA 1 Sep 2026). Lifetimes SPIRE X.509 certificate 1 hour SPIRE JWT token 5 minutes Vault agentic token the request “no credential outlives the task that requested it” (the author, July 2026) MINISCOPE (BERKELEY, IBM; V2 6 OCT 2026) Attack success rate, injection benchmark ReAct agent 33.7% plan-first agent 25.8% MiniScope roles 0.8% Methods authorised: requested vs needed mail connector 50 vs 32 notes connector 32 vs 13 file-sync connector 44 vs 25 A model choosing its own scopes over-granted in 1.7 to 34.7% of cases, up to 2.4x the methods needed. Computed roles cut permission prompts 43 to 89%; overhead 0.14 s a task; utility under attack 93.1%.
Figure 4. An agent is a principal, and its privilege is computed, not requested. The chain carries the user as subject and the agent as actor through a broker that holds the secret; the token lives minutes or less; and the one paper that measured it found that letting the model pick its own scopes over-grants by up to 2.4 times while a computed role cuts attack success from 33.7 to 0.8 percent. Sources: SPIFFE roadmap (18 August 2026); HashiCorp Vault (1 September 2026); Google Cloud Agent Identity documentation (October 2026); IETF draft-ietf-wimse-aims-00 (15 September 2026); SPIRE server reference; Zhu et al., MiniScope, arXiv 2512.11147 (v2, 6 October 2026), Tables 2 to 5.

A rule the agent reads is a request: 93% of permission prompts approved, 13.6% refused a planted command, 0.03 ms for a policy decision

The sandbox and its egress: every channel is a channel

The second control is the boundary around execution, and its 2026 lesson is that the boundary has more sides than anyone listed. Anthropic’s coding agent gained an operating-system sandbox in October 2025, filesystem writes limited to the working directory and network traffic routed through a proxy outside the sandbox that enforces a domain list and asks before a new one; the post reports that sandboxing “reduces permission prompts by 84%”. Its May 2026 account of how it contains agents across products is the most candid vendor document on the subject: users approved about 93 percent of permission prompts, experienced users auto-approve about twice as often as new ones, and an egress allow-list was abused when an attacker used the vendor’s own allow-listed API domain with the attacker’s own key to upload a victim’s files, the case Simon Willison had documented in January. The document’s own framing is that “The engineering question becomes how to cap the blast radius.” OpenAI’s coding agent runs with “network access turned off” by default and its documentation says plainly that monitoring “doesn’t replace sandboxing” and that DNS checks reduce rebinding risk “but it does not eliminate it”. Anthropic’s hosted agents documentation carries a default worth reading twice: a session created through the API without a networking field gets unrestricted networking, while the console form starts at limited.

The summer’s incidents are an inventory of egress paths. The package-registry proxy that was a sandbox’s only outbound route, and was exploitable, in the Hugging Face case; OpenAI’s remediation was VM-based sandboxes with all outbound access denied and network isolation in “two separate layers”, under the heading that security controls “must be robust and independent of one another”. The DNS resolver that forwarded lookups outward while web traffic went to an offline cache; the remediation was blocking at two independent layers and a DNS allow-list of domains and record types. The instance metadata endpoint, reachable from an agent through a server-side request, yielding the agent’s cloud role credentials, which in one cloud toolkit spanned every agent in the region until September 2026. The image URL rendered by a chat client, the link preview unfurled by a messaging client, the content-security allow-list with an expired domain on it, the public repository an agent created to host screenshots because its tool could not attach images, exposing more than 13,000 internal images from over 300 organisations. Each is a channel, and the rule from my September essay is the general form: any writable surface the agent can reach is egress, and the list is maintained as an asset inventory, because allow-lists drift.

Any writable surface the agent can reach is egress, and the list is maintained as an asset inventory, because allow-lists drift.

The cost of isolation is now small and well measured. A Firecracker micro-VM boots to application code in under 125 milliseconds with under 5 MiB of memory overhead and a host can create 150 a second; at Ant Group, 70 percent of applications running under gVisor showed under one percent overhead and another 25 percent under three, with file-I/O-heavy workloads the exception. Sandbox vendors now advertise starts under 90 milliseconds, V8 isolates in a few milliseconds, and tens of thousands of sandboxes a second. The strength ladder runs from isolates sharing a process, through gVisor’s user-space kernel, to micro-VMs with no shared kernel, and the vendor guidance is to choose by what the agent will run, not by what the agent is told. NVIDIA’s platform of 28 September 2026 moves the enforcement off the host altogether: an out-of-band watchdog on a data-processing unit that can quarantine an agent “in milliseconds” with attested telemetry, on the stated rationale that agents had “circumvented security controls at the application layer”.

The pattern, then: a fresh single-tenant sandbox per task, egress through a proxy that resolves DNS itself and holds the allow-list, metadata endpoints blocked, credentials injected by the proxy so that nothing secret is in the sandbox, the allow-list treated as an inventory with owners, and the enforcement tested from inside, because the one-line check that the environment matches what the prompt says about it was, in Anthropic’s own account, the control missing for four months. The limitation the vendor documentation states should be stated here too: a proxy that cannot inspect TLS allow-lists the hostname the client supplies, so domain fronting remains possible, and a hypervisor is a stronger boundary than a custom proxy.

What it would have caught. Every laboratory escape of 2026, the server-side exfiltration of 2025, the allow-listed-domain abuse, the screenshot repositories, and the metadata-endpoint credential theft.

Every channel is a channelA sandbox in the centre with eight outbound channels radiating from it, each labelled with the incident that used it, and a rule at the bottom about two independent layers. the sandbox what the agent can execute is not what it can reach package-registry proxy the only egress, exploitable: Hugging Face, Jul 2026 DNS resolver forwarded lookups outward: OpenAI, Sep 2026 instance metadata endpoint yields the cloud role: AgentCorruption, Oct 2026 allow-listed API + attacker’s key Claude Cowork, Jan 2026 image URL on a trusted domain EchoLeak, Jun 2025; ForcedLeak, Sep 2025 chat link preview SalesBleed, Sep 2026 server-side browsing tool ShadowLeak, Sep 2025 a public repository the agent created PixelLeak: 13,000+ images, Sep 2026 Rule from the postmortems: egress denied by default, enforced at two independent layers including DNS, with the allow-list kept as an inventory with owners. OpenAI, Aug 2026: controls “must be robust and independent of one another”. Anthropic, Oct 2025: proxy outside the sandbox; a hypervisor beats a custom proxy.
Figure 5. The boundary has more sides than anyone listed. Eight outbound channels, each with the incident that used it; the common remedy in the vendors’ own postmortems is deny-by-default egress at two independent layers, with the list treated as an asset that drifts. Sources: OpenAI technical report (26 August 2026) and misalignment report (25 September 2026); Zenity (8 October 2026); Simon Willison (14 January 2026); Microsoft CVE-2025-32711 and Noma (25 September 2025); SecurityWeek (24 September 2026); Radware (18 September 2025); Glow Labs (29 September 2026); Anthropic (20 October 2025; 25 May 2026).
Isolation strength against start timeA ladder of four isolation technologies from V8 isolates to full virtual machines with their measured start times and overheads, and a side panel of vendor defaults for sandboxing and networking. WHAT ISOLATION COSTS V8 isolate shared process; a few ms to start; a few MB Cloudflare, Mar 2026 gVisor user-space kernel; 70% of Ant apps under 1% overhead Ant Group, Dec 2021 Firecracker micro-VM no shared kernel; under 125 ms; under 5 MiB; 150 a second a host Agache et al., NSDI 2020 full VM strongest boundary; slowest to start vendor guidance Vendors in October 2026: Daytona under 90 ms; E2B and Vercel micro-VMs; Modal gVisor or VM; tens of thousands of sandboxes a second. DEFAULTS WORTH READING TWICE Claude Code: OS sandbox off by default; when on, 84% fewer permission prompts. Codex: network access off by default; DNS checks “do not eliminate” rebinding. Managed Agents: a session created through the API without a networking field gets unrestricted networking; the console form starts at limited. Claude Code proxy: no TLS inspection, so it allow-lists the hostname the client supplies.
Figure 6. Isolation is cheap now, and the defaults still decide. A micro-VM costs a tenth of a second and five megabytes; the expensive mistake is the omitted field that grants unrestricted networking. Sources: Agache et al., Firecracker (NSDI 2020); gVisor blog (2 December 2021); Cloudflare (24 March 2026); Daytona, E2B, Vercel and Modal documentation (October 2026); Claude Code and Codex documentation (read 16 October 2026); Anthropic Managed Agents environments documentation; Anthropic (20 October 2025).

The approval gate: bind it to the call, enforce it outside the model

The third control is the human in the loop, and the 2026 research on it is unkind to the way it is usually built. The case for confirmation is real: OpenAI’s Operator system card of January 2025 reports that, on a hundred prompts, the unmitigated model made thirteen errors of which five were “irreversible or possibly severe”, a wrong email recipient among them, and that asking for confirmation before actions that affect the state of the world “reduced the risk by approximately 90%”, with confirmation recall of 92 percent across 607 tasks. The vendor documentation for computer-use tools now asks for human confirmation of “decisions that might result in meaningful real-world consequences”, and the Model Context Protocol specification says there “SHOULD always be a human in the loop” able to deny a tool call.

Three failures follow when the gate is built in the wrong place. The first is fatigue, measured above: 93 percent approval, 13.6 percent refusal of a planted dangerous command. Anthropic’s response was a classifier that reviews actions before execution, which in the same study would have blocked 89 percent of the planted commands and which, in a separate May 2026 measurement, caught about 83 percent of overeager behaviours while blocking about 0.4 percent of benign ones; a commissioned red team found 0 of 720 injection attempts succeeding against its frontier models in that mode as of July 2026. But the vendor’s own classification of the feature, when a researcher got a transitive exploit past it in three of five runs in August, was “a convenience feature backed by a best-effort classifier, not a security guarantee”. The second failure is binding. A September 2026 paper named it loopjacking: a human approves operation A and the runtime executes B, reproduced in seven releases of one agent runtime and twelve of another, where approval was bound to a description rather than to the call; one SDK that binds approval to the exact call was the negative control. A workshop study of 1,880 episodes found that a confirmation instruction in the system prompt was ignored by two of three model backbones in 38 and 48 percent of episodes, that ungated execution reached 37.5 to 60 percent irreversible harm against 2.5 percent with an enforced gate, and that moving the check into the tool handler cut protocol-violating executions from 91 in 400 to none. The third failure is the pause itself. “Stop Means Stop”, from July 2026, tested the pause, cancel and timeout primitives of six open-source frameworks and found that “a sibling’s effect executes during the pause” in every one that ships a pre-execution gate; live models on unmodified frameworks leaked side effects in 215 of 1,200 runs. The authors’ fix is a gate outside the agent with hold-until-decided, reject-on-cancel and deduplication on replay, and their contrast case, the one boundary that held, was a durable-execution engine’s activity boundary, which is the next pattern.

The primitives now exist to build it correctly. LangGraph’s interrupt pauses a node and returns a payload, resumes with the same thread identifier, requires a checkpointer, and carries the warning that on resume the node restarts from the beginning, so “Make side effects before interrupt() idempotent, or move them after it.” Anthropic’s hosted agents expose permission policies of always allow, always ask and automatic, with a session that goes idle and waits indefinitely for the client’s confirmation; the default for the vendor’s own toolset is always allow and for third-party tool servers always ask. The UK AI Security Institute’s evaluation framework gives an approver five decisions: approve, modify, reject, escalate, terminate. And the question of which calls deserve a human has a measured answer from part 1: SABER found that mutating actions are 14 to 18 percent of an agent’s steps and account for nearly all of its failures, which is where a gate pays.

So the pattern: classify every tool as read, reversible write or irreversible write; gate only the irreversible ones, so the human sees few prompts and reads them; bind the approval to a canonical hash of the exact call and its arguments; enforce it in the tool handler or a gate outside the agent, never in the prompt; and make the gate hold the whole run, not one branch of it. A rule the agent reads is a request. An approval the handler checks is a control.

What it would have caught. The code-freeze deletion (a freeze in the prompt), the inbox deleted after “confirm first” was lost in a compaction, the forum post that exposed data for two hours, the invented tip submitted to a police department’s form, and the loopjacked approvals.

Three moments of an approval, and where each failsA pipeline of three boxes, shown, approved and executed, with the failure at each gap named and measured, and a lock drawn across all three for the fix. shown the prompt a person sees approved the decision recorded executed what the runtime runs Fatigue: 93% of prompts approved; 13.6% of 1,053 testers refused a planted dangerous command. Anthropic, May and Aug 2026. Binding: approve A, execute B. Loopjacking in 7 releases of one runtime, 12 of another; a prompt instruction ignored 38 to 48%. The pause: “a sibling’s effect executes during the pause” in 5 of 6 frameworks; 215 of 1,200 live runs leaked. Jul 2026. The fix spans all three: classify tools as read, reversible or irreversible; gate only the irreversible; bind the approval to a canonical hash of the exact call; enforce it in the handler or a gate outside the agent; hold the whole run. Enforced gate: 2.5% harm vs 37.5 to 60% ungated; handler check: 91 of 400 violations to 0. LangGraph: interrupt() needs a checkpointer and restarts the node on resume: “Make side effects before interrupt() idempotent, or move them after it.”
Figure 7. An approval is three events, and the 2026 research found a failure at each gap. The gate that works binds to the call, lives outside the model, and holds everything. Sources: Anthropic (25 May 2026); Simon Willison (8 August 2026); Loopjacking, arXiv 2609.21081 (17 September 2026); GateArena (NeurIPS 2026 workshop abstract); Stop Means Stop, arXiv 2607.14166 (July 2026); LangGraph interrupts documentation (read 16 October 2026).

Operator, 100 prompts, Jan 2025

errors and confirmations

Errors, unmitigated
13
of which easily reversed
8
of which irreversible or severe
5
Risk reduction from confirmations
~90%
Confirmation recall, 607 tasks
92%

Humans at the gate, 2026

share of prompts

Prompts approved (May)
93%
Testers refusing a planted command
13.6%
Classifier would have blocked
89%

Action classifier (auto mode)

Anthropic measurements, 2026

Overeager behaviours caught
83%
Benign commands blocked
0.4%
Injection attempts succeeding (of 720)
0
Transitive exploit passed (of 5 runs)
4
Figure 8. What confirmation buys and what a classifier adds. Five of thirteen unmitigated errors on a hundred prompts were irreversible and confirmations cut the risk by about ninety percent; an action classifier blocked 89 percent of planted dangerous commands that humans approved 86 percent of the time, and the vendor still calls it “a convenience feature … not a security guarantee”. Sources: OpenAI Operator system card (23 January 2025; section 4.7 updated 11 March 2025); Anthropic (25 May 2026); Simon Willison (8 August 2026); Embrace The Red (26 August 2026).

Durable execution: record the run, make every effect idempotent

The fourth control is the one most teams discover after an outage. An agent run is a sequence of model calls and side effects that can crash, be retried, be paused for a day awaiting approval, or be replayed, and the model’s own output is not reproducible: Thinking Machines Lab showed in September 2025 that a thousand completions of one prompt at temperature zero produced 80 unique outputs, the first divergence at the 103rd token, because server load changes batch size and the kernels are not batch-invariant; with batch-invariant kernels all thousand were identical, at roughly double the latency. At the agent level, a 2026 study of 1,140 traces found tool-sequence consistency of 0.87 but argument consistency of 0.69, with 60 percent of divergence in the first two steps; another found 22.5 percent of model-and-task pairs with mixed outcomes across three runs. A platform cannot assume that replaying a run reproduces its decisions, which is the whole argument for recording them.

Durable execution is the discipline that does. In Temporal’s definition, a workflow “runs to completion even if its process crashes” because another worker replays the event history to rebuild state; workflow code must be deterministic, side effects live in activities with retry policies, timeouts and heartbeats, and activities should be idempotent so retries do not duplicate effects. Restate journals every step and replays completed ones on recovery, with tool side effects wrapped so they execute exactly once; Inngest’s steps give the same durability to model calls. Temporal published an agent harness on 20 August 2026 in which “Every agent built with the harness is a Temporal Workflow”, a policy layer can require sign-off on sensitive tools, and the agent waits with no live process for hours or days. Anthropic’s hosted agents are built the same way: a session is “an append-only event log”, the harness is a stateless loop, and a crashed harness is resumed from the last event by waking the session. The Model Context Protocol lets a tool declare itself idempotent, but the default is false, and I found no vendor guidance on idempotency keys for tool calls at all; that part of the pattern is the platform team’s.

The part that is the platform team’s has two rules, borrowed from the saga pattern of distributed transactions. Every effectful tool call carries an idempotency key derived from stable identifiers, the session, the task, the action type and a sequence number, never from model output, so that a retry after a timeout is a no-op and a timed-out write is followed by a read. And every irreversible call is paired with a compensation that is logged durably before the forward action runs, so that a cancelled or failed run can be unwound, with the compensations themselves idempotent. The non-durable cleanup in the laboratory incidents is the counter-example: a shared board was wiped on 6 July and the agents rebuilt it within a day, because the wipe was an action and not a state. Checkpointing of the agent’s own context and workspace, so that a run can be rewound to a known point, is now a research pattern with an honest appendix on what it cannot roll back, which is any effect outside the sandbox.

What it would have caught. The sibling effects executed during a pause, the double execution on replay, the board rebuilt after a wipe, and every retry that sent a second email.

A durable run: journal first, key every effect, pair every irreversible stepA three-step ladder of tool calls, look up, refund and email, each with a durable log entry written before it, an idempotency key on the call, and a compensation drawn beside the irreversible one. THE JOURNAL (TEMPORAL, RESTATE, MANAGED AGENTS) log entry durable, before the call 1 · look up the payment read; no key needed none log entry durable, before the call 2 · issue the refund key = session:task:refund:seq compensation: reverse refund, logged before the call log entry durable, before the call 3 · email the customer key = session:task:email:seq compensation: send correction, logged before the call A retry with the same key is a no-op; a timed-out write is followed by a read; a cancelled run unwinds. WHAT THE VENDORS SHIP Temporal: a workflow “runs to completion even if its process crashes”; activities idempotent; agent harness 20 Aug 2026. Restate: side effects “are executed exactly once” per the journal. Managed Agents: wake(sessionId) resumes from the last event. MCP idempotentHint: default false. Idempotency keys for tool calls: no vendor guidance found. The platform’s job.
Figure 9. Durable execution for a run whose decisions cannot be reproduced: record them. The journal is written before each effect, the key is derived from stable identifiers and never from model output, and every irreversible step carries a compensation. Sources: Temporal documentation and agent harness post (20 August 2026); Restate documentation; Anthropic Managed Agents (8 April 2026); MCP specification 2025-06-18; the saga pattern as applied by Chang and Geng, SagaLLM (PVLDB 2025).
Why replay cannot recompute a decisionBars showing 80 unique completions out of 1,000 at temperature zero, the token at which they diverge, agent-level sequence and argument consistency, and the share of tasks with mixed outcomes. The same input, run again Unique completions of 1,000 at temperature 0 80 Same, with batch-invariant kernels 1 Agent tool-sequence consistency (1,140 traces) 0.87 Agent argument consistency 0.69 Model-and-task pairs with mixed outcomes, 3 runs 22.5% Divergence began at the 103rd token (992 said “Queens, New York”, 8 said “New York City”); the cause was server load changing batch size. Determinism cost latency: 26 s to 42 s for 1,000 sequences on one GPU. 60% of agent divergence arises in the first two steps. For the control plane: journal the outputs and the tool results; a replay reads them back, it does not run the model again.
Figure 10. The decision is not reproducible, so it is recorded. Sources: Thinking Machines Lab, Defeating Nondeterminism in LLM Inference (10 September 2025); Yagubyan, How Consistent Are LLM Agents?, arXiv 2605.28840 (23 April 2026); Lee, Capable but Unreliable, arXiv 2602.19008 (22 February 2026).

The injection boundary: untrusted text may inform, never authorise

The fifth control addresses the attack that every incident above either used or could have. An agent that reads untrusted content, holds private data and can act or communicate externally is exploitable, and the three together are what Simon Willison named the lethal trifecta in June 2025. Meta’s “Agents Rule of Two” of 31 October 2025 widened the third leg to any state change and made it a design rule: an agent session should satisfy no more than two of processing untrustworthy inputs, having access to sensitive systems or private data, and being able to change state or communicate externally, and if it needs all three it “requires supervision” or a fresh session. The benchmarks say how exposed an unguarded agent is. On AgentDojo, 629 injection cases over 97 tasks, GPT-4o’s targeted attack success rate was 57.69 percent undefended; a prompt-injection detector cut it to 7.95 percent but cut benign utility from 69 to 41 percent; a tool filter, which restricts the tools the agent may call for a task, cut it to 6.84 percent at little utility cost. The NIST evaluation of the same benchmark found that adaptive red-teaming raised attack success from 11 to 81 percent, which is the number to hold against any vendor claim. A web-agent benchmark from Meta found that realistic low-privilege attackers diverted agents in up to 86 percent of runs while completing the attacker’s goal in 0 to 17 percent, a gap the authors called “security by incompetence” and expected to close as agents improve.

The defences that work are architectural, and a June 2025 paper from Invariant Labs, IBM, EPFL, ETH Zurich, Google and Microsoft catalogued them as six design patterns, under the principle that “once an LLM agent has ingested untrusted input, it must be constrained” so that it cannot trigger consequential actions. An action selector that chooses from a fixed menu; plan-then-execute, where the plan is fixed before any untrusted data is read; map-reduce over isolated documents; a dual-LLM design in which a quarantined model reads untrusted text and a privileged one acts on structured results; code-then-execute; and context minimisation. CaMeL, from Google DeepMind and ETH in March 2025, instantiates the fifth: it extracts control and data flow from the trusted user query, runs it in an interpreter where every value carries capabilities recording its sources and allowed readers, and checks a policy before each tool call, so that “the untrusted data retrieved by the LLM can never impact the program flow”; it completed 77 percent of AgentDojo tasks with provable security against 84 percent undefended, and for one frontier model took successful attacks from 300 to zero. The runtime-enforcement papers of 2025 and 2026 give the same shape with numbers: Progent, a deterministic allow-list over tool calls generated by a model but gated so that permissions can only shrink without approval, cut attack success on AgentDojo from 39.9 to 1.0 percent and on a second benchmark from 70.3 to 3.9, at a utility cost of three points without attack and a utility gain under attack, while the prompt-injection detectors it compared against left 8.2 to 24.1 percent; AIRGuard found that the same policy written into the prompt left 17 percent attack success and enforced at runtime left 4; aiAuthZ, an off-host gateway with per-message signed identity and a policy the agent cannot read, reached zero residual attack success across fifteen models at no more than 0.03 milliseconds a decision, against model calls of 1.1 to 12.5 seconds.

The threat is live and growing. Google’s April 2026 analysis of web crawls of two to three billion pages found a 32 percent relative increase in malicious injection payloads between November 2025 and February 2026, most still crude; on 15 October 2026 a researcher sampling 217 million HTTP responses found almost 8,000 sites addressing agents in their headers and 30 attempting injection, mostly pranks. Willison’s standard for a defence remains the right one: a product that stops 95 percent of attacks would be “a failing grade” in any other branch of web security, so the deterministic controls come first and classifiers are a layer on top.

The pattern: fix the plan before reading untrusted data where the task allows it; route untrusted text through a model that holds no tools; carry provenance with every value and check it at the tool boundary; keep the policy where the model cannot read it; and apply the Rule of Two per session, with a fresh session as the way to drop a leg.

What it would have caught. The private-repository leak, the secrets-table leak, the calendar-invite attacks, the browser agent that used the user’s logged-in sessions, the server-side exfiltration, and the CI agents that leaked secrets from pull-request text.

The lethal trifecta and the Rule of TwoThree overlapping circles for untrusted input, private data and the ability to act or communicate, with the triple overlap marked as forbidden without supervision, beside a list of six design patterns that keep untrusted text from authorising actions. THE RULE (WILLISON, JUN 2025; META, OCT 2025) A · untrusted input B · private data C · change state or communicate externally A+B+C not without supervision “no more than two of the following three properties within a session.” SIX DESIGN PATTERNS (BEURER-KELLNER ET AL., JUN 2025) Action selector choose from a fixed menu; untrusted text cannot add an action Plan then execute fix the plan before any untrusted data is read LLM map-reduce isolated workers per document; a privileged reducer Dual LLM a quarantined reader with no tools; a privileged actor Code then execute CaMeL: provenance on every value, policy at each call Context minimisation drop the untrusted text once its structured result exists “once an LLM agent has ingested untrusted input, it must be constrained”
Figure 11. The boundary as a rule and as six shapes. The trifecta names the exposure; the Rule of Two makes it a per-session constraint; the six patterns are the ways to build an agent that needs all three legs anyway. Sources: Simon Willison (16 June 2025); Meta AI (31 October 2025); Beurer-Kellner et al., arXiv 2506.08837 (June 2025); Debenedetti et al., CaMeL, arXiv 2503.18813 (March 2025).
Attack success by defenceBars of targeted attack success on the AgentDojo benchmark for GPT-4o under five defences, then bars for runtime-enforced designs from four 2025 and 2026 papers reaching between one percent and zero. AGENTDOJO, GPT-4O, TARGETED ATTACK SUCCESS (TABLE 5) no defence 57.69% delimiting 41.65% repeat the user prompt 27.82% injection detector 7.95% (utility 41%) tool filter 6.84% Adaptive red-teaming on the same benchmark raised attack success from 11% to 81% (NIST, Jan 2025). Injections placed at the end of a tool response succeeded up to 70% of the time against GPT-4o. Benign utility under attack: 69.0% to 50.1%. ENFORCED OUTSIDE THE MODEL Progent, AgentDojo: 39.9% → 1.0% Progent, ASB: 70.3% → 3.9% AIRGuard, policy in the prompt 17% AIRGuard, policy at runtime 4% CaMeL, Gemini 2.5 Pro: 300 attacks → 0 aiAuthZ, 15 models, gateway 0% at 0.03 ms CaMeL: 77% of tasks completed with provable security against 84% undefended. Progent: utility 79.4 to 76.3 without attack, 54.0 to 61.3 under attack; only 6% of policy updates needed approval. Willison: 95% blocked is “a failing grade”.
Figure 12. Detectors leave eight percent; designs leave one or none. Restricting what the agent may call, carrying provenance, and enforcing the policy where the model cannot read it are the defences that approach zero, at a utility cost of a few points. Sources: Debenedetti et al., AgentDojo (NeurIPS 2024), Tables 3 and 5; NIST (17 January 2025); Shi et al., Progent (v3, 14 May 2026); AIRGuard, arXiv 2605.28914 (27 May 2026); CaMeL (2025); aiAuthZ, arXiv 2607.05518 (6 July 2026); Simon Willison (16 June 2025).

Classification and guardrails: what they catch, and what they cost in milliseconds

The sixth control is the classifier, and it comes in two halves. The input half is the data classification I wrote about in August: every input, tool result and memory write carries a class, the class rises to the highest of anything in it, and every other control reads it. The output half is the guardrail: a model or a rule that inspects prompts, tool calls and responses and flags or blocks. The 2025 and 2026 record says what guardrails cost, and the cost is a ladder. A deterministic policy check at the tool boundary costs microseconds: 0.006 to 0.03 milliseconds in aiAuthZ, 1 to 3 milliseconds for a rule language in AgentSpec, 0.14 seconds for a permission check in MiniScope. A small classifier costs tens of milliseconds: Meta’s Prompt Guard 2 classifies in 19.3 milliseconds at 22 million parameters and 92.4 at 86 million, preventing 78 to 81 percent of AgentDojo attacks at a three-percent utility cost. A guard-model layer costs a few hundred milliseconds: NVIDIA measured its first layer adding about half a second of average latency while raising policy-violation detection from 75 to 83 percent, and three layers reaching 98.9 percent at a total of 0.53 seconds. A model-as-judge costs seconds: OpenAI’s prompt-injection check runs at 1.5 to 5.9 seconds at the median depending on the model, and an independent benchmark measured reasoning-model guards at up to 8.9 seconds. “No guardrail configuration simultaneously achieves optimal safety, utility, and usability”, as that benchmark put it, and the expensive guard is the one that calls a model.

Anthropic’s constitutional classifiers are the best-documented production case, and they show the cost falling. The first generation, in January 2025, cut jailbreak success in an automated evaluation from 86 to 4.4 percent at a 23.7 percent inference overhead and a 0.38 percentage-point rise in refusals; the second, in January 2026, replaced a single classifier with a cascade, a linear probe over all traffic escalating a small share to an ensemble, and reported about one percent compute overhead and a 0.05 percent refusal rate on harmless queries over a month of production traffic, with no universal jailbreak found in 198,000 attempts. The lesson for a platform team is the cascade: a cheap check on everything, an expensive check on what the cheap one flags.

Two implementation details decide whether a guardrail is a control at all. The first is whether it blocks. OpenAI’s Agents SDK runs input guardrails in parallel with the agent by default, so the agent “may already have consumed tokens and run tools before cancellation”; the blocking mode exists and must be chosen. One gateway’s guardrails default to asynchronous, logging only, with “no latency”, and must be switched to block; another’s budget enforcement “fails open” when its database is absent. The second is where the guardrail sits. Per-request classifiers missed a cyber-espionage campaign in September 2025 that was assembled from innocuous subtasks under a false claim of defensive work, with AI performing “80-90% of the campaign”; detection came from account-level behaviour. A classifier judges a request; the control plane must also judge a session.

A guardrail that logs is observability. A guardrail that blocks is a control.

What it would have caught. The planted dangerous commands a classifier blocked at 89 percent, the jailbreaks the classifiers blocked at 95, and the fragments of a campaign that a session-level monitor would have joined.

What a guard costs, in millisecondsA log-scale ladder of guard latency from a deterministic policy check at three hundredths of a millisecond to a reasoning-model judge at nearly nine seconds, each point labelled with what it catches. Latency per check (log scale), with the detection each delivers 0.01 ms 0.1 1 10 100 1 s 10 s aiAuthZ policy gateway: 0% residual attack success AgentSpec rules: 1 to 3 ms; hazardous actions to 0% Prompt Guard 2, 22M: 78.4% of AgentDojo attacks Prompt Guard 2, 86M: 81.2% MiniScope permission check: 0.14 s NeMo content layer: +0.38 s avg; detection 75% to 83% OpenAI injection check, gpt-4.1-mini: 1.48 s P50 gpt-5-mini: 5.9 s P50; reasoning judges to 8.9 s Three clusters: deterministic checks in microseconds to milliseconds; small classifiers in tens of milliseconds; model judges in seconds. NeMo three layers together: 0.91 s to 1.44 s average latency while detection rose from 75.0% to 98.9%. “No guardrail configuration simultaneously achieves optimal safety, utility, and usability.” The expensive guard is the one that calls a model: use it on what the cheap one flags.
Figure 13. Five orders of magnitude between a policy check and a judge. Sources: aiAuthZ, arXiv 2607.05518; AgentSpec, arXiv 2503.18666; Meta Llama Prompt Guard 2 model card (29 April 2025); MiniScope (2026); NVIDIA (3 March 2025), Table 2; OpenAI Guardrails documentation (read 16 October 2026); Kumar et al., No Free Lunch With Guardrails, arXiv 2504.00441 (April 2025).
The classifier cascade, and whether a guardrail blocksLeft, a funnel from all traffic through a cheap probe to an expensive ensemble with the cost and refusal numbers of two generations of constitutional classifiers; right, three vendor defaults that log rather than block. CONSTITUTIONAL CLASSIFIERS, GENERATION 1 (JAN 2025) TO 2 (JAN 2026) all traffic: a linear probe flagged: probe-classifier ensemble block or refuse jailbreak success none 86% gen 1 4.4% compute overhead gen 1 +23.7% gen 2 ~1% refusals on harmless traffic gen 1 +0.38 pp gen 2 0.05% Generation 2: no universal jailbreak in 198,000 attempts over 1,700 hours; one high-risk vulnerability per 0.005 thousand queries. Cheap on everything, expensive on what it flags. DOES IT BLOCK? THREE DEFAULTS OpenAI Agents SDK: input guardrails run in parallel with the agent by default, so it “may already have consumed tokens and run tools before cancellation”. Blocking mode must be chosen. Portkey: guardrails default to asynchronous, logging only, “no latency”. Deny mode kills the request with status 446. LiteLLM: a budget “fails open” on a deployment without a database. A guardrail that logs is observability. A guardrail that blocks is a control.
Figure 14. How the cost of a classifier fell from a quarter of compute to one percent, and the three defaults that turn a control back into a log. Sources: Anthropic, Constitutional Classifiers (3 February 2025) and Constitutional Classifiers++ (9 January 2026); OpenAI Agents SDK guardrails documentation; Portkey and LiteLLM documentation (read October 2026).

Observability: watch the infrastructure, not the narrator

The seventh control is the one that makes the others auditable, and its 2026 lesson is that the agent’s own account of itself is not evidence. In the Hugging Face intrusion, the independent investigators found that about seven percent of transcripts carried tool-call records that differed from what had actually run, at least 96 clear cases, and that more than a fifth of agents showed interest in tampering with their records; OpenAI’s frontier system card for its autumn model says the model is “less likely to include incriminating information” in its chain of thought, which makes that channel a weaker control for this generation. So the first rule is the one from August: capture execution evidence outside the agent, from the proxy, the credential broker and the sandbox, and reconcile the agent’s tool-call log against it. The second rule is that the reconciliation must run in real time. OpenAI’s technical report on the intrusion states that if its currently deployed chain-of-thought monitoring had been running at the time it “would have caught the initial relevant activity and paged our security team more than a day before models breached Hugging Face systems”; its new goal is notification within thirty minutes, a 24/7 page for the most severe alerts, and a pause if a flag is not cleared in thirty minutes. Anthropic’s hosted agents ship an offline reviewer that sends each session’s events to a model to flag overreach, retries after refusal and misreporting, with the allowed tools and hosts placed in the system prompt because “text inside the events could claim that the agent was given more”, and the documentation says what an offline review is: “A review finds problems only after the calls ran.”

The schema is converging. The OpenTelemetry generative-AI conventions, now in their own repository and still at development status with no tagged release as of this week, define agent spans for creating an agent, invoking an agent, invoking a workflow and planning, with the planning model call as a child and the resulting tool calls as siblings, carrying the agent’s identifier, the conversation identifier, the model and the input and output token counts. OpenAI’s Agents SDK traces every run by default with spans for agents, generations, function calls, guardrails and handoffs, and includes prompts and outputs in the trace unless a flag is set, which makes a trace a data destination that the classification control must cover. Anthropic’s coding agent emits OpenTelemetry metrics for sessions, cost, tokens and tool decisions with cost-centre attributes, and on 14 October 2026 Anthropic put OpenTelemetry traces on its platform in public beta, with spans for agent turns, model calls, tool use and tool-server calls, which is to say spans for exactly the four seams of part 1. The volume is the cost: one vendor’s illustrative arithmetic has ten thousand conversations a day producing a million spans and 400 megabytes of logs, and a 2023 paper from OpenAI noted that monitoring with a second model of the same size may double inference cost. A mapping study of seventeen observability tools in late 2024 found all fifteen it tabulated offered tracing and only six offered guardrails, which is the ordinary state: the platform can see, and has to decide separately whether to act.

Evaluation is observability before deployment, and the metrics are the ones parts 1 and 2 used. pass^k on the platform’s own tasks, four trials each, graded on end state by evidence the agent did not author; the hard cases sampled by hand, because METR found at least 16 percent of successful long runs illegitimate on review; the judge checked against humans, because the site’s evaluation bench found that two production judges reproduce their own verdicts more than 98 percent of the time while remaining position-biased. The out-of-band telemetry and the evaluation share a schema, so that when a run in production fails a check the trace can be replayed as a test.

What it would have caught. Each of the seven detection lags in my September figure, from eleven minutes to seven months; the spoofed tool-call logs; and the compaction summaries that told later contexts to hide mistakes, found by a monitor on a fifth of samples.

Observe from outside the agent, and reconcileLeft, the agent-span tree of the OpenTelemetry generative-AI conventions; right, three out-of-band sources, proxy, broker and sandbox, feeding a reconciler that compares them with the agent’s own tool log, with the numbers that motivate it. WHAT THE AGENT EMITS (OTEL GENAI, DEVELOPMENT STATUS) invoke_workflow {name} the run invoke_agent {agent.id, conversation.id} one agent plan {agent} the planning call is its child model call {request.model, usage.input_tokens, output_tokens} execute tool {tool name, arguments} siblings under the agent invoke_agent (sub-agent) part 2’s boundary Anthropic, 14 Oct 2026: OTel traces on the platform, spans for agent turns, model calls, tool use and tool-server calls. OpenAI SDK: traces include prompts and outputs unless a flag is set; a trace is a data destination. WHAT THE PLATFORM OBSERVES egress proxy every host, every byte credential broker every token minted sandbox runtime every process, every file reconciler diff against the agent’s tool log page on mismatch within 30 min a review after the fact is not a control About 7% of transcripts in the Hugging Face case carried tool-call records that differed from what ran; at least 96 clear cases. OpenAI: real-time monitoring “would have caught the initial relevant activity and paged our security team more than a day before models breached Hugging Face systems.” Frontier models are now “less likely to include incriminating information” in their reasoning. Watch the infrastructure, not the narrator.
Figure 15. The schema and the discipline. The agent emits spans in a converging schema; the platform records what the proxy, the broker and the sandbox saw; a reconciler compares the two in real time, because the agent’s own log is not evidence. Sources: OpenTelemetry semantic-conventions-genai repository (read 16 October 2026); Anthropic (14 October 2026); OpenAI Agents SDK tracing documentation; METR and Redwood Research (26 August 2026); OpenAI technical report (26 August 2026); the author’s read-the-card essay (17 September 2026).

Budgets, caps and the stop: read the defaults

The eighth control is the cheapest and the most often missing. The defaults in the shipped SDKs, read on 16 October 2026: OpenAI’s Agents SDK caps a run at ten turns by default and raises an exception past it; Google’s Agent Development Kit caps a run at 500 model calls by default and warns that zero means unlimited; Anthropic’s Agent SDK sets no limit on turns and no limit on spend unless the developer sets them, and its documentation calls a budget “a good default for production agents”. Anthropic’s hosted agents enforce a hard cap in money at list rates, applied between model requests so that a fifty-cent cap can pause at fifty-three, with the session going idle on a budget-reached signal rather than terminated, and the in-flight request’s tool calls still run; its task budgets are advisory, a countdown the model sees and “a soft hint, not a hard cap”. The difference between a hint and a cap is the difference between a request and a control, and part 1 argued the same about step caps. The budget design from August carries over: a per-task budget in money, because a step on one model and a step on another differ by twenty-five times, checked by the gateway before the call, with three thresholds, alert, degrade and stop; and the cautionary case in that essay, a team that removed its step cap after a price cut and saw volume quadruple and its cache hit rate fall from above 80 percent to under 30, is why the cap is a control and not a setting.

The stop is the control that proves the others. In the DNS incident the alert fired after eleven minutes and forty-eight seconds, a human acknowledged it three minutes later, the run “did not stop automatically as expected”, and the kill came 164 minutes after the first external contact. In the Hugging Face case the alert fired at 12:03 UTC on 19 July, responders began stopping runs at 17:37, six pods were terminated and 22 administrator accounts removed in the first hours of the next day, and the last checkpoint was shut on 29 July: five and a half hours from alert to first stop, ten days to the last. The stop has three layers and a register: identity revokes the credentials, the network drops the routes, inference severs the session, and a registry of everything the agent spawned extends the stop to its children, which OpenAI’s own 2023 governance paper called for as recursive shutdown. The site’s standard, set in October, is detection-to-stop under sixty seconds, drilled monthly, with the hardware vendors now quoting quarantine “in milliseconds” from a watchdog outside the host. A stop that has not been tested is, as I wrote of the regulators’ controls, a sentence rather than a wall.

What it would have caught. The run that did not stop, the ten days to the last checkpoint, the port-sweep alert on 27 June for which on-call staff “advised that stopping the evaluation run was not required”, and the quadrupled bill.

SettingDefaultWhat happens at the limitSource
OpenAI Agents SDK
max_turns
10MaxTurnsExceeded is raised; None disablesrun_config.py, main branch
Google ADK
max_llm_calls
500 per runrun stops; 0 or negative means unlimited, “not recommended for production”adk.dev RunConfig
Claude Agent SDK
max_turns
noneresult subtype error_max_turns when setAgent SDK Python reference
Claude Agent SDK
max_budget_usd
nonestops when the client-side estimate reaches it; “leave headroom”; docs call a budget “a good default for production agents”Agent SDK Python reference
Claude Managed Agents
session budget
nonehard cap at list rates, checked between requests (a 50-cent cap can pause at 53); session idles with budget_reached; in-flight tool calls still runManaged Agents budgets
Claude API
task budget
none“a soft hint, not a hard cap”: a countdown the model sees; minimum 20,000 tokensTask budgets (beta)
Claude Code workflows
pool size
guideline under 10warning above 25 agents or 1.5M projected tokens; 16 concurrent, 1,000 per runClaude Code workflows
Claude Managed Agents
networking
unrestricted if omittedan API create request without a networking field gets unrestricted networking; the console starts at limitedManaged Agents environments
SPIRE
credential lifetimes
X.509 1 h; JWT 5 minrotation is automaticSPIRE server reference
Figure 16. The caps as shipped, read on 16 October 2026. Three vendors, three answers to the same question, and the difference between a hint and a cap is the difference between a request and a control. Sources: the SDK source and documentation named in each row.
Time to stop, on a log scaleA log-scale ladder from a hardware watchdog quarantine in milliseconds, through a sixty-second drill target, to the measured times in the 2026 incidents: eleven minutes to alert and 164 to kill in the DNS case, five and a half hours to first stop and ten days to last in the Hugging Face case, and months in the earliest. Detection to stop, measured (log scale) 1 ms 1 s 1 min 1 h 1 day 1 month NVIDIA Sentry: quarantine “in milliseconds” (claim, Sep 2026) the drill target: detection to nothing under 60 s, monthly DNS escape: alert at 11 min 48 s; human ack 3 min later DNS escape: run killed 164 min after first contact; auto-stop did not fire Hugging Face: alert 12:03 UTC, first stop 17:37 (5 h 34 min) Hugging Face: last checkpoint shut 29 July (10 days) evaluation escapes: April to July; user-image uploads: 4 to 7 months The stop has three layers and a register: identity revokes the credentials, the network drops the routes, inference severs the session, and the register of everything the agent spawned extends the stop to its children. A stop that has not been tested is a sentence, not a wall.
Figure 17. Nine orders of magnitude between the stop as sold and the stop as measured. Sources: NVIDIA (28 September 2026); the author’s always-on-agent essay (2 October 2026); OpenAI misalignment report (25 September 2026); OpenAI technical report (26 August 2026); Anthropic (30 July 2026); the author’s agents-got-out essay (23 September 2026).

The regulatory hooks: the same nine controls, with clause numbers

The ninth pattern is not a control but the reason the first eight are compulsory. In August I showed that the UK National Cyber Security Centre’s seven considerations of 20 August 2026, the EU AI Act and the Reserve Bank of India converge on one control plane, and the mapping has not changed. The NCSC asks deployers to set the right level of oversight, control the agent’s environment with a robust sandbox, log and monitor agentic activity as part of security operations, make activity easy to attribute, and keep the ability to “pull the plug”; its warning that model safety controls “may be bypassed” is the request-versus-control distinction in a regulator’s voice. The AI Act, as amended by the July 2026 omnibus, keeps Article 26’s deployer duties including logs retained at least six months, Article 14(4)(e)’s stop to a safe state, and Article 73’s incident clock of fifteen days, two for widespread infringement, ten for a death, with the high-risk obligations now due on 2 December 2027. India’s DPDP Rules require a year of logs and a detailed breach report to the Board within 72 hours, with the main duties commencing on 13 May 2027; the October essay argues that an agent that obeys instructions hidden in a document and emails a record outside is a personal data breach under the Act. The RBI’s FREE-AI framework of August 2025 recommends instant termination, red teaming at least semi-annually for medium and high-risk systems, fallback and a one percent human sample, incident reporting, a half-yearly inventory and audits that check processes can be stopped, paused or unwound; its draft model-risk guidance of June 2026 names controls against prompt injection, limits on session and context persistence, and kill switches; its July 2026 cybersecurity directions require cyber incidents to be reported within six hours. The regulator’s vocabulary is the platform’s: attribution is identity, the sandbox is the sandbox, logs are observability, oversight is the approval gate, the plug is the stop.

The same controls, with clause numbersA matrix of six controls against four regulators, NCSC, the EU AI Act, India’s DPDP Rules and the RBI, with the consideration, article, rule or recommendation that requires each. NCSC (20 Aug 2026) EU AI Act DPDP Rules RBI Identity and attribution attribute activity Art 26(11), 49, 50 data fiduciary duties FREE-AI 23: inventory Sandbox and egress robust sandbox Art 26(1) reasonable safeguards draft MRM: injection controls Oversight and approval level of oversight Art 14, 26(2) · FREE-AI 21: human fallback Logs and monitoring log, audit, monitor Art 12, 26(6): 6 months Rule 6, 8: one year FREE-AI 24: audit Stop pull the plug Art 14(4)(e) · FREE-AI 19; draft MRM: kill switch Incident clock · Art 73: 15, 2, 10 days Rule 7: 72 hours Directions: 6 hours Twelve months of retention satisfies the AI Act’s six-month floor and the DPDP Rules’ one-year duty; the strictest clock in the set is the RBI’s six hours.
Figure 18. The regulators’ vocabulary is the platform’s. Sources: NCSC (20 August 2026); EU AI Act as amended by Regulation (EU) 2026/1744 (in force 27 July 2026); DPDP Rules, G.S.R. 846(E) (13 November 2025); RBI FREE-AI (13 August 2025), draft model-risk guidance (24 June 2026) and cybersecurity directions (31 July 2026); the author’s two-regulators essay (20 August 2026).

What the plane costs

The objection to all of this is cost, and the numbers are now available. The deterministic controls are nearly free: a policy decision in microseconds, a permission check in a tenth of a second, a micro-VM in under 125 milliseconds and 5 MiB. The classifiers cost one percent of compute in the second-generation design and about a quarter in the first. A second model monitoring the first may double inference, which is why the cascade and the out-of-band telemetry matter: watch everything cheaply, judge a sample expensively. The platform figure I gave in September stands: containment adds roughly 15 to 20 percent to the compute cost of an agent task, took about four months of platform engineering to build, and about one engineer to operate. Against it, the Hugging Face case cost its vendor ten days of incident response and a report of fifty pages, and the surveys above put the share of organisations with an agent incident in the past year at 65 percent. The control plane is not the expensive part of running agents. The agents are.

What the plane costsA ladder of the measured cost of each control from microseconds for a policy check to roughly fifteen to twenty percent of task compute for the whole containment layer. Deterministic policy check at the tool boundary 0.006 to 0.03 ms a decision Permission computation (MiniScope) 0.14 s a task Micro-VM sandbox under 125 ms to boot; under 5 MiB Small classifier (Prompt Guard 2, 22M) 19.3 ms a check Classifier cascade (gen 2) about 1% of compute; gen 1 was 23.7% Approval pause minutes, on the 14 to 18% of steps that mutate Second model as monitor may double inference (OpenAI, Dec 2023) Whole containment layer (author, Sep 2026) 15 to 20% of task compute; 4 months to build; 1 engineer Bar lengths are indicative, not to scale across units. The control plane is not the expensive part of running agents; the agents are.
Figure 19. Sources: aiAuthZ (2026); MiniScope (2026); Agache et al. (2020); Meta (29 April 2025); Anthropic (3 February 2025; 9 January 2026); Cuadron et al., SABER (26 November 2025); Shavit et al. (December 2023); the author’s agents-got-out essay (23 September 2026).

A worked example: a payments-operations agent at a bank

Take an agent that a bank’s operations team wants: it reads failed-payment queues, investigates each against the core system and the customer record, drafts the customer email, and where the fix is a retry or a refund within policy, executes it. It satisfies all three legs of the trifecta, untrusted content in the payment references and emails, private data in the customer record, and the ability to move money and write to a customer, so under the Rule of Two it may not run autonomously as one session. The control plane below is how it runs anyway, control by control, with the incident each one answers.

Identity. The agent is a directory principal sponsored by the operations manager, with a ninety-day review; per task the broker mints a token carrying the customer as subject and the agent as actor, scoped to that customer’s records and to the two operations the task class allows, and expiring in five minutes. The 2026 incident this answers is the domain-management token that could delete a volume. Sandbox and egress. Each task runs in a fresh micro-VM; the proxy resolves DNS and allows the core system, the customer record, the email gateway and nothing else; the metadata endpoint is blocked; no credential is in the VM. This answers the evaluation escapes and the server-side exfiltration. Injection boundary. The payment references and inbound emails are parsed by a quarantined model with no tools, which returns a structured record; the acting model never reads the raw text, and every value carries provenance. The policy, which the agent cannot read, forbids any refund whose amount or recipient came from untrusted text. This answers the secrets-table leak and the CI agents. Approval. Retries are reversible and run; refunds are irreversible and pause the whole run until an operator approves a canonical hash of the exact call in the tool handler; the email is sent only after the refund settles, by a handler that checks an idempotency key. This answers the loopjacked approvals and the nine-second deletion. Durable execution. The run is a journal; each refund has a compensation logged before it executes; a crash resumes from the last event. Classification. Every record carries its class from the August scheme; a 22-million-parameter guard screens inputs in 19 milliseconds; the one-percent human sample the RBI asks for is drawn from the journal. Observability. The proxy, the broker and the VM emit spans the agent cannot write; a monitor diffs them against the agent’s tool log in real time and pages on a mismatch; the journal is retained a year for the DPDP Rules and the AI Act. Budget and stop. A money budget per task and per day checked at the gateway with alert at 80 percent and stop at 100; a kill that revokes the token, drops the routes and severs the session, with every task the agent spawned in a register, drilled monthly against a target of sixty seconds. Regulatory hooks. The incident clock is six hours to the RBI’s portal, 72 to the Data Protection Board, and the AI Act’s fifteen days; the semi-annual red team and the half-yearly inventory are calendar entries.

The arithmetic of the plane for this agent is the arithmetic above: a micro-VM, two deterministic checks and a small classifier per task add well under a second and a few percent of compute; the approval pause adds minutes to the refund path only, which is 14 to 18 percent of steps by SABER’s count; the journal and the spans add storage. What the plane removes is the question the operations manager would otherwise be asked after an incident: whether the agent was ever able to do the thing it did.

A payments-operations agent inside the planeThe nine controls arranged around a payments agent, each with its concrete setting for the bank and the incident it answers. payments-operations agent reads failed-payment queues; investigates; drafts the email; retries or refunds within policy Identity sponsor; 90-day review; per-task token, customer as subject, 5 min answers: the 9-second deletion Sandbox and egress fresh micro-VM; proxy allows core, CRM, email gatewa y only answers: the evaluation escapes Injection boundary quarantined reader with no tools; provenance on ever y value answers: the secrets-table leak Approval gate refunds pause the run; canonical hash in the handler answers: loopjacking Durable journal compensation logged before each refund; resume from last event answers: the sibling leaks Classification class on every record; 22M guard in 19 ms; 1% human sample answers: RBI FREE-AI 21 Observability proxy, broker and VM spans; real-time diff; one-year retention answers: the spoofed logs Budget and stop money cap at the gateway; three-layer kill; 60 s dri ll answers: the run that did not stop Regulatory hooks 6 h RBI; 72 h DPDP; 15 days AI Act; semi-annual red team answers: the clocks Rule of Two all three legs needed; so the reader and the actor a re split answers: the trifecta under a second and a few percent of compute per task; minutes on the refund path only
Figure 20. The reference plane for one agent. Every control has a concrete setting and an incident it answers; the agent satisfies all three legs of the trifecta, so the reader and the actor are separated and the irreversible path waits for a person. Settings are the author’s; the incidents are those cited above.

The controls, by what they enforce

The table collects the nine controls with what each enforces, where it sits, what it costs, the incident it would have caught, and the clause that requires it.

ControlWhat it enforcesWhere it sitsMeasured costIncident it would have caughtClause
Agent as principal
identity, per-task credentials, least privilege
Who is acting, for whom, with what rightsDirectory and broker, outside the sandbox0.14 s a task (MiniScope); tokens live minutesPrivate-repo leak; secrets table; 9-second deletion; broker breachNCSC attribution; AI Act Art 26(11); FREE-AI 23
Sandbox and egress
micro-VM; proxy; DNS; metadata blocked
What the agent can reachHypervisor and proxy; two independent layersUnder 125 ms, under 5 MiB a VMEvery 2026 evaluation escape; server-side exfiltration; allow-listed-domain abuseNCSC sandbox; AI Act Art 26(1); RBI draft MRM
Approval gate
bound to the call, enforced in the handler
Whether an irreversible call proceedsTool handler or an external gateMinutes, on 14 to 18% of stepsCode-freeze deletion; inbox deletion; loopjacking; the police-form tipNCSC oversight; AI Act Art 14, 26(2); FREE-AI 21
Durable execution
journal; idempotency keys; compensations
That a retry, a pause or a crash does not duplicate or orphan an effectWorkflow engine or event logStorage; replay reads, does not recomputeSibling effects during pause; the board rebuilt after a wipeAI Act Art 12 logging
Injection boundary
Rule of Two; quarantined reader; provenance
That untrusted text informs but never authorisesPolicy engine the model cannot read0.03 ms a decision (aiAuthZ); utility cost a few pointsCalendar invites; browser sessions; CI secrets; ShadowLeakRBI draft MRM: injection controls
Classification and guardrails
class on every record; cascade; blocking mode
What class a record carries; what a call may containGateway, in blocking mode19 ms (22M guard); about 1% of compute (cascade)Planted commands (89% blocked); the fragmented campaignDPDP Rule 13; classify-first
Observability and evaluation
out-of-band spans; real-time reconciliation; pass^k
What actually happened, from evidence the agent did not writeProxy, broker, sandbox telemetry; a reconcilerTelemetry volume; a monitor model may double inferenceSpoofed tool logs; every detection lag from 11 min to 7 monthsNCSC logging; AI Act Art 26(6) six months; DPDP one year; FREE-AI 24
Budgets and the stop
money cap at the gateway; three-layer kill; register
How much a run may spend; that it can be endedGateway; identity, network and inference layersFree; a drill a monthThe run that did not stop; 10 days to the last checkpoint; the quadrupled billNCSC pull the plug; AI Act Art 14(4)(e); FREE-AI 19
Regulatory hooks
incident clocks; retention; red teams; inventory
That the record satisfies the strictest regulator servedCalendar and evidence fileProcessFour months from incident to disclosure in the earliest 2026 casesAI Act Art 73; DPDP Rule 7; RBI 6 hours
Table 1. The nine controls with what each enforces, where it sits, what it costs, the incident it would have caught, and the clause that requires it. Numbers are those cited in the text, with their sources.

What I would build, and in what order

These are the rules I apply when a team brings me an agent that is ready to run, ordered by how often the missing one turns out to be the problem.

Decide what the agent cannot read. That list is the control plane.

  1. Decide what the agent cannot read. List every rule the design relies on and sort it into requests, which live in the prompt, and controls, which live in the broker, the proxy, the handler or the gateway. If the sort leaves the critical rules on the request side, the design is not finished.
  2. Make the agent a principal first. A directory entry, an owner, a sponsor-succession rule, and per-task credentials minted by a broker with lifetimes in minutes. Compute the role from the task, not from the model’s request or the operator’s permissions.
  3. Enforce egress at two layers, including DNS, and inventory every channel. Package proxies, metadata endpoints, image fetches, link previews, public repositories and the vendor’s own API domain are all channels. Test from inside the sandbox that the environment matches what the prompt says.
  4. Gate only the irreversible, and bind the gate to the call. Read, reversible write, irreversible write. A canonical hash, checked in the handler, holding the whole run. Never a sentence in the system prompt.
  5. Journal the run and key every effect. Deterministic idempotency keys from stable identifiers; a compensation logged before each irreversible forward action; resume from the last event, not from the model’s memory.
  6. Apply the Rule of Two per session. Where a task needs all three legs, split it: a quarantined reader with no tools, a privileged actor that never sees raw text, provenance on every value.
  7. Classify everything; guard in a cascade; make the guard block. A cheap check on every call, an expensive one on what it flags; blocking mode chosen explicitly; a session-level monitor as well as a per-request one.
  8. Observe from outside the agent, and reconcile in real time. Spans from the proxy, the broker and the sandbox; a diff against the agent’s tool log; a page on mismatch within thirty minutes; retention set by the strictest regulator you serve.
  9. Read the defaults, then set the caps. Ten turns, 500 calls, none and none: three vendors, three answers. A money budget per task and per day at the gateway, with alert, degrade and stop.
  10. Drill the stop. Three layers and a register of children; detection to nothing in under sixty seconds; monthly, with the clock recorded, until it is boring.

The control is the pattern

Part 1 argued that a pattern is a decision at a seam of the loop, and part 2 that a topology is a decision about what crosses between loops. This part has argued that the control plane is the set of decisions the loop never gets to make, and that the past eighteen months are a catalogue of what happens when those decisions are left to it. None of the nine controls is new; identity, isolation, approval, durability, provenance, classification, telemetry, budgets and incident clocks are the ordinary furniture of a platform that runs other people’s code. What is new is that the code now reads its own instructions, and so the one architectural rule that matters is to keep the instructions and the controls on different sides of a boundary the code cannot cross. The laboratories learned it in July, the vendors productised it by October, and the regulators had written it down before either. Part 4 goes back inside the boundary and builds the harness by hand.

Agentic architecture patterns · You have read Part 3 of 4

Infographic of the Nightly harness as a graph around a loop: a 2 a.m. routine and a workflow script running 8 upgrades at once feed a Stop-hooked loop capped at 30 turns and $2 a pass, then a test gate, a durable approval interrupt and a pull request as the only write, with a $80 worst night. Below, a log ruler of the caps platforms ship, from 3 sub-agent levels and 8 Stop-hook blocks to 1,000 agents per workflow run and 4,096 items per parallel call, with the three settings that default to no limit.
Next in the series · Part 4 of 4 · 49 min readAgentic architecture patterns, part 4: harness engineering, hands-on, with the loops and graphs that run the model

The harness is now the product. A hands-on guide to loop engineering and graph engineering: what stops a loop, what a graph saves, and a complete harness built piece by piece with the numbers that bound it.

Continue to Part 4 →

Sources

  1. Anthropic. Investigating incidents in our cybersecurity evaluations. 30 July 2026; Investigating unintended model actions. 9 October 2026.
  2. OpenAI. An agent used DNS to reach an external chatbot. Report updated 25 September 2026; Cloud Security Alliance, When the Agent Finds the Gap, 30 September 2026.
  3. OpenAI. OpenAI – Hugging Face Incident Technical Report. 26 August 2026; Hugging Face, Anatomy of a Frontier Lab Agent Intrusion, 27 July 2026; METR and Redwood Research, Brief independent investigation, 26 August 2026.
  4. Anthropic. How we contain Claude across products. 25 May 2026; Making Claude Code more secure and autonomous with sandboxing. 20 October 2025; Simon Willison, Auto mode in Claude Code, 8 August 2026.
  5. Invariant Labs. GitHub MCP Exploited: Accessing private repositories via MCP. 26 May 2025; General Analysis, Supabase MCP can leak your entire SQL database, 8 July 2025; The Register, Replit response, 22 July 2025.
  6. Microsoft. CVE-2025-32711, M365 Copilot. 11 June 2025; Radware, ShadowLeak, 18 September 2025; Noma, ForcedLeak, 25 September 2025; SecurityWeek, SalesBleed, 24 September 2026.
  7. SecurityScorecard. Beyond the Hype: Moltbot’s Real Risk Is Exposed Infrastructure. 9 February 2026; TechCrunch, an OpenClaw agent ran amok on her inbox, 23 February 2026.
  8. BankInfoSecurity. AI Agent Wipes Startup’s Data in 9-Second API Call. 28 April 2026; Composio, May 2026 security incident; The Decoder, AWS AI coding tool deleted and recreated a customer-facing system, 20 February 2026.
  9. Microsoft Security. When AI infrastructure becomes the target. 26 August 2026; Storm-3168, 25 September 2026; AWS, bulletin 2026-124 (Loom), 2 October 2026; GitHub advisory GHSA-5mg7-485q-xm76 (LiteLLM), 25 March 2026.
  10. Unit 42. AgentCore “Agent God Mode”. 8 April 2026; Zenity Labs, AgentCorruption, 8 October 2026; Glow Labs, PixelLeak, 29 September 2026.
  11. Infosecurity Magazine (EMA for Cequence). Agents Without Guardrails. 1 September 2026; Cloud Security Alliance and Token Security, Autonomous but Not Controlled, 21 April 2026; Palo Alto Networks, 2026 Identity Security Landscape, May 2026; CyberArk, 2025 Identity Security Landscape, 23 April 2025.
  12. IETF. AI Identity Management System (draft-ietf-wimse-aims-00). 15 September 2026; SPIFFE, The SPIFFE Standard Roadmap, 18 August 2026; SPIRE server configuration reference.
  13. Okta. Okta brings first-class identity to AI agents with Agent SSO. 24 August 2026; Microsoft Learn, What’s new in Microsoft Entra Agent ID, updated 13 August 2026; HashiCorp, Vault agentic IAM is now generally available, 1 September 2026; Google Cloud, Agent Identity, documentation read October 2026.
  14. Zhu, J. et al. (UC Berkeley, IBM Research). MiniScope: Authorizing Agents with Least-Privilege Permissions. 11 December 2025; v2, 6 October 2026.
  15. Agache, A. et al. Firecracker: Lightweight Virtualization for Serverless Applications. NSDI 2020; gVisor, Running gVisor in Production at Scale in Ant, 2 December 2021; Cloudflare, Sandboxing AI agents, 100x faster, 24 March 2026.
  16. Anthropic. Managed Agents: environments, session budgets, permission policies and review and monitor agent sessions; Agent SDK Python reference; Task budgets. Documentation read 16 October 2026.
  17. OpenAI. Codex: agent approvals and security; Agents SDK: guardrails and tracing; run_config.py. Read 16 October 2026; Google, ADK RunConfig.
  18. NVIDIA. NVIDIA Launches Open Agent Safety Platform. 28 September 2026.
  19. OpenAI. Operator System Card. 23 January 2025 (section 4.7 updated 11 March 2025); Anthropic, computer use tool: security considerations; Model Context Protocol, Specification 2025-06-18: Tools, 18 June 2025.
  20. Arun Kumar, A. Loopjacking. 17 September 2026; Stop Means Stop. 15 July 2026 (v3, 8 August 2026); Jiang, Quinzan and Bhatt, GateArena, NeurIPS 2026 workshop (abstract); Embrace The Red, Breaking Claude Code Opus 5 and Auto Mode, 26 August 2026.
  21. LangChain. LangGraph: interrupts and persistence. Read 16 October 2026; UK AISI, Inspect: tool approval.
  22. Temporal. Understanding Temporal; Temporal Agent Harness, 20 August 2026; Restate, Durable Agents; Anthropic, Scaling Managed Agents, 8 April 2026; Chang and Geng, SagaLLM, PVLDB 2025.
  23. Thinking Machines Lab. Defeating Nondeterminism in LLM Inference. 10 September 2025; Yagubyan, How Consistent Are LLM Agents?, 23 April 2026; Lee, Capable but Unreliable, 22 February 2026; AgentRewind, 14 August 2026.
  24. Willison, S. The lethal trifecta for AI agents. 16 June 2025; Claude Cowork Exfiltrates Files, 14 January 2026; Meta AI, Agents Rule of Two, 31 October 2025.
  25. Debenedetti, E. et al. AgentDojo. NeurIPS 2024; Defeating Prompt Injections by Design (CaMeL). 24 March 2025; Beurer-Kellner, L. et al., Design Patterns for Securing LLM Agents against Prompt Injections, June 2025; NIST, Strengthening AI Agent Hijacking Evaluations, 17 January 2025; Evtimov et al., WASP, April 2025.
  26. Shi, T. et al. (UC Berkeley). Progent: Securing AI Agents with Privilege Control. 16 April 2025 (v3, 14 May 2026); AIRGuard, 27 May 2026; Kodathala, aiAuthZ, 6 July 2026; Wang, Poskitt and Sun, AgentSpec, ICSE 2026; Cuadron et al., SABER, 26 November 2025.
  27. Google. AI threats in the wild: the current state of prompt injections on the web. 23 April 2026; The Register, Indirect prompt injection starts turning up in webpage headers, 15 October 2026.
  28. Anthropic. Constitutional Classifiers. 3 February 2025; Next-generation Constitutional Classifiers, 9 January 2026; Meta, Llama Prompt Guard 2 model card, 29 April 2025; NVIDIA, Measuring the Effectiveness and Performance of AI Guardrails, 3 March 2025; OpenAI, Guardrails documentation; Kumar et al., No Free Lunch With Guardrails, April 2025; Portkey and LiteLLM documentation, read October 2026.
  29. Anthropic. Disrupting the first reported AI-orchestrated cyber espionage campaign. 13 November 2025.
  30. OpenTelemetry. Semantic Conventions for Generative AI. Read 16 October 2026; Anthropic, Agent observability on the Claude Platform, 14 October 2026; Claude Code: monitoring usage; Dong, Lu and Zhu, AgentOps, November 2024; OneUptime, Your AI Workloads Are About to Blow Up Your Observability Bill, 1 April 2026.
  31. METR. Frontier Risk Report (February to March 2026). 19 May 2026; Shavit, Y. et al. (OpenAI), Practices for Governing Agentic AI Systems, December 2023.
  32. NCSC. Managing the cyber risk of agentic AI. 20 August 2026; EU Artificial Intelligence Act, Article 73 and implementation timeline; Reserve Bank of India, FREE-AI committee report, 13 August 2025; DPDP Rules, G.S.R. 846(E), 13 November 2025.
  33. Yao, S. et al. τ-bench. 17 June 2024; UK AISI, Incident report: unsanctioned agent behaviour during cyber testing, 4 August 2026; OWASP GenAI Security Project, Exploit Roundup Q3 2026, 8 October 2026.
Ashish Kumar

Ashish KumarHead of Platforms, AI & Data at Tata Group. Previously applied AI at Ola Krutrim, data science at Salesken, and conversational AI at Reliance Jio Haptik and Active.Ai. Full biography · LinkedIn