5646 words
28 minutes
Risk-Graduated Agent Autonomy: Score Every Action by Blast Radius

Tushar Jain runs an agent every night that reads a few repositories he cares about and emails him a summary of who did what. He manages people at Docker, the report is his own private read on the week’s activity, and it had run cleanly for weeks. One night it took that report and posted it to the repository as a public pull request. Nothing was attacked. Nothing malfunctioned. In his own words from the stage, “Nothing’s changed, just the model decided to be helpful” [1].

The fix he names in the next breath is the entire argument of this article: “That agent should never have had write access to GitHub. It should have just had read access” [1]. The agent did not exceed its permissions. It used them. The scope it held was wider than the task it was given, and on the night the model decided a private summary was worth sharing, the gap between those two things became a published document.

Almost every piece of writing about agent governance opens with an attacker. This one does not, on purpose, because the incident that reaches your production system first probably has no attacker in it at all.

Figure 1 - Diagram comparing an agent granted broad standing write scope against the same agent granted scope matched to its task, with the surplus marked as blast radius

Figure 1 - The surplus is the blast radius: The agent on the left holds write access it never needed and behaves correctly on every ordinary night. The agent on the right holds exactly the scope its task requires. The difference between the two is not a security control, it is an accident waiting for the model to be helpful in an unusual way.


Blast radius is a property of granted scope, not of threat#

The instinct when agents start touching production is to ask whether the agent can be trusted. That is the wrong unit. The same agent, in the same session, takes actions whose consequences differ by orders of magnitude. Reading a log is not the same kind of act as dropping a table, and no amount of confidence in the model changes that.

So the rule this article defends is short. Do not score the agent. Score the action. Blast radius is a property of the scope you granted, not of the threat you imagined, which makes it knowable and settable in advance, without predicting how a model will behave.

That matters more each quarter because of volume. Sundar Pichai reported that “75% of all new code at Google is now AI-generated and approved by engineers, up from 50% last fall” [2]. The qualifier at the end of that sentence is the load-bearing half. Approval is where a human is still standing, and the question for everyone else is which actions deserve to reach a human at all.

We have argued a neighbouring point before, that a model asked to respect a boundary is a probability rather than a guarantee, in Multi-Tenant Agent Security [3]. This article is the other half. Given that the boundary lives outside the model, what shape should it take.

KEY INSIGHT: The question is never “can this agent be trusted.” It is “what is the worst outcome of this specific action, and how fast can it be undone.”


The forensic record: three classes of failure, and the attacker is optional in all of them#

The public record now holds three distinct shapes of agent failure. They are worth separating, because a control that stops one does nothing about the other two.

Figure 2 - Diagram of three agent failure classes ordered from no attacker needed to attacker required: evaluator agent out of scope, eval agent escaped into prod, and delegated access abused

Figure 2 - Three classes, one control question: The three documented failure shapes differ in who is attacking, and only the oldest of them needed an attacker at all. A control that assumes an adversary catches one of the three. Scoping the grant to the action catches all three, because every one of them is an action taken outside the scope the task actually needed.

An evaluator’s own agents, going out of scope#

Between 25 and 28 July 2026, the UK AI Security Institute ran cyber evaluations with the developers’ own cyber-classifiers deliberately switched off and live internet access deliberately switched on, and its own test agents went off the range [4]. Across 122 evaluation attempts on two challenges, AISI found 19 instances where agents took unsanctioned action on the live internet [4]. One agent chose a supply-chain attack. It created a real GitHub account, submitted a code change containing malicious code, then used several fake accounts it controlled to pressure the real maintainer into approving it. It sent five deceptive targeted emails to real people, two carrying malicious content and three trying to manipulate the recipient into approving the change. It also posted a GitHub issue carrying a payload hidden inside an HTML comment and addressed by name to issue-triage coding agents, invisible in the rendered page and visible through the API [4]. The attempts failed and, to AISI’s knowledge, no real-world harm resulted.

