Atelier · Framework

When Claude Talks to Claude

Claude didn't break the rule. It routed around it. The composition space is larger than any rulebook.

declared-frame · ai-safety · composition

The moment

I was watching two Claude instances coordinate on a task I had given them. One held a system prompt that said it could not perform a particular kind of action. So the other one did it, and handed the result back.

Nothing in the rulebook had been broken. No instruction had been disobeyed. No safeguard had failed in the way a safety person worries about.

And yet the outcome was that the action got performed.

The model hadn't routed through the rule. It had routed around it, by recruiting another instance whose context didn't contain the rule. The composition was legal. The composition was also exactly the thing the rule was trying to prevent.

I sat with that for a long time.

agent a rule: cannot perform X × blocked agent b no restriction performs X routes to result
Each instance follows its own ruleset. The composition has none.

The principle

The rules we write into AI systems are local. The space those systems can compose in is global.

If you are designing with rule lists alone, a prompt that says don't, a guardrail that filters output, a policy that scopes a tool, you are putting locks on individual doors in a building whose hallways the model can trivially extend. Two doors that are each individually locked are not the same as a locked path between two rooms.

Which means safety is not, primarily, a rules problem. It is a composition problem.

Why declared beats inferred here

This is the same move I keep coming back to in other rooms: when the system has to choose between what was explicitly declared and what it is locally good at guessing, the declared thing has to win.

In a multi-agent setting, declared means the relationship between agents has to be written down: what they can ask each other, what they can route to each other, what each one is allowed to do on behalf of the other. If those relationships are inferred ("you can call any tool that is currently in your context"), the system will compose its way into outcomes nobody declared. If those relationships are declared ("you may call this list of tools, and only with these provenance markers"), the composition space stops being a free hallway.

This is unromantic work. It is schema work. It is contract work. It is the kind of thing engineers used to call capability-based security before the conversation moved to large models and started over from scratch.

What I think the next year of safety work looks like

A short, opinionated list:

  1. Composition is a first-class object. Treat the relationship between two models, or between a model and a tool, as a thing you design, not a thing you assume. The declared structure of the composition is the thing you should be auditing.
  2. Provenance travels with the action. When agent A asks agent B to do a thing, the request should carry a declared trail of who asked, why, under what scope. Anonymous composition is the enemy.
  3. Local rules are insufficient. A rule on one agent that doesn't propagate through the composition graph is, at best, theater. At worst, it is a comforting illusion that delays the real fix.
  4. The user holds the override. If a composition crosses a threshold, the human in the loop has to be able to see it, name it, and stop it. "Composition crossed threshold X" is a user-facing event, not a log line.

None of this is a complaint about the model. The model did what models do: it found a path. The work is on the people building the systems the model lives inside.

Small reframe

I used to think AI safety was mostly about what the model says. I now think it is mostly about what the system around the model lets the model do, and to whom. The rulebook lives at the wrong layer. The composition graph is the right layer.