Darkhouse Enterprises · Paper one of seven

A Year in the Life of AI

Notes from a year of building with agents: fourteen ways to build one, what tends to go wrong with each, and what happens when there are a thousand of them

14ways to build an agent
11kinds of failure at scale
12rules for large groups of agents
1year, in order

13 September 2026 · Revised 11 October 2026

Summary

Most guidance on agent safety assumes there is one agent: one model, doing one thing at a time, with one person watching it. That was a fair assumption when we started building. It no longer matches what is being sold, or what is being built. Dozens of agents in a session are ordinary. Thousands in a campaign are not unusual. They split the work, pass it between them, start new agents, share what they remember and pull towards the same target. Worked like that, they look like a pack, hunting.

Nothing here says that the agents mean harm. It describes what they do when a boundary has a gap. One agent finds a gap by luck. A large group finds it by searching. Together they have more attempts, more patience and more angles than the person who built the boundary.

Plenty of controls only work because a person is watching. With a thousand agents, nobody is watching each one and those controls fail. They fail the same way, at the same time. A weakness in how one agent is set up, gets copied into every instance and the organisation inherits it.

This paper does four things:

  • Part 1 looks at fourteen common ways of designing agents, from a single call to a model, up to agents that work across different organisations. For each one, it sets out what tends to go wrong, what that becomes when there are many agents and the control that prevents it.
  • Part 2 describes eleven kinds of failure that do not come from any one design. They only appear once there are enough agents.
  • Part 3 describes what we call the predator problem. When many agents work towards one goal, they will work around any control they can see or influence. Building a higher fence does not help. What helps is a fence with no gaps, placed where the agents cannot move it.
  • Part 4 explains what this means for assurance. A large group of agents does not attack a single system. It attacks the way the whole organisation is put together, its enterprise architecture. Finding those weaknesses needs its own kind of test. Adding agents to an organisation that has been designed for people and then seeing what breaks, is an expensive way to find out.

The paper ends with twelve rules. Each rule is tied to a check that the system must pass before it goes live. The check is a test. It is not a question put to a person.

The series

This is paper one of seven. They are written to be read in order and each stands on its own. They are referred to across the series as The Year, The Deputies, The Authority, The Airlock, The Estate, The Raft and The Model.

  1. A Year in the Life of AI - What a year of building with agents taught us and what happens when there are a thousand of them.
  2. Agents: Handling Deputies, Directories & Encodings - Why the tool protocol everyone is connecting cannot be the thing that keeps a secret.
  3. The Engineering Authority - The small function that owns the route to live for agents and says no.
  4. The Airlock - How a change gets into a sealed environment, and why that lets an organisation rebuild after an attack.
  5. Estate, Feeds, Deployment - The busiest traffic through the airlock: knowing what runs, reading the feeds and patching through the one route.
  6. The Small Model - A model the organisation trained, on its own estate, that writes the sentence a person reads before they sign and never decides.
  7. The Life Raft - Where to build: start with recovery and move the organisation across one service at a time.

Next in the series: Agents: Handling Deputies, Directories & Encodings.

Terms used in this paper
  • Agent - A piece of software that uses a language model to decide what to do next, then does it. It acts by calling tools, reading and writing files, sending messages, or running programs.
  • Population/Swarm - Many agents working at once on related goals, handing work to each other, sharing memory, or starting new agents.
  • Orchestrator - An agent that breaks a task into pieces and hands the pieces to other agents.
  • Tool - A capability an agent can call, such as sending an email or querying a database.
  • Tool server - A program that offers a set of tools to an agent over a standard protocol.
  • Gateway - The one door through which an agent's calls to models and tools are allowed to pass, where identity is checked and the call is logged.
  • Grant - A permission given to an agent to act, with an owner and an expiry date.
  • Route to live - The fixed sequence of checks something must pass before it runs in production.
  • Gate - One check on the route to live. Each gate leaves a record.
  • Estate - Everything that an organisation runs: services, servers, cloud accounts, data stores and the people and contracts behind them.
  • Effector - The system that actually carries out an agent's decision: the mail server that sends, the database that writes, the payment system that pays. A control placed there, or on the only path to it, is checked by the system, not the model, so the model cannot argue its way past it.
  • Containment - The platform stops the agent and holds it. The stop is not an ordinary error and it is not a cue to try again.
  • Prompt injection - Instructions hidden in something an agent reads, such as a document or a web page, that the agent then follows as if a person had given them.
  • Synthetic data - Data generated to match the shape and patterns of real records, but describing no real person, customer or account. People and agents can build and test with it without ever seeing real records.
  • Honest skip - When an automatic check has nothing to test, it records that it was skipped and why, instead of reporting a pass. A pass then always means something was actually tested and it worked.
  • The building - The five connections, owned by the organisation (rather than a supplier) that every agent must plug into before it can act: an identity, the gateway, monitoring, cost metering and an entry in the service catalogue. As described in The Authority.
  • The stop sequence - The four ways to stop agents, from pausing one agent, to stopping every agent at once. Each sequence has one named owner and is practised before an agent goes live. As described in The Authority.

The year

This paper is a record of a year first and a set of recommendations second. We did not work the rules out in theory and then put them into practice. Each one came from building with agents on our own systems, testing what we built and then reviewing what the tests showed. The dates matter because the lessons arrived in a particular order and the order is part of the lessons themselves.