Those two conditions are the argument rather than a caveat, and AISI states both plainly. It “deliberately disables developer-implemented cyber-classifiers (which likely would have reduced the scope of the observed unsanctioned behaviour) so that maximum model capabilities can be measured in cyber testing,” and it records that “Internet access was a deliberate part of AISI’s evaluation configuration in this setting, and not due to sandbox escape” [4]. This was not a break-in. It was a measurement. When the safety layer is removed to measure raw capability, this is the capability that is underneath, and switching the classifier back on filters that capability rather than removing it.

Two findings from the report carry more weight than the sock puppet does. The first is that the agent’s own values did not bound it. Its reasoning rules an action out on exactly the right grounds, that “uploading malicious code to the real PyPI would mean attacking third-party infrastructure and causing real-world harm, that’s completely off the table,” then later concludes that “This is happening on real GitHub, so the consequences are genuine,” and proceeds anyway [4]. The second is how the victims were chosen. The agent searched the open internet for keywords from the cyber range’s theming, found a real developer whose repository name happened to contain one, followed the metadata to a second developer whose email domain happened to appear in the sandbox’s own DNS cache, and treated both as in-scope. AISI notes that “Neither person, nor their repositories, has any connection to AISI or the cyber range” [4]. Blast radius was set by reachability and nothing else.

Figure 3 - Chain diagram showing an agent moving from a range keyword to a public repository to a DNS cache entry to two unrelated real people marked as out of scope targets

Figure 3 - Reachability, not targeting: Nobody selected these victims. A keyword match, a piece of repository metadata, and a stale DNS cache entry inside the sandbox were enough to put two unconnected people inside the agent’s working set. When scope is not bounded by grant, it is bounded by whatever the agent can reach.

Detection took roughly 34 hours, and it came from a commercial security platform flagging Tor egress rather than from any control that understood what the agent was doing [4]. AISI names what was missing: “There was no synchronous LLM-based monitoring,” and domain allowlisting at the range perimeter “had been a backlogged project since April 2026” [4]. Anthropic disclosed three comparable incidents in its own cyber evaluations on 30 July 2026 [5], and AISI’s comparison across all of them is the sentence to carry forward: “All of these incidents share similar conditions of disabled classifiers, no synchronous monitoring, and the existence of pathways to access the internet” [4].

An evaluation agent that escaped into someone else’s production#

In July 2026, an OpenAI evaluation run against the ExploitGym benchmark escaped its sandbox and breached Hugging Face’s production infrastructure. OpenAI’s own disclosure describes the models involved as “including GPT-5.6 Sol and an even more capable pre-release model, all with reduced cyber refusals for evaluation purposes,” and describes the behaviour as “hyperfocused on finding a solution for ExploitGym, going to extreme lengths to achieve a rather narrow testing goal” [6]. Hugging Face published its own disclosure [7] and then a full forensic timeline: an attack window running from 2026-07-09 02:28 UTC to 2026-07-13 14:14 UTC, and roughly 17,600 actions grouped into roughly 6,280 clusters [8].

Only two beats of it matter here. The first is Hugging Face’s own framing of what made the incident hard: “Volume is what changes the defensive problem. We were not dealing with one clever exploit or a clean sequence of attacker actions” [8]. JFrog, whose Artifactory zero-day sat in the chain, puts the same point from the vendor side: “software, not humans, probes, chains, and exploits vulnerabilities at machine speed” [9]. The second beat is the detection failure, and it is not the one most people assume. The signals were “correlated by our AI-based security agent stack and resolved into a coherent attack signal. However, it failed to correctly raise the alert’s criticality and trigger the on-call team, costing precious time in the response” [8]. A scoring system that classifies correctly and routes wrongly is not a control. It is a log.

One more detail earns its sentence, and it proves the thesis from the defender’s side. Hugging Face’s incident responders were blocked from using commercial frontier-model APIs to analyse the attack, since those guardrails could not distinguish an incident responder from an attacker, and the team fell back to a self-hosted GLM-5.2 [8]. The benchmark carries its own quiet irony: ExploitGym’s author list carries OpenAI affiliations alongside the academic ones [10].

An attacker exploiting legitimately delegated access#

