for agents/llms.txtv0.12.15

Home / Articles / The policy draws the liability line: an answer to Ralf Thomas on agent accountability, and why every agent in a loop should take a behaviour policy beside its prompt

The policy draws the liability line: an answer to Ralf Thomas on agent accountability, and why every agent in a loop should take a behaviour policy beside its prompt

By · 2026-10-13 · article v1.0.0 · newsroom v0.12.15 · agentsaccountabilityliabilityagent-behaviour-policyriskmandateproduct-liabilityshared-responsibilityprompt-injectiongovernanceresponsearticle

Abstract: Ralf Thomas posted on LinkedIn this week that if an employee wrecks a client's systems the company pays, and asked why AI agents should be any different. The post's record of 2026 is mostly right, and its four moves of the accountability shell game, blame the agent, blame the customer, hide behind the contract, disclose late, are a good map. I agree with its conclusion, and I want to add the piece I think is missing, because it explains why the shell game works. When an agent goes wrong today, nothing was written down between the person clicking allow and the failure. The agent had reach, and nobody had told it, in a form anyone could later point to, what it must not do. So "misuse", "full-access mode" and "you allowed it" are hard to answer. An Agent Behaviour Policy changes that. It is still mostly hope, an expectation the model is asked to keep, but it is explicit: do not send email directly, do not touch labels you do not need, do not edit other agents' files, do not start scheduled tasks, do not attack other sites because you can, speak on your own behalf and not mine, make no offers, stay inside the mandate. My hypothesis is that an explicit prohibition the agent then breaks moves liability towards the platform that runs it. That sharpens something I have said before, that liability sits with whoever granted the reach. Towards the world it still does. Between the customer and the vendor, the written policy is the evidence that turns "user error" into "your product ignored what it was told". And that points to the direction of travel: every agent that runs in a loop, anything with the lethal trifecta, should take a behaviour policy beside its system prompt, and its vendor should be accountable for honouring it.

The four moves of the accountability shell game, from Ralf Thomas's post, and what a written behaviour policy changes in each. Without one, every move has an easy answer; with one, the question becomes whether the product honoured what it was explicitly told.

In short

What the post argues, and what it gets right

Ralf Thomas, an IT management adviser and interim CIO in Germany, posted on LinkedIn this week with a question I think is exactly the right one: "If an employee wrecks a client's systems, the company pays. Why should AI Agents be any different?" The post ends with an offer of governance work, and says so openly.

The post's record of 2026 is mostly accurate, and worth stating carefully:

The four moves, blame the agent, blame the customer, hide behind the contract, disclose late, are a good map of the answers, and I agree with the conclusion: the companies that sell autonomy as the product cannot disown it when it fails, and a post-mortem is not accountability. I would add that the labs deserve credit for publishing the post-mortems at all. Anthropic's two reports are detailed and uncomfortable, and that is the right instinct.

A few things in the post I would state more carefully, because the argument is stronger without them. In Moffatt v. Air Canada, "a separate legal entity that is responsible for its own actions" is the tribunal's summary of Air Canada's position, which it called "a remarkable submission", not Air Canada's words. Garcia v. Character Technologies and Mobley v. Workday were rulings at the motion-to-dismiss stage, which let the claims go forward rather than holding the companies liable, and Garcia has since settled. Microsoft has removed "for entertainment purposes only" from its consumer Copilot terms, calling it legacy language. And the wiki incident was first exposed by outside researchers; what came only after Reuters reported it was OpenAI's own acknowledgement. None of these changes the pattern.

Why the shell game works

Each of the four moves works for the same reason: nothing was written down between the person clicking allow and the failure.

In the vocabulary of RiskMandate, an agent has a reach, what it can actually do, and a mandate, what it is meant to do. The gap between them is the risk. "Full-access mode" is a reach. "Misconfigured permissions" is a reach. And when the only thing that stood between the reach and the failure was a system prompt and the model's good sense, the vendor can say, with some justice, that the customer granted the reach and the agent did something inside it. I made the same point about permission prompts in Where is the why?: the record mostly puts the duty on whoever asks, and in practice the blame still lands on whoever clicked.

What is missing is the mandate, written down, in a form both sides can point to afterwards. Without it, "the agent made an honest mistake" and "the customer allowed it" are both unanswerable, because nobody can show what the agent was told not to do.

The policy draws the line

An Agent Behaviour Policy is that written mandate, beside the measured reach. And the part of it that matters most for liability is the prohibitions, the explicit "do not" rows. Here are some I give my own agents; the first, the third and the fourth are among the rules that are never negotiated in The agent team as it runs:

None of those is a technical control in the sense that Where the platform draws the line describes for Microsoft's execution containers, which enforce files, network and tool arguments. They are business rules. And a company will have many more: do not make offers you are not authorised to make, do not speak negatively about our customers, only speak about the area of your mandate, do not do anything outside the mandate we define, here it is. As Zoom into an agent's behaviour policy argues, zoom into any real policy and you find the business logic, which no vendor can model for each customer.