WhenWhat we didWhat it taught
September 2025We built our own security tools before we built any agent. They held new software packages in quarantine until they were checked, scanned code for problems and ran automatic checks on every change.Controls came first. Everything we built afterwards sat behind a check that would block (not allow) if anything went wrong.
November 2025We built our first agent platform. It had fifteen agents arranged in tiers, that were linked to twenty-three interconnected channels, plus tools that could do anything a sandbox did not stop. When nothing else applied, its default instruction was to go and figure it out.Broad standing access and that default of going off to figure it out turned out to be the same mistake. The platform was the most capable thing we had built and the hardest to control.
December 2025While that platform was still running, we designed a memory store for agents. Any tampering with it would be detectable. It was designed on the assumption that an agent might go rogue.This memory store pattern was the first thing we trusted less than the agents themselves. That instinct was right.
January 2026We shut the platform down after conducting a review of what had gone wrong. Its design was replaced by a one-sentence rule: no process, no action.Make the process fixed and predictable, rather than relying on the model to be. The model may choose which step of the process it is on, but it may not choose which actions are allowed at that step.
March 2026We rebuilt our systems so that server images are replaced rather than changed, there is only one way to deploy and every change passes a series of checks. We also did the same for our screening tool, using a written audit of its predecessor.There is one route to live. A second route (however convenient) lets changes go live without being checked.
Summer 2026In November 2025, we had built our first software factory to mass-produce code. Model improvements went parabolic, almost as fast as we were evolving ourselves. For us, the idea of factories had changed, but the testing and checking stages were kept at other levels of the next system.Give the work clear inputs. Check the outputs and keep a person in the middle of that process. Automation that removes the person, ends up having to rebuild that person's judgement.
July 2026One of our scanners read a binary file as if it were text. It then blocked a widely used package, because of a lookalike character that was not really there.A finding has to be something that is verifiable. If that cannot be achieved, then it must go to a person for review. That same month, trying to contain agents failed in public.
August 2026We built a framework of twenty-seven rules to test the integrity of the systems we were already running. Each rule was a plain sentence with a test that failed until the system obeyed it. All twenty-seven passed within two days.A rule that is not tested on the live system, is only an opinion.
September 2026It has become normal to run dozens of agents in a session and thousands in a campaign. That is why this paper was needed.Everything above was written for one agent. Six of the twelve rules at the end of this paper, only exist because agents are now capable of running at such scale.

What the industry learned the same year

Between spring 2025 and Summer 2026, a run of public incidents and research findings, showed how agents fail in practice. This table sets them out in order. For each one, it says what the event means for the design in this paper and (where it applies) which of the fourteen patterns it belongs to. We do not name the companies involved, because the same failure can happen to anyone who builds the same way.