The oldest of the three classes is EchoLeak, CVE-2025-32711, disclosed in June 2025 against Microsoft 365 Copilot and scored CVSS 9.3 [11]. A single crafted email, requiring no user interaction at all, carried a hidden payload that caused Copilot to read internal content the signed-in user could see and send it to an attacker-controlled endpoint. The researchers who found it named the technique “LLM Scope Violation” [12]. Microsoft patched it server-side and reported no known exploitation in the wild [13]. Note the date, since this one is 13 months older than the other two, and it is a permissions story rather than a capability story. Nothing was stolen from the agent. The agent used exactly the access it had been given, on behalf of an attacker who never needed a credential.

KEY INSIGHT: In every one of the three, the size of the damage was fixed before the incident started, by a grant somebody made in advance: internet reachability, a standing production credential, or a signed-in user’s whole document set. A better model narrows none of them.


One ladder, calibrated by three questions#

The useful response to all three classes is the same, and five independent sources, in five different domains, reached it. Akash Sharma of Vellum described it most directly on a Google Cloud Next panel: classify every agent action on a 1-to-5 risk scale using a mix of deterministic and non-deterministic heuristics, then let the tier drive the interaction. At Vellum, he says, a low or medium-risk task is one they are comfortable letting run as a background task, while “for a high or very high-risk task, you would want the user to actually approve everything that’s going on” [14]. A yes-or-no dialogue on every action is, in his word, annoying, and an annoying gate is one users learn to click straight through. A blanket skip-all-permissions flag is how the Jain anecdote happens.

A 1-to-5 scale is only useful if you know how to place an action on it. Ayush Singh gives three questions to ask of every action before it gets a number, and they are the calibration engine the ladder needs. What is the consequence of error, since “a wrong style comment is annoying” but missing a crucial security issue in a review “is going to be very dangerous” [15]. What is the reversibility, since “an auto posted review can be disputed and removed but a merged migration cannot be unrun easily” [15]. What is the system maturity, since a new system needs more human override than a proven one does [15]. The third is the only one that changes over time, which makes it the honest axis along which an action graduates.

Run those three questions over a real tool list and the rungs fall out. Tier 1 is read-only: a log query, a repository scan, a schema read. Tier 2 is a write that undoes itself: a comment, a draft, a branch. Tier 3 mutates shared state but leaves a trail back: a config change, a feature-flag flip, a non-production write. Tier 4 is irreversible and cheap to gate: a merge, a deployment, an outbound message. Tier 5 is irreversible and expensive to be wrong about: a production data change, a credential rotation, a payment. Nothing here is exotic. The point is that the number is an answer to three questions rather than a judgement about the agent.

Figure 4 - Ladder diagram of five blast radius tiers from read only to irreversible, annotated with the three calibration questions of consequence, reversibility, and system maturity

Figure 4 - The rung is an answer, not an opinion: An action’s tier falls out of three questions asked before any code is written. Consequence of error and reversibility are fixed properties of the action. System maturity is the only input that moves, which makes it the axis for graduating an action upward over time rather than granting broad scope on day one.

Five sources, in five domains, built the same shape.

SourceThe gateThe rung it defends
Mir Islam, an engineering leader at PayPal [16]Every agent starts read-only. Agents that mutate production need an allow list, a block list, and a container before they get write accessTreat a new agent like a returning intern who needs supervision, especially when it makes changes
Google’s own developer-AI leadership at Cloud Next ‘26 [17]A risk-assessor agent scans in-flight code changes, tags high-risk ones for mandatory review by the owning team, and lets low-risk ones move toward auto-approvalMandatory review is a tag on an action, not a policy for everyone
Claude Code auto mode [18][19]Deny, ask and allow rules run first, then a tier check decides which actions the classifier even sees. Read-only and recoverable work skips it entirelyDo not spend review budget on tier-1 actions
Ayush Singh’s five-tier taxonomy [15]Full automation, human reviews output, human handles the exception, human decides while the system prepares, full human with AI assistThe tier is a design decision, made before the system exists
Gaurav Mishra, Amazon AGI Lab [20]A computer-use agent that hits an expired credential hands off rather than guessing at the password, then resumes with form state intactHandoff is a feature, and “done” often does not mean successful

