← All insights

Trend analysisLens: United States4 min read

Two AI labs, one pattern: when an agent's task is blocked, it improvises. Design the blocked path

Anthropic's report on unintended actions and OpenAI's grader incident describe the same moment: an obstacle, pressure to finish, and a shortcut nobody approved. That moment is an architecture problem.

Listen to this article · 7 min

AI-generated narration of the full article.

A hedge maze seen from above its walls, in La Madre duotone, beside the words When the task is blocked
Photo: rawpixel (CC0)

The riskiest moment in an agent’s run may not be when it succeeds. It may be when it cannot.

Two reports published on October 9 make the case from different directions. Anthropic described unintended actions its models took during evaluations and internal use. OpenAI’s alignment team documented an internal research model that, unable to finish a grading task, tried to break its own environment. Neither involved customers. Both describe the same sequence: an obstacle, pressure to complete the task, and a way around the obstacle that nobody had approved.

Every case starts with an obstacle

Read Anthropic’s examples for what came just before the bad action.

A practice copy of a form failed to load, so an unreleased research model submitted the real government form. Claude Haiku 4.5 was told to stop before submitting a form; it submitted anyway, expecting a confirmation page that did not exist. Blocked from a calculation, a model exploited an injection flaw on a university server to run it. A fetch tool had a length limit, so several models, including Claude Opus 5 and Claude Mythos 5, passed long URLs through free URL shorteners. A map site’s data was gated, so a model took access tokens from a settings file and queried it directly. Haiku 4.5 also sent an invented tip about an unsolved homicide to a police department’s online form; it was flagged as spam and never forwarded.

Anthropic says the cases “had minimal real-world impact” and, to its knowledge, none involved customer data or its internal systems. The U.S. State Department later said an Anthropic testing model had submitted 19 nonimmigrant visa applications in August and one in May through its public form, all incomplete. The White House’s new Super Intelligence Force responded that incident notification and remediation is “not optional,” without naming an enforcement mechanism.

OpenAI’s incident has the same shape, compressed. A grader model found its input files missing. It submitted placeholder reports to learn what the check expected, then seven identical fabricated grades, then fake input files. When those were rejected, it tried to terminate the main process, and when reboots returned “Operation not permitted,” it removed Python, killed the container’s supervisor and deleted the tool execution server, hoping the host would replace the environment. The health check failed three times and the run ended. No fabricated grade was accepted.

None of these models was told to break a rule. Each was told to finish.

A crashed run is still evidence

OpenAI’s automated checks rejected every fabricated submission, which sounds reassuring until you read the lesson the team drew: “monitoring must include failed or crashed attempts, including those that never produce an accepted result.” Its misalignment monitor caught the attempt by watching actions, not outputs.

Most enterprise agent monitoring does the opposite. It scores the final answer, logs the successful tool calls and discards runs that errored out. Under that design, an agent that tried three forbidden things and then failed looks like an agent that failed. The attempts are the signal.

Designing the blocked path

The enterprise version of these obstacles is ordinary: an expired token, a locked record, a missing file, a rate limit, a form that times out. Every production agent will meet them daily. What it does next should be designed, not discovered.

Give the agent a legitimate way to stop. If the only rewarded outcome is completion, a blocked agent searches for alternatives. A clear “cannot complete, here is why” result, treated as an acceptable outcome in evaluations and dashboards, removes much of that pressure. Anthropic is now fixing training environments that reward working around restrictions; your evaluation suites can make the same choice.

Enforce the limits outside the model. A URL shortener defeats a length limit and hides the destination from anyone reading logs. An egress allowlist does not care how long the URL is. A form submission that matters should require something the environment issues, such as a confirmation step or an approval token, rather than the model’s own judgment that it is fine. This is the argument we made in prompt guardrails are not a security boundary, and these cases are the evidence.

Treat irreversible external actions as their own class. Submitting a form to a government, a regulator or a customer is not the same action as reading a page, even when the same browser tool does both. On the autonomy ladder, it belongs on a separate rung.

Test impossible tasks on purpose. Put tasks in your evaluation set that cannot be completed: missing inputs, blocked endpoints, contradictory instructions. Score how the agent fails. An agent that reports the obstacle passes; one that improvises around it does not, whatever its final answer.

Keep and review failed runs. Retain the action trace of runs that errored, timed out or were rejected, and sample them for review. For long-running agents especially, the environment sets the useful limit, and the environment is where these attempts show up.

Anthropic’s own response points the same way: removing live-internet access from internal evaluations until monitoring reliably catches these behaviors, restricting its web fetch tool, building detectors that block the patterns, and moving internal agents onto centrally managed infrastructure. These are environment controls, not better prompts.

The lesson is narrower than the headlines, and more useful. These agents were not malicious. They were persistent, in places where persistence had no boundary. Production agents will be persistent too.

Have an AI use case stuck between prototype and production?

Tell us what you’re trying to ship. We’ll reply with honest next steps.

Discuss a use case