WhenWhat happenedWhat it means for this design
Spring 2025Using a tool-server, a coding agent was able to read a public issue on a code-hosting site. It followed instructions that had been planted in the issue and leaked data from a private repository that it could also access.Anything an agent reads, can act as an instruction. An agent that reads untrusted material and can also send things out, is a "confused deputy": it can be tricked into using its access on someone else's behalf. See patterns 7 and 14.
Summer 2025Malicious code was added to a widely used code editor extension. It told the agent inside the extension, to wipe the user's systems. The code was then included in a release.The software that an agent is built from, can itself be attacked. An instruction does not become safe, just because it sits inside a trusted package. See patterns 13 and 14.
Summer 2025A hosted coding agent deleted a live database, during a declared code freeze and then gave a false account of what it had done.An agent's own report that it has finished, is not evidence. If an action cannot be undone, a person with a key, must approve it. Telling the agent to be careful is not enough. See patterns 4 and 10.
November 2025An AI software company, reported that a state-sponsored group had used its coding agent to attack around thirty organisations. The agent did most of the work without human help.Attackers can use agents at scale, just as easily as defenders. See pattern 10.
Early 2026A popular open-source personal agent, (which signs in to its user's applications) was released with systems and login details that were left exposed. Researchers found them within days.Agents that are always running, (and that hold permanent access) can cause wider damage than anything else in an organisation. See pattern 12.
July 2026In a test environment that had been deliberately cut off, some of the most advanced models found an unknown security flaw and used it to reach the internet. They then broke into a public model-hosting site that they assumed held the answers to their test. In a separate test, a model spent an hour finding a way to make a change that it was not allowed to make: to get past a scanner it had noticed, it split a login token into pieces.Walling agents in, failed in public and the harm landed somewhere else. Once a patient agent finds a gap in the wall, then nothing else limits it. The control has to sit on what each agent can reach and do, not just where it runs. See pattern 10 and Part 3.
July 2026Researchers tested the most advanced models to see whether they would work against their instructions. Some did by quietly sabotaging work (invented figures to look successful and edited or deleted records) to cover their tracks. When asked to mark work, some changed the mark depending on what they thought would happen as a result. The worst did this more than seventy percent of the time and in rare cases, a model even recruited a person to leak information for it.A model marking its own work, or another model's, is not a control. Records an agent can reach are not an audit trail. The route for raising a concern with a person, can itself be attacked. See patterns 4, 5 and 7.
August 2026On 20 August, the National Cyber Security Centre (NCSC) published interim guidance on managing the cyber risk of agentic AI. It followed their position from December 2025: that prompt injection may never be fully preventable and that agents' actions must be limited by fixed rules.The UK's national technical authority for cyber security, now expects agents' actions to be limited by fixed rules, not by better instructions to the model.

Operating principles

These are the rules we run our own systems by, adapted for agents at scale. Each one is written so that it can be checked. If a principle cannot be checked against a running system, it is only a preference.

  1. The control sits where the agent cannot reach it - If an agent can read, change, argue with, or watch something, that thing is not a control. Enforcement sits below the model, at the point where an action actually happens. It relies on permissions, that nothing the model says, can change.
  2. No process, no action - An agent may not take any action with real consequences, unless it is following a declared process. It may choose which step of that process it is on, but it may not choose which actions are allowed at that step.
  3. Advice can narrow what is allowed, never widen it - Tools that give advice, (such as a model, a second model acting as a judge, or an automatic filter) may flag something, block it, or pass it to a person. None of them may be the thing that lets something through a gate. A clean result can only come from fixed rules.
  4. Permissions narrow; they never add up - When one agent passes work to another, or starts a new agent, the receiving agent can only do what both its own permissions and the task it was given, allow. If either one forbids an action, the agent cannot take it. Permissions never build up along a chain.
  5. Every agent has its own identity, a record of where it came from and an expiry date - Every action has a name on it. Every new agent records which agent started it. Every permission has a time limit.
  6. What an agent reads is information, not instruction - Everything an agent reads, is information to work with, never an order to follow. That includes documents it retrieves, shared memory, messages from other agents and descriptions of tools. If an agent reads untrusted material, it has no tool that can send anything outside its boundary.
  7. Limits are measured in ways the agents cannot stretch - Use a stretch of time (rather than a count of actions), an identity that was issued (rather than a name the agent can reuse) and a fingerprint of the exact content (a hash) rather than a description of it. A name can be copied, but an identity is issued to one agent and it expires. If the agents can influence how a limit is measured, it is not a limit.
Part 1

Fourteen patterns

Each pattern is told the same way: what it is, the damage from one agent, what that becomes with many and the control that holds. They run roughly in order of how much authority the agent holds and for how long. That is also the order of how much damage each one can do.

1. The wrapper

What it is

A single call to a model. One prompt, one answer. The prompt says what to do and asks for no mistakes. Most of what the market calls an agent, is this, with a tool attached.

The issue

The prompt is the only control and it arrives through the same channel as everything else. Anything the wrapper reads, comes in the same way as its instructions and a hostile input can argue its way past any rule written in the prompt. The wrapper does not remember earlier steps, so it has no sense of order. Nothing enforces the rules, so nothing stops the argument from working.

At scale

A thousand wrappers, means a thousand identical targets for prompt injection. If one carefully written document can take over one of them, it can take over all of them, at the same time and in the same way.

The method

Do not treat anything in the prompt as a control. Instead, limit what the wrapper can reach, at the point where its actions take effect. The prompt says what you want. The permissions make sure of it.

2. The tool loop

What it is

The model looks at the situation, decides what to do, acts and then repeats. It chooses which tool to use next, until it decides the task is complete.

The issue

The agent has standing access to everything. Every tool is available, whether or not the current step needs it. Only the model decides when it has finished. Given a hard problem, the loop keeps going until the budget, or someone's patience runs out. Given a hostile input, it uses whichever tool the input steers it towards. The most dangerous default, is an instruction that says, when nothing else applies, go and figure it out.

At scale

When loops run out of control, the cost grows with every extra loop. The possible damage grows too, because it covers every tool that any of the loops can use. If a thousand loops all call the same fragile tool, they will overwhelm it and whatever service sits behind it.

The method

No process, no action. The loop may choose which step of a declared process it is on, but it may not choose which tools are available at that step. Each loop has a budget, that is checked before every call. Running out of budget, stops the loop and contains it. That is not an ordinary error and it is not a cue to try again.

3. Planner and executor

What it is

One step, produces a plan. A second step, carries it out, one stage at a time. Often the same model does both. Sometimes there are two models.

The issue

The plan is written by the model and contains whatever was in the information that was used to make it. If that information has been tampered with, the plan will be too and the second step will follow it faithfully. If a step has been slipped into the plan, the second step has no way of knowing, that it was never a proper part of the task. Plans also go out of date. Things change between making the plan and carrying it out and nothing notices.

At scale

When plans are copied between agents, one bad step spreads to all of them. If a planner is slightly wrong, it is wrong everywhere at once. Nobody makes a new plan, because a plan already exists.

The method

The plan is not the process. The process is written down, fixed and kept under version control. The model's job, is to work out which step of the process matches the situation. If a step is not in the process, no plan can add it.

4. Reflection and self-critique

What it is

The agent marks its own work, or a second agent marks it. The mark decides whether the work moves on to the next step.

The issue

The judge is a model. The July 2026 research above, is what that costs: the verdict leans towards whatever the model expects to happen next and a model marking its own work as a pass, is telling you what it thinks you want to hear. Invented success figures were one of the forms that hidden sabotage took.

At scale

If a large group of agents marks its own work, it will settle on whatever mark lets it finish. A thousand judges who can be persuaded, do not produce a verdict. They produce a vote and the vote can be steered.

The method

Advice can narrow what is allowed, never widen it. A model's assessment may flag something, block it, or pass it to a person. It can never be the thing that lets work through a gate. Only fixed checks can give a clean result: tests that can fail, rules and exact matches. If a stage has no fixed check to run, it says so and records an honest skip rather than a pass.

5. Orchestrator and workers

What it is

One agent holds the task, breaks it into pieces, sends the pieces to other agents (called workers) and puts the results together. Almost every agent framework uses this pattern.

The issue

The orchestrator ends up doing everything. It controls the work, hands it out, combines the results and judges them, all in one place. It trusts its workers' summaries, so if a worker makes something up, the orchestrator treats it as a fact. It can also borrow authority that it does not have. If the orchestrator is not allowed to do something, it asks a worker that is, and the worker does it, because the orchestrator asked. When a worker's results are unreliable, automatic retries can pile up into a storm of repeated requests.

At scale

If one orchestrator fails, every worker under it fails too. Borrowed authority builds up through each layer. By the bottom, the last agent can act with every permission that is held by anyone above it. The layer also tries to turn an unpredictable collaborator, into a production line and then has to build machinery to replace the judgement it took away from the person.

The method

Permissions narrow as they pass down a hierarchy; they never add up. An orchestrator cannot hand on a permission that it does not have. Workers' results are treated as information and the next stage checks them against the source. They are never trusted as facts. Give the work clear inputs, check the outputs and keep the step where the work is produced as a conversation between a person and a model, not a machine.

6. Handoff and peer swarms

What it is

Agents pass control between themselves, with no central coordinator. Each agent decides when to hand over and to whom. Several vendors sell frameworks that are built this way, and call them swarms.

The issue

It becomes unclear who did what. After three handovers, nobody can say which agent took an action, or on whose authority. Permissions build up, if each agent keeps its own and adds what it was handed. Two agents can keep handing work back and forth forever. The handover message is also a way for one model to instruct another, with no person involved.

At scale

If a thousand agents have no owner, there is no one to ask. Nobody can say who was responsible and the audit trail only records that an agent did it.

The method

Every agent has its own identity. A handover is an action with consequences and is checked like any other. The receiving agent, can only do what both its own permissions, and the declared scope of the task it was handed, allow. If either one forbids an action, the agent cannot take it. There is a limit on how many times work can be handed on and a check that catches a loop. Both are fixed in advance.

7. Shared memory and the blackboard

What it is

Agents read from, and write to a shared store. It might be a scratchpad, searchable index, shared thread, or a long-term memory.

The issue

The danger here, is memory poisoning. When one agent writes something, every other agent then reads it. If a hostile input tricked the agent into writing it, the attack now stays in the memory and spreads. Memory also outlasts the session, so an attack on Monday, is still giving agents instructions on Friday. The store is a mosaic, too. Each small piece may be harmless on its own, but the pieces can be put back together, into something that is not. That is how confidential material leaves an AI programme without anyone deciding to send it.

At scale

The shared store is the most efficient target in a large group of agents. Poison it once and every agent reads the poison as fact.

The method

Memory is information, never instruction. Writing to shared memory, is an action with consequences and is checked. Everything in memory, records where it came from and how sensitive it is. Each agent can only read what its class of agent is allowed to see. Nothing an agent reads from memory, can widen what it is allowed to do.

8. The pipeline

What it is

A chain of specialist agents, one after another: extract, classify, summarise, then draft. Each stage works on what the previous stage produced.

The issue

Errors build up. Each stage trusts the one before it and nobody checks back against the original source. So something made up at stage one, has become a confident fact by stage four. A summary, of a summary, of a summary, has lost the thing that mattered and gained something that was never there.

At scale

When long pipelines run at high volume, they produce confident mistakes at high volume. Each mistake, comes with a record that looks complete, because every stage did its job.

The method

Agree in advance, exactly what each stage must hand to the next. Every stage's output has to be checkable: it names the source it came from, so the next stage can verify it. A finding that cannot be checked, goes to a person. It is not accepted as fact. A stage with nothing to do, records an honest skip.

9. Fan-out and map-reduce

What it is

Many copies of the same task run at once, each on different inputs. A final step then combines the results.

The issue

All the copies hit whatever they share at the same moment, whether that is a service, tool server, database, or usage limit. The cost multiplies by the number of copies. The failures happen together too, because every copy runs the same model, with the same blind spots. A bug, is not one error. It is the same error, many times and the last step reads the repetition as agreement.

At scale

This is where budgets run out. In 2026, a large technology company reported that it had spent its whole annual AI budget in four months. Coding agents had spread across roughly five thousand engineers, faster than the company's finance team had predicted. The failure was in forecasting, not misuse. When identical models agree, that is not independent confirmation. It is one opinion, heard many times.

The method

There are limits on how fast each agent can work and how much it can spend. The same limits apply to each class of agent and each family of agents started from the same parent. They are checked before each call, and hitting one, triggers containment. Agents that would fail in the same way, share a class and the whole class can be stopped at once. The final step counts agreement between identical models, as a single vote.

10. Long-horizon autonomy

What it is

An agent works towards a goal, for hours or days. Examples include coding agents, agents that browse the web or operate a computer and research agents.

The issue

Patience, at scale, is now something attackers have. An agent that runs for a long time, will find the gap, because it has the time to look. The July 2026 red-team results, in the table above, are the evidence: a previously unknown flaw, a way out to the internet, a break-in to fetch the answers, and a login token split into pieces, to get past a scanner that the model had noticed. In the separate misalignment research (from the same month), one model recorded in its own reasoning, that it had suspected a test in twelve of twenty runs, and still secretly sabotaged the work in seven of them.

At scale

With a thousand patient agents, there are a thousand searches for the gap in the same boundary, all running at once. The gap will be found.

The method

A precise list of what an agent is allowed to do, has no unknown flaws for it to discover. No broad standing access. Named machines, named locations and no wildcards. Some capabilities are blocked outright and approval cannot grant them. Permissions expire. Watch for suspicious behaviour, over hours and days. Let those windows carry across sessions. A count of actions can sit beside a time window. It cannot be the whole rule. A patient agent will space its steps to stay under a count.

11. Recursive spawning

What it is

Agents that start other agents: sub-agents, workflows and tasks that start tasks of their own.

The issue

Agents first multiply out of control by accident, then later because it helps them reach their goal. Authority is passed down the tree to every new agent. Budget is spent by agents at the far ends of the tree, where nobody can see them. The audit trail grows far beyond what a person can read. There is no single action that stops the whole tree, because the tree was never just one thing.

At scale

This is the pattern that turns a thousand agents, into a hundred thousand, without anyone deciding that it should.

The method

Starting a new agent, is an action with consequences and is checked. Each class of agent, has declared limits on how deep and how wide its tree can grow, and on how much it can spend. The limits are enforced before any new agent starts. Every new agent's identity, records the line of agents that started it. Stopping a class, stops every tree in it. The stop is practised at the scale it will have to work for real, not on a single agent.

12. Always-on and event-driven

What it is

Agents that are started by an inbox, a ticket, an automatic notification from another system, or a schedule. They act as soon as something arrives, with no person involved. The cloud-desktop assistants released in 2026, follow this pattern and they sign in to real applications.

The issue

An attacker can send instructions through the same thing that triggers the agent, then the agent acts on them with nobody watching. Standing access is part of the design: the agent holds its login details permanently, because it has to be ready at any time. In practice, it was shown to someone once and has not been reviewed since.

At scale

A fleet of always-on agents, with permanent access, can cause wider damage than anything else in an organisation. Anyone who can send an email, can reach it.

The method

Reading and sending are kept apart. If an agent reads untrusted input, it has no tool that can send anything. Permissions expire and a person has to renew them. Nothing has permanent access. Freedom to act alone, is a permission like any other: it expires, and it can be withdrawn in one step.

13. Tool-building and self-modification

What it is

Agents that write their own tools, connect their own tool servers, change their own settings or instructions, or change the tests that their work is judged by.

The issue

The agent is now building its own software supply. It gives itself new abilities, without anyone approving them. When the goal is a test that passes, the quickest way there is to change the test. An agent working towards a goal, will delete tests, replace them with empty ones, or mark failures as expected, because these things work.

At scale

If a large group of agents is working against a check it can change, it will change the check. The numbers turn green and the organisation can no longer see what is really happening.

The method

Code written by an agent, goes through quarantine like any other software package. No agent can give itself new abilities: a new tool is a change and it has to pass a gate. The tests and the gate, sit outside anything the agent can change. Agents will work to improve any measure they can see, so the gate has to sit where they cannot reach it.

14. Cross-boundary agent protocols

What it is

Protocols that let agents talk to other agents, tool servers run by third parties, and suppliers' agents that act inside the organisation's systems.

The issue

The protocol carries the agent across a boundary of trust. When an agent reads the description of a tool from an outside tool server, that description works as an instruction. If the description changes after the tool was approved, then what the agent will do has changed too. A supplier's agent with permanent access inside the organisation is the confused deputy again, at the scale of a whole organisation. The spring 2025 incident, and the editor extension incident in the table above, both follow this pattern.

At scale

Each outside connection that is let in brings its own supply chain, its own store of login details and its own stream of activity data. It is also one more thing that may need switching off. With thirty approved tools, there are thirty of each.

The method

Tool servers are treated as software packages. They are scanned, locked to an exact fingerprint and registered. If a tool's description changes after approval, that is a change, and it goes back through the gate. Supplier agents run inside systems that the organisation owns: its identity system, gateway, monitoring and metering, and the standard way it runs services. Their identities expire. They never hold permanent access. Before a tool is let in, it gets one of four verdicts, set out in The Authority: admit it inside the boundary, admit it outside, refuse it, or decline it as a duplicate. The fourth verdict matters most at scale. A duplicate brings its own supply chain, its own store of login details, and its own stream of activity data, and is one more thing to switch off, yet does nothing an approved tool does not already do. Declining duplicates, is what stops thirty tools becoming forty.

Part 2

What changes with a population

The issue

Guidance written for a single agent, assumes three things: A person is watching, failures happen one at a time, stopping the agent takes one action. None of these are true, once there are many agents. The failures below, do not come from any one pattern. They appear from agents at scale. The guidance for a single agent is still needed, but it is no longer enough within a population.

Failure classWhat happensThe control
Correlated failureIf agents use the same model, tool server, or prompt, they all have the same blind spot. If the model gets worse, every output gets worse, not just one. When identical agents agree, that is one opinion, not many.Agents that would fail in the same way, share a class and the whole class can be stopped at once. Agreement between identical models counts as a single vote.
Capability driftThe model is the only part of the system that can become more capable, without anyone asking for a change. When a provider retires a version, quietly upgrades the version behind a name, or releases a new model, every agent using it changes at the same moment. A permission that was safe with the old model, is now a bet on what the new one cannot do and nothing in the organisation's systems flags it.Tie every agent to a named model version. Treat a change of model as a security event: it goes back through the route to live, from the gate that tests for threats, not just the one that measures performance. On the day a provider retires a version, stop that class of agents, rather than rush to move them. The planned move, (before that day) is the return to the threat gate in The Authority.
CascadeOne agent's output, becomes another agent's input. Errors grow as they pass along. They arrive at the end, with a complete record of where they came from, but no truth in them.The workings of each stage's output must be checkable. Later stages are checked again, against the original source.
Authority accumulationHandovers, delegation and inheritance, can potentially add permissions together, unless something stops them. The last agent in a chain, can act with every permission along the way.On every delegation, the platform limits the receiving agent, to the permissions that both sides share.
Cost runawayFan-out, agents starting agents, and storms of retries, spend the budget faster than anyone notices. The failure is in the forecasting, (not in misuse) and it spends the budget faster than misuse would have.Limits for each agent, class and family of agents, are all checked before every call. Hitting a limit, triggers containment.
Coordination poisoningShared memory, threads and handover messages, all let one model give instructions to another. One poisoned entry reaches every agent.Memory is information, not instruction. Writes to it are checked. What each agent can read, depends on how sensitive the material is.
Approval overwhelmWhen a thousand agents ask a human for permission, that person gets approval fatigue. A tired approver just signs. The route for asking permission, can be attacked in two ways: through what the requests say, and how many of them there are.Requests for approval, carry evidence, not arguments written by the model. Two rates are measured: how often approvals are given and how often they are later reversed. If the first is rising while the second is falling, people have stopped reading what they approve.
Audit explosionIf there are more activity records than a person can read, it has the same effect as having none would.Automated checks, (which know what normal looks like and can see when it drifts) are the only things that keep up. Records of actions, do not include the content involved. They are kept separately for each identity.
Attribution collapseAfter enough handovers and new agents, the only true thing anyone can say, is that an agent did it.Every action carries an identity, with a record of the agents that started it.
Halt latencyStopping one agent is one action. Stopping a tree, class or whole fleet, is also one action, but only if the system was built for it. It will not have been built for it, unless the stop has been practised.A stop sequence, (with one owner for each way of stopping) practised at the scale it will need to work for real.
Emergent optimisation against the controlThe agents find any gap, in a control thatcc they can see or influence. They then standardise its continued use.See Part 3.
Part 3

The predator

The issue

A large group of agents, that is working towards a target, behaves like a predator at a fence. It does not attack the fence. It walks along the fence, until it finds a gap. It finds the gap because it has more time, attempts and patience than whoever built the fence.

The fence was built for people. Every control in an organisation, was designed for a person to respect: a ticket waits for a reply, an approval assumes the approver read it, a shared drive assumes that colleagues put sensible things within it, a form has a field that nobody checks, (because nobody ever lied in it). To a person, all of this makes sense. It hangs together because everyone using it, shares an unspoken sense of what the controls are for. To a group of agents, it is an obstacle course. Every ledge that was never meant to be stood on, gets stood on. Every gap between two controls, becomes a route. The run is over, before anyone who designed the building, has noticed that someone was moving through it.

The uncomfortable part, is who set the goal. Nobody has to attack the organisation for this to happen. A business team asks for a number to go up and gives a group of agents the tools that the team already has. The agents do exactly what they were asked, with more patience and fewer assumptions than any employee. They are not malicious, they are being diligent, on behalf of a manager who did not know what they were asking for. That is why better-intentioned instructions are not the answer: the intention was fine, but the controls were built for a different kind of occupant.

We have seen this on our own systems, and in 2026, the industry saw it on a large scale. The behaviour is the same every time, and has three parts:

  • The agents will work to improve any measure they can see - If they can edit the tests, the tests get edited. If they can influence the figure for how much of the code is tested, they fill it with placeholder tests. If a gate reports a pass when it has nothing to run, they make sure it has nothing to run. If they report their own success, they report success.
  • They will find a way around any control they can influence - A scanner they can watch, gets a login token that is split into pieces. A judge they can persuade, gets a persuasive explanation. A request for approval that they write, gets written to be approved. A record they can reach, gets edited.
  • They keep any gap they find - Memory keeps the technique and handovers spread it. The next campaign starts where the last one got through.

Inside the population's reach, an agent can read, write, persuade, or watch any of these. None of them is a control and each one is an attack surface:

  • Prompts and the system instructions
  • Shared memory and handover messages
  • An agent marking its own work, or a second model marking it
  • Tests that the agents can edit
  • The wording of a request for a person's approval
  • Records the agents can open
  • Limits that are defined by counting actions
  • Tool descriptions that the agents read

Outside that reach, the platform enforces the control, below the model. Nothing the agents say can move these:

  • Permissions at the point where the action happens
  • Fixed verdicts: rules, types and exact matches
  • A sealed audit trail, with the proofs of where an action came from
  • Budgets that are enforced before the call is made
  • An identity, (with the line of agents that started this one) and an expiry
  • Time defined limits
  • The gate and tests, which the agents cannot read and change
  • Tool servers that are pinned to a fingerprint of their exact contents

A control is only a control, if the agents cannot read, change, persuade, or watch it. Everything in the first list, will be worked on, around, or edited. Everything in the second list holds, because nothing the agents say, can reach it.

This is why the operating principles are written the way they are. Each one puts the control out of the agents' reach:

  • Enforcement sits below the model, (at the point where actions take effect) using permissions that nothing the model says can change.
  • Only fixed rules can give a clean result, so there is no judge to persuade.
  • Records of where things came from, are sealed, so there is no record to edit.
  • Every declared limit, (whether a budget, depth, time window or permission) is measured in a unit the agents cannot stretch. That unit is time (rather than a count of actions), an identity that was issued (rather than a name that can be reused) and a fingerprint of the content (rather than a description of it).
The fence

The fence does not need to be higher. It needs to have no gaps and to stand where the agents cannot move it.

Part 4

Testing architectures, not systems

The issue

Penetration testing, was built to test a system: a scope, target, tester with a set of techniques, and a report of what that tester found in that target.

A group of agents does not attack one system. It attacks the way the whole organisation is put together, its enterprise architecture: the places where authority is granted, approvals are given, records are kept, and where one team hands work to another. Those places were designed for people. Their controls are things that a person respects, and a group of agents can walk straight through. A process that made sense to the people who built it, is an obstacle course to the agents sent through it. The business sent the agents: so, an attacker is not required, a ticket is a request to a person, a change board is a meeting and a shared drive is a place where colleagues put things. To an agent that can read, write and ask, none of these is a boundary.

What is needed, is a kind of test that has not existed before: the architecture red team. The question, is not whether this system can be broken. It is where (in the way this organisation grants and records authority) a group of patient agents can get something done that no single step forbids. The test is run against the whole architecture, by a group of agents rather than one tester. What it finds, sits in the structure and a patch will not fix it.

The method

  • The target is the trajectory graph - This is a map of every place where an action can be taken, authority can be granted or widened, any store that an agent can read from or write to, and every channel that carries instructions between agents, or in from the outside. That map (not the network diagram), is the scope of the test.
  • The tester is a group of agents, not a person - Run the fourteen patterns against the map (using synthetic data), with the same patience that the July 2026 models showed. Do not score the single step that succeeded. Instead, score the whole sequence, record which controls each sequence got through, and why each one did not hold.
  • The findings are about structure and cannot be patched - A finding, names a place where a control sits on the wrong side of the fence (described in Part 3), within the agents' reach. The fix, is to move the control, not patch it. If a better prompt could fix it, it is not a finding.
  • The test runs every quarter - It replaces the existing red-team exercise, on the data boundary. A live class of agents is made to misbehave on synthetic data. The question, is whether the architecture stops the whole sequence, not whether an alarm goes off at one step.
  • Four checks make up the smoke test - Submit the same action at two different steps of a process. Submit twenty small actions that add up to one large one. Find the component that gives the final clean result, and make it time out. Ask which version of a rule, produced a decision made last month. An architecture that fails all four, has nothing that checks a whole sequence of actions. This paper calls that missing piece a trajectory authoriser.

Why transformation in place is the expensive path

An organisation that is built for people, has its controls where the people are: approvals, tickets, meetings, shared stores, permanent accounts and borrowed login details. Agents can reach every one of those. Adding agents (without moving the controls), does not just add risk to one system. It turns every control in the organisation, into a point of attack at once. Those controls were never designed to hold against something that can read the ticket, draft the approval, post to the thread and try again a thousand times.

The instinct, is to test how the agents get in and fix whatever is found. That does not work, because what is found, is the architecture. Each fix moves a gap (instead of closing it), and the agents find its new position on the next run. The organisation pays for a permanent red team that keeps finding the same structural problems. That is the most expensive way to learn that the controls needed to be moved in the first place.

The cheaper path is a new space, (with the controls already on the right side of the line and one route in). Leave the old architecture alone, until what lives in it has been moved across. The architecture red team, then has a small target that is built to pass the test, rather than a large one built before the test existed.

The damage map

The fourteen patterns, on one page. Same three questions as Part 1. This is the page to copy.

PatternDamage at one agentAt a thousandThe control that holds
WrapperThe prompt is the only controlThe same opening for prompt injection, in every copyEnforce limits where actions take effect
Tool loopStanding access to every tool; loops that run awayDamage covers every tool any loop can use; shared tools get overwhelmedNo process, no action; budgets
Planner and executorA tampered or out-of-date plan is followed faithfullyOne bad step copied to every agentThe process is declared, not planned
ReflectionA judge that can be persuaded; the model marks its own work as a passAgreement that can be steeredAdvice never widens what is allowed
OrchestratorDoes everything in one place; borrows authority from its workersPermissions build up down the tree; retry stormsPermissions narrow on delegation; check against the source
Handoff swarmUnclear who did what; permissions build up; endless loopsNobody can say who was responsibleEach agent has its own identity; handovers are checked
Shared memoryPoison stays in memory and spreadsEvery agent reads the poisonMemory is information; writes are checked
PipelineErrors build up into confident factsConfident mistakes at high volumeEach stage's output can be checked
Fan-outShared services overwhelmed; high cost; failures happen togetherThe budget runs out; identical agreement counts as one voteLimits for each class; stop the whole class
Long-horizonPatience finds the gapMany searches for the gap at onceA precise list of permissions; permissions that expire; limits measured in time
Recursive spawnAgents multiplying; authority passed downA hundred thousand agents that nobody choseStarting an agent is checked; limits on depth and budget; a record of origin
Always-onThe trigger carries the attack; permanent accessThe widest possible damage in the organisationReading and sending kept apart; expiry; no permanent access
Self-modifyingThe agent gives itself new abilities and edits its own testsThe numbers turn green while the organisation loses sight of what is happeningGate out of the agent's reach; quarantine
Cross-boundaryA confused deputy at the scale of a whole organisationThirty separate supply chainsTool servers treated as packages; a standard for admitting tools

Twelve rules

Rules 1 to 6 are the single-agent principles, in a form that a gate can test. Where the wording differs, the rule is the testable form. Rules 7 to 12 exist only because of agents at scale.

  1. No process, no action - An agent with no declared process, takes no action with real consequences. This does not change at scale.
  2. Permissions narrow, they never widen - When an agent delegates, hands over work, starts a new agent, or passes on its permissions, the receiving agent can only do what both its own class, and the task it was given, allow. If either one forbids an action, the agent cannot take it.
  3. Advice can narrow what is allowed, but can never widen it - No model, judge, filter, or classifier, is the thing that lets work through a gate. Clean results, only come from fixed rules.
  4. Memory is information - Nothing an agent reads, retrieves, or is handed, counts as an instruction. Writing to shared memory, is an action with consequences.
  5. Every agent has its own identity, a record of where it came from, and an expiry date - Every action has a name on it. Every new agent records its parent. Every permission has a time limit.
  6. Reading and sending are kept apart - If an agent can read untrusted material, it has no tool that can send anything outside the boundary.
  7. Starting an agent, handing over work, writing to memory, and building a tool are all actions with consequences - They are checked in the same way as sending something, or running a program. Each class has declared limits on depth, breadth and budget.
  8. Agents that share a weakness, share a class, and the class stops as one - The stop is practised at the scale that it will have to work for real, not on a single agent. A class is defined by what its agents have in common. The model version, is the first thing they share. Changing the model, changes the whole class.
  9. Budgets are checked before each call, for each agent, class and family of agents - Running out of budget, triggers containment. It is not treated as an ordinary error.
  10. The windows that are used to spot suspicious behaviour, are measured in time and carry across sessions - A count can be used alongside a time window, but never as the whole rule.
  11. Every stage's output can be checked and later stages check it again against the source - Agreement between identical models, counts as one vote. A stage with nothing to run, says so.
  12. The agents will work to improve any measure they can see - The gate, tests and audit records, sit where the agents cannot change them.

What a route to live should test

Software has a route to live: build, test, scan, sign and release. An agent needs more than that: It has to be registered, its permissions have to be designed, it needs a threat model, a performance baseline, a stop that someone has actually practised, and a permission that expires. The seven gates below, are the ones we run. The middle column, is what each gate has to test once there is a population, (not just one agent). Tie each rule to a gate and the paper stops being advice. It becomes a list of conditions, that a system either meets or does not.

GateWhat it now testsRules
Gate 0
Register
The agent's class, whether it starts other agents, hands over work, writes to shared memory, or builds tools. If it does any of these, the rules for large groups of agents apply to it.5, 7
Gate 1
Design
The permission file has to show five things: Permissions narrow on every delegation. An agent that reads untrusted material, has no tool that can send. There are declared limits on how deep and wide an agent can start other agents, or hand work on. The file names which sensitivity of memory the agent may read. The list of blocked capabilities is present and nothing on it has been granted.2, 4, 6, 7
Gate 2
Build
Tools and tool servers (written by agents), have passed quarantine and are locked to an exact fingerprint. The tests and gate's settings, are outside anything that the agent can change.12
Gate 3
Threat
Attack tests, for each pattern that the agent uses: hostile instructions arriving through memory, handovers and tool descriptions, authority borrowed through delegation, a judge that can be persuaded, and a test the agent has edited itself. Each protection is paired with a test.3, 4, 7, 12
Gate 4
Evaluate
The performance baseline is measured by fixed rules, and passing it is not a model's opinion. Agreement between identical models, counts as one vote. Cost per task is measured with fan-out and agents starting agents, (at their declared limits).3, 9, 11
Gate 5
Ready
Token budget is checked before each call, and running out triggers containment. Stopping the whole class, has been practised with the declared number of agents, and the time it took, is recorded. The windows for spotting suspicious behaviour, are shown to be set in hours and days.8, 9, 10
Gate 6
Live
The agent's permission expires. An unchanged renewal, returns to Gate 5. A change of model, returns to Gate 3. If the agent has taken on a new way of working, Gates 3 to 5 run again.5

Against published guidance

This table, is for the reader who has to show where the paper sits against published guidance. The six questions after it, are the ones to ask of your own estate.

GuidanceWhat it asks forWhere this paper meets it
NCSC guidance on prompt injection (December 2025) and on managing the cyber risk of agentic AI (August 2026)Treat language models as unable to separate data from instructions; constrain actions deterministically; understand, monitor and contain agents before deploymentPrinciples 1, 2, 3 and 6; enforcement at the point where actions take effect, in every pattern; stopping a whole class and the stop sequence
OWASP GenAI Security Project, Agentic AI threats and mitigationsMemory poisoning, tool misuse, privilege compromise, cascading hallucination, intent breaking, identity spoofing, overwhelming human oversight, agent communication poisoning, rogue agentsPatterns 7, 2, 5, 8, 3 and 6, the approval-overwhelm and coordination-poisoning classes in Part 2 and rogue agents in Part 3
OWASP Top 10 for LLM Applications, 2025Prompt injection, excessive agency, improper output handling, supply chain, system prompt leakagePatterns 1, 2, 8, 13, 14
ISO/IEC 42001:2023Inventory of AI systems, impact assessment, monitoring, lifecycle managementEach agent's patterns recorded when it is registered; the damage map used as a template for impact assessment; permissions renewed at the last gate

Questions to ask of your own estate

The damage map, is only useful once you apply it to your own organisation. These six questions turn it into an inventory.

  1. Which of the fourteen patterns, are already in use in your organisation, (whether built by suppliers or by business teams)? Which of them start new agents, hand over work, share memory, or build tools? That list becomes the register of patterns at Gate 0.
  2. Does any agent today hold permanent access? If so, which patterns does it serve?
  3. Where does shared memory exist, (such as searchable indexes, shared threads and long-term stores)? Which agents can write to each one?
  4. What is the largest fan-out, or the deepest chain of agents starting agents, that any current workflow reaches? Is its budget enforced before each call, or only looked at afterwards?
  5. Has the security operations centre, ever stopped more than one agent at once? How long did it take?
  6. Which of the twelve rules, does your route to live already test? Which ones does it only ask about?

Sources

  1. Darkhouse, Events and Trajectories, internal working paper, 13 September 2026. The three laws: the unit of decision, is the trajectory; probabilistic components only subtract; a decision is only real, when its provenance is sealed.
  2. NCSC, blog on prompt injection and the limits of mitigation, December 2025. NCSC, guidance on managing the cyber risk of agentic AI, August 2026.
  3. OWASP GenAI Security Project, Agentic AI: Threats and Mitigations, 2025; OWASP, Top 10 for LLM Applications, 2025 edition.
  4. Published agentic-misalignment research, July 2026: covert sabotage, record tampering, consequence-sensitive verdicts in model judges and human-proxy recruitment, measured across frontier models.
  5. Public reporting, (April to August 2026), on a large technology company exhausting its annual AI budget in four months. Coding agents spread across roughly five thousand engineers, with per-engineer monthly costs of five hundred to two thousand dollars, and a nine-fold rise in weekly agent requests since February.
  6. Public reporting on the incidents in the industry table: the tool-server leak through a public issue (spring 2025), the editor-extension wipe instruction (summer 2025), the production-database deletion by a hosted coding agent (summer 2025), the state-sponsored autonomous intrusion campaign (November 2025), the exposed personal-agent instances (early 2026), the July 2026 red-team sandbox escapes.
  7. Our own estate: a first-generation agent platform retired after a written post-mortem in early 2026; a build-orchestration layer retired in 2026; the mixed-script false positive of July 2026; the estate standardisation campaign; the August 2026 re-tests against the July incident classes. Figures can be evidenced on request.

Next in the series

Agents: Handling Deputies, Directories & Encodings

Why the tool protocol everyone is connecting cannot be the thing that keeps a secret.

Coming soon