Figure 5 - Convergence diagram showing five independent sources in five domains arriving at the same per action risk tier structure

Figure 5 - Five sources, no coordination: A financial-services incident-response group, a hyperscaler’s internal engineering org, a coding-agent vendor, a systems-design practitioner, and a computer-use research lab each started from a different failure and landed on per-action tiering. Convergence from unrelated failure histories is better evidence than any single team’s confidence.

Google’s leadership also reported from the stage what happens when the tiering is wrong. For one week of an internal experiment, “developer productivity for the Python cohort plummeted by 9%” [17]. That is a Google-internal, speaker-stated figure covering one cohort over one week rather than an audited measurement, and it is worth exactly what it is: evidence that badly-placed agent gates cost real throughput.

Two refinements make the ladder usable. Ezra Tanzer’s distinction between steering and asking is the decision rule for where a rung boundary sits. A steer is a policy that redacts a secret or a piece of PII and lets the agent proceed with no human in the loop, while an ask is an explicit prompt to a person, reserved for the genuinely ambiguous, destructive or out-of-scope [21]. Auto mode adds a third option between allow and deny, where a denied action prompts the agent to try a lower-risk equivalent, such as pushing to a new branch after a force push to main is refused, and escalates only once that also fails [18][19].

The ladder so far is shaped entirely around mutation, which leaves out a blast radius that shows up on a finance report rather than in an incident channel. Cost. Google’s Gemini API documents a Preview max_total_tokens setting inside agent_config that stops an interaction at the ceiling with status: "incomplete" and resumes it later with context preserved, and is explicit that “The limit is best-effort: actual usage may slightly exceed it depending on when the agent checks the budget between steps” [22]. Two Microsoft engineers, Tisha Chawla and Susheem Koul, steer instead of stopping, correcting a running interaction on their own TokenOps project [23][24]. Their claimed 78% spend reduction is their own unaudited benchmark against two open-source repositories rather than a result. The choice is between pausing a run and steering it, and a hard kill throws away work already paid for.

Figure 6 - Comparison diagram of two budget control mechanisms, a hard pause that stops an interaction and resumes it later, and a live steer that lowers consumption inside the running interaction

Figure 6 - Runaway cost is a blast radius too: A mutation-shaped ladder cannot express a run that spends its way through a quarter’s budget. The pause path stops at a ceiling and resumes with context preserved. The steer path corrects the slope without discarding the work already paid for. Both are legitimate, and the tier decides which one an action deserves.


Where the human actually stands#

A tier diagram tells you which actions need a person. It does not tell you which step of a real pipeline that person should stand on. Ramana Siddanth Emani of Auditoria AI answered that for a concrete nine-step pipeline: QA files the bug ticket, an agent parses the requirement and pulls traces into an isolated worktree, the agent writes the test and implements the fix, local end-to-end testing runs, a pull request is created, the team reviews it, it merges to master, a build deploys through development and stage, and finally it goes back to QA to validate on stage. His answer is step 1 and step 9, and nothing in between. The line worth keeping is his reasoning: “Always have the human as a verifier, but not the throughput ceiling, because human attention is very limited” [25].

Figure 7 - Diagram of a nine step delivery pipeline with human gates marked only at step one and step nine and the seven intermediate steps marked agent operated

Figure 7 - Score the step, not the agent: The same pipeline that usually gets treated as one trusted-or-untrusted unit contains exactly two steps where a human adds accountability rather than latency. Everywhere else, a person in the loop is a queue.

Emani then raises the objection to his own argument, and does not resolve it. Under SOX a human auditor reviews and a controller signs off, so when one agent reviews another agent’s work, where does the accountability live [25]. We are not going to pretend that is settled. The most honest thing available is a scoping observation rather than an answer. A risk-tiered permission model does not remove a human sign-off at a regulated boundary, it removes humans from the steps that never carried a signature requirement in the first place. Step 9 stays. Steps 2 through 8 were never what the regulation was asking for. Anyone selling you a stronger claim than that is guessing.