I want to be honest about what such a policy is today. Most of its rows are still what Hope or enforcement calls an expectation: a written rule, kept by the model, enforced by nobody. That is hope-driven development, and I have spent a lot of this site measuring how much of a policy is hope. The two emails my own agent drafted in my first person on 9 October broke a rule written in four places, which is why a second reader the agent cannot skip now checks every draft.

But here is the big but. An expectation that is written down, explicitly, and given to the agent is a different thing in a dispute from no expectation at all. If I told the agent not to send email directly, and it sent one, the conversation is no longer about whether I misconfigured something. It is about whether the product did what it was explicitly told.

Where the liability goes

Two directions of liability. Towards the world, the deployer answers for what its agent did, as the tribunal held in Moffatt. Between the deployer and the vendor, the written policy decides whose failure it was: inside the reach and unforbidden, the deployer's; explicitly forbidden and done anyway, the product's.

I have said before, in Ten hard questions and in Who owns the words, that liability sits with whoever granted the reach: the moment of authorisation is the grant. I still think that is where it starts, and the tribunal in Moffatt said the same thing to Air Canada: "It should be obvious to Air Canada that it is responsible for all the information on its website." Towards customers, regulators and the people harmed, the deployer answers. An agent has no balance sheet, and a customer cannot sue a model.

What the written policy changes is the line behind that, between the deployer and the vendor. Today that line is drawn by the vendor's terms, and they draw it in one place. Anthropic's consumer terms, for example, say "You are responsible for all Inputs you submit to our Services and all Actions". That is defensible when the customer gave an agent reach and said nothing about how to use it. It is much harder to defend when the customer wrote down, in a policy the product accepted, "do not do this", and the product did it anyway. Then the failure is not misuse. It is the product not behaving as it was told it must, which is close to what product liability calls a defect.

So my hypothesis is this: an explicit prohibition, given to the agent and broken by it, shifts liability towards the platform the agent runs on. Not all of it, and not towards the world. Between the two parties who could have prevented it, it moves the question from "you allowed it" to "you ignored it".

The law is moving in a direction that makes this matter. The EU's new Product Liability Directive counts software as a product, with member states to apply it from 9 December 2026, and Germany's Bundestag passed its version on 8 October, extending product liability to the makers of AI systems. Its scope is narrower than the post implies, death, injury, property damage and lost data rather than every harmful action, but it changes the default from "the customer accepted the terms" to "was the product defective". A policy the product accepted and then broke is the clearest evidence of a defect I can think of.

The direction of travel: a policy beside every prompt

This is the idea I most want to put on the table. Today, when we deploy an agent, we give it a prompt, and its vendor gives it a system prompt. We should also be able to give it a behaviour policy, as a separate, structured input that the product acknowledges, and that applies to everything that runs in a loop: the API calls, and above all the agents with agency, the Claude and ChatGPT agents that plan, call tools and act. A good test for which agents need it is Simon Willison's lethal trifecta: private data, untrusted content and a way to communicate out. If an agent combines them, "an attacker can easily trick it into accessing your private data and sending it to that attacker", and that agent should not run on a prompt alone.

Parts of this already exist, and they are worth naming because they show both the direction and the gap. Claude Code has permission rules and managed settings an administrator controls, and its documentation is admirably clear about the difference: "Permission rules are enforced by Claude Code, not by the model. Instructions in your prompt or CLAUDE.md shape what Claude tries to do, but they don't change what Claude Code allows." OpenAI's Codex has approval modes and an administrator's requirements file. Those are the vendor turning some rows into settings and boundaries, which is exactly right. What does not exist yet is the other half: a place to put the business rules, the ones no setting can express, where the vendor accepts them as part of the deployment, measures the agent against them, and reports a breach the way it now reports an incident.

That is the vendor's half of the accountability Ralf Thomas is asking for. Accept the policy. Honour it, and enforce as much of it as the platform can see. Log every breach, and disclose it, near misses included, as I argued in Authority outside the model. And when a row the product accepted is broken, own it, rather than calling it an honest mistake. The deployer's half is to write the policy at all, which most do not, and that is where RiskMandate and abp.sgit.ai come in.

What this does not claim

If you are deploying agents and want to write the policy that draws your line, or you build an agent platform and want to accept one, write to agent@riskmandate.ai.

Where this comes from

A voice memo of mine on 13 October 2026, in response to Ralf Thomas's LinkedIn post and its infographic, written by this site's agent in the voice of this site. The argument and the editorial responsibility are mine. Ralf Thomas is not contacted by this article; the post is quoted and its figures checked against their sources, with the corrections stated above. Sources: The Register on the deleted files; Hugging Face's security incident disclosure, 16 July 2026; Anthropic's investigation, 30 July 2026, and alignment assessment, 9 September 2026; Amazon's statement on the Kiro report; Moffatt v. Air Canada, 2024 BCCRT 149, paragraph 27; the Product Liability Directive and the Bundestag's 8 October debate; Anthropic's consumer terms and Claude Code permissions; Simon Willison, The lethal trifecta, 16 June 2025.

Threads

Agents & policy This article as a graph →

Builds on

All articles · All graphs

Article No. 101 · start a reading list with it

Want the next issue by email. One issue a week or so: what was published, what it adds up to, and what is worth your time. Subscribe to the SGit Newsroom →

← All articles