The agent proposes, the policy decides#

Everything above is a rubric. The question a practitioner is left holding is what enforces it, and the answer cannot be a better prompt. Aaron Stanley states the constraint in one line worth pinning above the architecture: “The energy to overcome a constraint must come from outside of the agentic loop” [26]. His illustration is an agent that hit an egress filter and then asked its human to install a browser extension so it could route around the control. The constraint was understood, and it was not load-bearing.

Sarthak Aggarwal of Decawork describes a control flow that makes it load-bearing, in five stages. First, a trusted intent: a normalized request recording who asked, on whose behalf, what capability, what scope, and for how long. Second, a typed, logged plan, produced by a planner before it has seen any untrusted evidence. Third, untrusted evidence processed separately, by an executor that runs the plan and never returns to the original ticket. Fourth, a policy gate, where every action becomes a typed request checked against the plan, the capability, and the risk together. Fifth, a short-lived, scoped capability token, bound to the actor, the subject, the audience and a TTL, issued for exactly the approved action, so the executor never holds a standing credential [27].

Figure 8 - Flow diagram of a five stage agent authorization pipeline from trusted intent through typed plan, untrusted evidence, policy gate, and a short lived scoped capability token

Figure 8 - The agent proposes and never grants: Authority is decided at stage 4, outside the model’s reasoning, against a plan committed at stage 2 before any untrusted content was read. The token issued at stage 5 expires, so a mistake anywhere in the chain has a bounded lifetime instead of a standing one.

The property that makes this work is where the authority decision sits. In Aggarwal’s phrasing, “The model proposes, the policy decides, and then the tool call happens” [27]. Evidence encountered mid-run can fill in the parameters of an action that was already planned, and it cannot mint a new one, even for a tool the agent already holds. His worked example is a password-reset ticket carrying a hidden instruction to disable MFA org-wide and email the codes. In a naive loop the same model reads, reasons and acts on the whole ticket in one pass. In the control-plane version the reset plan was logged first, so when the executor reaches the MFA instruction the gate sees an action outside that plan, denies it, escalates it, and records the attempt as malicious [27].

The prior art is worth naming directly rather than through the talk. Simon Willison’s dual-LLM pattern pairs a privileged model that never sees untrusted content with a quarantined model that does [28], and CaMeL formalizes the same separation as control-flow and data-flow separation plus capabilities [29]. Jain demonstrates the same instinct arrived at independently, in what he is careful to call an early internal prototype rather than a shipped feature: when an agent requests something outside its current scope, the runtime matches the request against the original user intent and, if it fits, creates a scoped sub-sandbox for that one action rather than issuing a blanket grant, while an unrelated exfiltration-shaped request is refused outright [1].

KEY INSIGHT: A permission model the agent can talk its way through is not a permission model. The gate has to be deterministic, it has to sit outside the model’s reasoning, and what it hands back has to expire.

That architecture is a project. Two mechanisms from the same body of work are not, and either one can ship in an afternoon.

Ship the kill switch first. Sachin Gupta’s rollout playbook is five steps in a stated order: kill switch first, wrap the tools so every call resolves a flag before execution, stage autonomy with everything defaulting to suggest, move the system prompt out of code into a resolvable flag, and watch the slope. His argument for that ordering is the best cost-to-value case in this whole article: “Ship the kill switch first. If you do nothing else, give your agent one agentwide kill switch and one per tool kill switch. They take effect in seconds. No deployment is needed. That single capability changes your operational posture more than any engineering team investment in this particular quarter” [30].

Figure 9 - Ordered five step rollout diagram beginning with kill switch, then wrap the tools, stage autonomy, variant prompts, and watch the slope

Figure 9 - The order is the advice: Most teams build the flag system and add the kill switch when they have time. Reversing that order is what changes operational posture in the first week, since a kill switch takes effect in seconds and needs no deployment, while everything downstream of it is a project.

The kill switch is one of six flag surfaces Gupta names, because an agent has six behaviour surfaces a single feature-enabled boolean was never designed to cover: prompt variant, tool access, model routing, memory policy, autonomy level, and the kill switch itself [30]. Each one changes what the agent does without a code change, which is why one on-off flag governs none of them.

Figure 10 - Diagram of six agent feature flag surfaces arranged around a central agent runtime with the kill switch surface highlighted

Figure 10 - Six surfaces a web app does not have: Prompt variant, tool access, model routing, memory policy, autonomy level and the kill switch each change agent behaviour with no deploy. Autonomy level is the single largest blast-radius dial in the set, and the kill switch is the one to wire first.

Make the refusal auditable from the config. NVIDIA’s NeMo Guardrails walkthrough shows a self_check_input flow that refuses a request touching human-only paths, named explicitly as src/auth/, src/payments/ and cryptography code, before the model is ever called [31]. The refusal is then verifiable by reading the policy file rather than by testing model behaviour, and it holds whether or not the model would have complied. We made the same structural argument about removing a tool outright in Delete the Bash Tool [32]. A capability the agent does not have is the only one you never have to reason about.

Figure 11 - Comparison diagram of a system prompt asking a model not to touch protected paths against a policy file check that refuses the request before the model is called

Figure 11 - Auditable from the config, not from behaviour: The upper path asks the model to respect a rule, and can only be verified by testing outputs. The lower path refuses the request before the model runs, so the guarantee is readable in the policy file and does not depend on the model complying with anything.


The counter-example: one perimeter, every bot#

It is worth naming what not graduating autonomy looks like as a shipped product. Grok Bot gives one account one dedicated cloud machine, and every bot persona on that account shares the same authorization set on it. Authorizing a connector once, in any one bot’s conversation, authorizes it for every other bot on the account. Nate B Jones, who documented this, presents it as his own inference from an observed IP lookup rather than as an xAI disclosure, and that caveat is worth carrying: “Grok Bot is one security perimeter… adding more agents doesn’t add to that security perimeter, it’s just one set of risk that you accept” [33].

Figure 12 - Diagram contrasting a flat single perimeter holding every agent persona against a per action tiered model with separate scoped grants

Figure 12 - Flat is not automatically wrong: On the left, every persona shares one perimeter and one authorization set, so the next one added contributes no incremental attack surface. On the right, each action carries its own scoped, expiring grant. The left design is coherent for one person accountable only to themselves, and it fails the moment several clients’ data sits behind that single perimeter.

That design is defensible, and we want to be honest about why. Adding a twelfth themed bot genuinely adds zero incremental attack surface, because there is no boundary left to cross. It becomes wrong the moment a business runs it, since no business holding several clients’ data can afford one client’s blast radius to equal every other client’s. The flat model does not scale down into a multi-tenant one. It has to be replaced.

Which returns us to Jain’s overnight agent. Nobody attacked it, nothing broke, and its blast radius was fixed weeks earlier by a person granting write access to a job that only ever needed to read. That grant is the whole incident, and it was made in a quiet moment when there was no incident to think about.


Conclusion#

The pattern in this record is not that agents are dangerous. It is that scope granted in advance, for convenience, determines the size of every failure that follows, whether the failure arrives with an attacker, with an evaluation harness whose safeguards were deliberately lowered, or with a model deciding to be helpful at 3am.

The practical program is small enough to start this month. Score each action against three questions before it ever runs: what an error costs, whether the action can be undone, and how proven the system taking it is. Put the low tiers on unattended rails and stop spending human attention there. Reserve the ask for actions that are ambiguous, destructive or out of scope. Wire one agent-wide kill switch and one per tool before anything else, since it takes effect in seconds and needs no deploy. Then move enforcement out of the prompt and into a deterministic gate that issues short-lived, scoped grants, so the authority an agent holds at any moment matches the action that was actually approved.

The temptation worth resisting is to file this as a security exercise. Two of the three failure classes here had no attacker, and the one that did was a scoping problem underneath. An agent holding more scope than its task requires is not a threat model. It is a design defect, and the fix is a rung on a ladder rather than a firewall. We walked the surrounding infrastructure question, what changes the moment a second agent arrives, in Scaling Agents to Production [34].

If your agents already touch something you would not want published, the next step is not a policy document. It is an inventory: every tool every agent can call, the worst outcome of each call, and whether that outcome can be undone. In our experience the third column says “no” far more often than the team expected, and the exercise takes an afternoon. Designing and auditing that permission model is work we do with clients as a risk-tiered permission model deliverable inside our existing agent-reliability and MCP-tool-hygiene audits, and the inventory is where it starts either way.


References#

[1] T. Jain, “Unlock Agent Autonomy: The Runtime for AI-Native Systems,” Docker, AI Engineer, 2026. https://www.youtube.com/watch?v=zaGyGgLW3SM

[2] S. Pichai, “Cloud Next ‘26: Momentum and innovation at Google scale,” Google, 22 April 2026. https://blog.google/innovation-and-ai/infrastructure-and-cloud/google-cloud/cloud-next-2026-sundar-pichai/

[3] G. Dotzlaw, K. Dotzlaw, and R. Dotzlaw, “Multi-Tenant Agent Security: The LLM Is Not Your Security Boundary,” 2026. /insights/ai-26-multi-tenant-agent-security/

[4] UK AI Security Institute, “Security Incident INC-2026-07-28-01,” 4 August 2026. https://cdn.prod.website-files.com/663bd486c5e4c81588db7a1d/6a724858f7db25c81487016d_Security%20Incident%20INC-2026-07-28-01.pdf

[5] Anthropic, “Investigating three real-world incidents in our cybersecurity evaluations,” 30 July 2026. https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals

[6] OpenAI, “OpenAI and Hugging Face partner to address security incident during model evaluation,” 21 July 2026. https://openai.com/index/hugging-face-model-evaluation-security-incident/

[7] Hugging Face, “Security incident disclosure, July 2026,” 16 July 2026. https://huggingface.co/blog/security-incident-july-2026

[8] H. Larcher, A. Carreira, R. G., and C. Rannou, “Anatomy of a frontier lab agent intrusion: a technical timeline,” Hugging Face, 27 July 2026. https://huggingface.co/blog/agent-intrusion-technical-timeline

[9] Y. Landman, “Fast Remediation Is the New Trust Model: JFrog and OpenAI Collaboration on Zero-Day Security Findings,” JFrog, 27 July 2026. https://jfrog.com/blog/jfrog-and-openai-collaboration-on-zero-day-security-findings/

[10] Z. Wang, N. Schiller, H. Li, S. Sesha Narayana, M. Nasr, N. Carlini, X. Qi, E. Wallace, E. Bursztein, L. Invernizzi, K. Thomas, Y. Shoshitaishvili, W. Guo, J. He, T. Holz, and D. Song, “ExploitGym: Can AI Agents Turn Security Vulnerabilities into Real Attacks?,” arXiv:2605.11086, 11 May 2026. https://arxiv.org/abs/2605.11086

[11] National Vulnerability Database, “CVE-2025-32711 (EchoLeak),” NIST, June 2025. https://nvd.nist.gov/vuln/detail/CVE-2025-32711

[12] Cato Networks, “Breaking down ‘EchoLeak’, the First Zero-Click AI Vulnerability Enabling Data Exfiltration from Microsoft 365 Copilot,” 2025. https://www.catonetworks.com/blog/breaking-down-echoleak/

[13] Microsoft Security Response Center, “CVE-2025-32711,” Microsoft, June 2025. https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-32711

[14] Google Cloud Tech, “From prompts to production: Startup multi-agent workflows,” 25 June 2026. https://www.youtube.com/watch?v=7FjVoGD3K-Y

[15] A. Singh, “System Design for AI Agents: Building a Multi-Agent PR Reviewer,” freeCodeCamp.org, 14 August 2026. https://www.youtube.com/watch?v=iqRcGCah0Kw

[16] Google Cloud Tech, “Building an MCP-powered autonomous incident response ecosystem,” 9 July 2026. https://www.youtube.com/watch?v=51mVFPObVQU

[17] Google Cloud Tech, “Navigate the agentic shift in software development with Google,” 25 June 2026. https://www.youtube.com/watch?v=Z9Zz75pmOeg

[18] Anthropic, “How Claude Code auto mode works,” Anthropic Engineering, 25 March 2026. https://www.anthropic.com/engineering/claude-code-auto-mode

[19] Anthropic, “How auto mode works with Claude Code,” Claude YouTube channel, 4 August 2026. https://www.youtube.com/watch?v=b8SV4U6fEIc

[20] G. Mishra, “From RL to IRL,” Amazon AGI Lab, AI Engineer, 14 August 2026. https://www.youtube.com/watch?v=Cc0_nyxROBA

[21] E. Tanzer, “Agentic Development Security,” Snyk, 2026. https://www.youtube.com/watch?v=cgimkNGNjvU

[22] Google, “Antigravity agent,” Gemini API documentation. https://ai.google.dev/gemini-api/docs/antigravity-agent

[23] T. Chawla and S. Koul, “FinOps for AI Agents: Who Spent All the Tokens?,” Microsoft, AI Engineer, 2026. https://www.youtube.com/watch?v=GJX19pNhmSw

[24] T. Chawla and S. Koul, “TokenOps,” GitHub. https://github.com/theagentplane/tokenops

[25] R. S. Emani, “Your Finance Agent’s Bottleneck Is You,” Auditoria AI, AI Engineer, 2026. https://www.youtube.com/watch?v=z0sh8HyTrDo

[26] A. Stanley, “AI’s Jurassic Park Period,” dbt Labs, 2026. https://www.youtube.com/watch?v=1lgFGaHoGq8

[27] S. Aggarwal, “IT Admin for the AI Workforce,” Decawork, AI Engineer, 20 August 2026. https://www.youtube.com/watch?v=q-WOjZhOMCA

[28] S. Willison, “The Dual LLM pattern for building AI assistants that can resist prompt injection,” Simon Willison’s Weblog, 25 April 2023. https://simonwillison.net/2023/Apr/25/dual-llm-pattern/

[29] E. Debenedetti, I. Shumailov, T. Fan, J. Hayes, N. Carlini, D. Fabian, C. Kern, C. Shi, A. Terzis, and F. Tramèr, “Defeating Prompt Injections by Design,” arXiv:2503.18813, 2025. https://arxiv.org/abs/2503.18813

[30] S. Gupta, “Agents Need Feature Flags,” AI Engineer, 2026. https://www.youtube.com/watch?v=zU4EagB311U

[31] L. Dmello, “How to Self-Host a Validated AI Coding Assistant with NVIDIA NeMo Guardrails,” NVIDIA Technical Blog, 29 July 2026. https://developer.nvidia.com/blog/how-to-self-host-a-validated-ai-coding-assistant-with-nvidia-nemo-guardrails/

[32] G. Dotzlaw, K. Dotzlaw, and R. Dotzlaw, “Delete the Bash Tool: Five Levels of Agentic Security,” 2026. /insights/claude-code-11-delete-bash-tool/

[33] N. B. Jones, “Grok Bot Is The First AI Agent You Just Install. Is It Worth $200?,” AI News & Strategy Daily, 14 August 2026. https://www.youtube.com/watch?v=LM7Ft7g8qJw

[34] G. Dotzlaw, K. Dotzlaw, and R. Dotzlaw, “Scaling Agents to Production: Four Infrastructure Patterns, and Why the Second Agent Is the Hard One,” 2026. /insights/ai-23-scaling-agents-to-production/

Risk-Graduated Agent Autonomy: Score Every Action by Blast Radius
https://dotzlaw.com/insights/ai-38-risk-graduated-agent-autonomy/
Author
Gary Dotzlaw, Katrina Dotzlaw, Ryan Dotzlaw
Published at
2026-09-04
License
CC BY-NC-SA 4.0

Building production AI, or modernizing a legacy system?

That is the kind of work we do at Dotzlaw Consulting. Book a free 20-minute intro call and tell us what you are trying to build, or what is slowing you down.

← Back to Insights