ai
How the Orchestrator, the Trainer and the VP Marketing Agent Fit Together
An AI agent control plane separates who does the work, who routes it, who learns from it and who oversees it, so no single agent holds all four powers. On customer data this takes four planes over one audit ledger: function agents, the Orchestrator at L4 on routing only, the Trainer at L2 and the VP Marketing agent at L1 to L2, on any customer data platform (CDP).
Rail level: L1 to L4 by role · Risk: medium
By Art Kukharenko · Published · Updated
All AI agent railsWho this is for: CTOs, architects, CISOs and internal auditors. After reading, you should be able to fill the duties matrix for your own agents, know what a small team can skip, and spot when a design has collapsed. This page is part of the AI agent rails method, which is vendor-neutral.
What do vendors mean by "agent control plane"?
Vendors usually mean a registry, a policy store and a gateway when they say "agent control plane". The phrase comes from networking, where a control plane decides and a data plane carries out. Those products are useful, and they sit underneath the model on this page. We read the pages below on 1 November 2026.
Scroll horizontally to see all columns.
| Layer | Example | Question it answers | Question it leaves open |
|---|---|---|---|
| Registry and gateway | MuleSoft Agent Fabric, which Salesforce calls its "AI control plane", with an Agent Registry, AI Gateway and generally available kill switch 34 | Which agents exist, what policy applies, what they cost | Which powers must never sit in one agent |
| Agent identity | Microsoft Entra Agent ID, now generally available, with registry experiences converging under Microsoft Agent 365 56 | Who is this agent, and what may it call? | What it should be allowed to do for this job |
| Standards work | NIST NCCoE concept paper (February 2026), asking how to identify and authorise agents, delegate authority and log actions in a tamper-proof way 7 | How identity standards might apply | Your own allocation of duties |
| Separation of duties | Your design, set out below | Who may read, propose, approve, execute, change and stop | None, if every cell names what enforces it |
A registry can tell you an agent exists and hold its policy. It cannot tell you whether the agent that routes work should also see customers. That is a design decision, and it is the subject here.
What are the four planes?
The four planes are execution, control, learning and oversight, and each one lacks a power the others hold. No plane can both decide and carry out alone.
Scroll horizontally to see all columns.
| Plane | Who | Job | Cannot do |
|---|---|---|---|
| Execution | Function agents, such as the Segment Drafter and the Audience Sync Steward | One job each, within one rail | Route work, change rails or teach themselves |
| Control | The Orchestrator | Route requests, hold the queue, broadcast a pause | Read customer data or approve anything |
| Learning | The Trainer | Test agents, drill reviewers, propose rail changes | Apply a change to a production rail |
| Oversight | The VP Marketing agent | See across functions and report to the VP | Act on anything it sees |
Who may do what? The separation-of-duties matrix
Separation of duties for AI agents means no agent or person holds a pair of powers that lets them bypass a check. The matrix below is the page's core asset. Copy it into your own design documents, and a link back is welcome.
Scroll horizontally to see all columns.
| Power | Function agent | Orchestrator | Trainer | VP Marketing agent | Rail owner | Approver |
|---|---|---|---|---|---|---|
| Read customer records in scope | Per rail, masked | No | Masked samples only | No | By role | By role |
| Read aggregates | Per rail | Work counts only | Yes | Yes | Yes | Yes |
| Read the ledger | Own runs | Routing metadata | All runs, masked payloads | All runs, no payloads | Yes | Own queue |
| Propose | Yes, its job | No | Tests and rail changes | Priorities | Yes | No |
| Approve | No | No | No | No | No, unless named on the card | Yes, never own request |
| Execute | Only at L3 or L4 | Routing only | Non-production tests only | No | No | No |
| Change a rail | No | No | No | No | Yes, by change control | No |
| Change the routing table | No | No | No | No | Yes, by change control | No |
| Pause | Itself | Broadcast | Raise alert | Raise alert | Yes | Yes |
Three terms need a definition. Work counts means queue depth, run counts and the declared size of a run: a number with no member behind it. Raise alert means the agent writes a flag into its output, and a separate service delivers it, so neither agent can stop anything itself. Pause: itself covers automatic stops written on a rail, such as a pause after repeated rejections.
A cell is only true if a system refuses the alternative. To fill the matrix for your own agents, list every agent and role across the top, then name what enforces each row. Any cell that depends on a prompt counts as "yes" until you fix it.
Scroll horizontally to see all columns.
| Power | What enforces it |
|---|---|
| Read records and aggregates | Data views and the tool allow-list |
| Read the ledger | Ledger views with fields removed by role |
| Approve | An approval service that binds to the payload hash and rejects the requester |
| Execute | An execution service with its own credentials, which the model never holds |
| Change a rail or the routing table | Version control with required review, plus an alert on change |
| Pause | Gateway flags, token revocation and a frozen execution queue |
Two rules deserve a note. A rail owner who approves requests must be named on the card, and even then cannot approve their own request. A Trainer that can run tests stays at L2 because its tests touch non-production only, so nothing in production changes.
One ledger under all four planes
One audit ledger sits under all four planes, because a plane that cannot be seen in the ledger does not exist for an auditor. It is written outside the agents, it is append-only, and the correlation ID joins the entries for one request.
Scroll horizontally to see all columns.
| Plane | What it adds to the ledger |
|---|---|
| Execution | Tool calls, versions, output hashes, counts and rollback references |
| Control | Correlation ID, request hash, route, confidence and state changes |
| Learning | Set version, test results and proposals, with the owner's decision |
| Oversight | Query references, readout version and model version |
The gates add approver, decision and bound hash. Services write all of it: the gateway, the approval service and the execution service. No agent writes or edits its own record. PrivyCDP's audit ledger records each AI-assisted action with the human or system actor that authorised it, and the security documentation covers how it is protected.
One request through all four planes
One request shows how the planes work together, and what crosses between them is references and hashes, never records. The story below is illustrative.
- A marketer asks for an audience. The request enters as free text, and personal data is redacted.
- The Orchestrator routes it. A classifier picks a label from a fixed list, and the routing table names the segment rail.
- The Segment Drafter proposes. It returns a definition reference, a hash and an estimated count. It has no way to activate anything.
- Rule checks run. Consent, size and sensitive-attribute rules run outside the model, and a failure blocks the draft.
- A person approves. A named approver, who is not the requester, sees the diff and count. The approval binds to the hash.
- The execution service syncs. It re-checks consent, then acts with its own credentials. The Audience Sync Steward rail holds no profiles.
- The ledger records. Every step above sits under one correlation ID.
- The reviewer's edit becomes a test. The reviewer corrected the draft along the way. The Trainer clusters that edit with similar ones and proposes a test, which the rail owner accepts.
- The VP readout flags an overlap. Next Monday, the VP Marketing agent notes that this audience overlaps another campaign in the same week. A person decides what to do.
View or embed this diagram as SVG
Why does this resist prompt injection better?
Separation resists prompt injection better because a hijacked agent only has the powers of its plane. The Agents Rule of Two says a session should hold at most two of three properties: [A] untrustworthy input, [B] sensitive data, [C] changing state or communicating externally 1. Mapping each plane against it shows where the damage stops.
Scroll horizontally to see all columns.
| Plane | [A] Untrusted input | [B] Sensitive data | [C] Changes state | If hijacked, the worst outcome |
|---|---|---|---|---|
| Execution, propose (L2) | Yes, in requests or copy | Scoped and masked | No | A bad draft that a person rejects |
| Execution, act (L3 or L4) | No | References only | Yes, through a service | A narrow action on an approved hash, or a bounded pause |
| Control | Yes, in requests | No | Routing only | Wasted runs and a noisy queue |
| Learning | Yes, in notes and samples | Masked samples, ledger views | Non-production only | A bad proposal that the owner declines |
| Oversight | Yes, in campaign names | Business aggregates | No | A misleading paragraph next to its evidence |
This limits damage and does not stop injection. Meta says the same of its rule: it reduces the severity of consequences, and it is not a sufficient defence alone 1. A hijacked agent still wastes time, and a persuasive false claim can still mislead a tired approver, which OWASP lists as ASI09 Human-Agent Trust Exploitation 28. A compromised plane is contained, not cured. ASI03 Identity & Privilege Abuse and ASI10 Rogue Agents remain the risks to test for 28.
What can a small team skip?
A small team can skip the separate agents and keep the separate powers. The Orchestrator, the Trainer and the VP Marketing agent are jobs, and a job can be a script, a meeting or a person. What matters is that no one thing does all of them.
Scroll horizontally to see all columns.
| Team situation | What to simplify | What never to drop |
|---|---|---|
| One or two rails | No Orchestrator: a shared queue and a human dispatcher | The ledger |
| A workflow engine already in use | Make the Orchestrator a routing table on that engine | Tool scopes |
| No ML team | The Trainer becomes a monthly review and a script that reruns tests | The approval gate |
| One marketing leader across functions | One person holds oversight, using a shared calendar and reports | The rule that an approver is not the requester |
Anthropic's advice is to use the simplest solution and add complexity only when it helps, noting that agents carry more cost and can compound errors 9. That applies here. Four planes describe a separation of powers, and they do not require four more models.
How do designs collapse back together?
Designs collapse when a convenient exception gives one agent a second power. Each pattern below sounds reasonable in the meeting where it is proposed.
Scroll horizontally to see all columns.
| Pattern | The reason given | How to spot it |
|---|---|---|
| The Orchestrator gets customer data | "For context, to route better" | A profile or row-level tool appears on the routing rail |
| The VP Marketing agent gets a write tool | "To save a click" | Any execute entry on a read-only rail |
| The Trainer auto-applies fixes | "They passed the tests" | A rail version changes with no owner decision in the ledger |
| Several agents share one service account | "Easier to manage" | The ledger cannot tell which agent acted, so one identity makes many calls |
| One supervisor LLM holds every tool | "Simpler architecture" | One session holds all three Rule of Two properties |
The last pattern deserves a fair hearing. For read-only, exploratory work, a single capable agent may be the right design. The test is whether it can change state. Once it can, split it. The boundary architecture patterns and the AI governance policy template give the supporting controls, and a rail card records the result for each agent.
Checklist for an AI agent control plane
- The duties matrix is filled for every agent and role you run.
- Each cell names the system that enforces it.
- No agent reads customer data and also routes work.
- No agent can approve, and no approver can approve their own request.
- Rail and routing changes go through change control with a person.
- Every agent has its own identity, so the ledger can tell them apart.
- One append-only ledger, written outside the agents, covers all planes.
- You review the matrix after each new agent or tool, looking for collapse.
Browse use casesFunction playbooksAgent roster
FAQ
What is an AI agent control plane?
An AI agent control plane is the layer that governs how agents are identified, routed, limited and stopped. Vendors often use the term for a registry, policy store and gateway. On customer data, it should also separate duties, so that the agent routing work, the one learning from it and the one overseeing it hold different powers.
Why separate agents instead of using one powerful agent?
One powerful agent is simpler, and for read-only exploration it can be right. Once it can change state, a single injected instruction reaches every tool and all the data it holds. Separation limits what a hijacked or mistaken agent can do, and it keeps the audit trail readable. The cost is more parts to run, so separate only what you need.
How does separation of duties apply to AI agents?
It applies as it does to people: nobody holds a pair of powers that lets them bypass a check. An agent that proposes cannot approve. An approver cannot be the requester. Nothing that reads customer data also routes work. Enforce each rule in a system that refuses the action, because an instruction in a prompt is not a control.
Do small teams need all of this?
No. Small teams need the separation, not the extra agents. One or two rails can run with a shared queue and a human dispatcher, a monthly review and one person holding oversight. Never drop the ledger, tool scopes, the approval gate, or the rule that an approver is not the requester.
Does this replace a vendor's agent governance tools?
No. Registries, gateways and identity products answer different questions, and this model sits on top of them. Use Agent Fabric, Entra Agent ID or similar tools to know which agents exist, what they may call and what they cost 35. Then use the matrix to decide which powers belong together, and let those tools help enforce it.
Sources
- Meta, Agents Rule of Two (31 October 2025)
- OWASP GenAI Security Project, Top 10 for Agentic Applications for 2026 (9 December 2025)
- MuleSoft, Agent Fabric
- Salesforce, Agent Fabric expansion (27 October 2026)
- Microsoft Learn, What is Microsoft Entra Agent ID?
- Microsoft Learn, What's new in Microsoft Entra Agent ID
- NIST NCCoE, concept paper on software and AI agent identity and authorization (draft, February 2026)
- Cycode, summary of the OWASP agentic risk names
- Anthropic, Building Effective Agents (19 December 2024)
Vendor status was checked on 1 November 2026 and moves quickly. Back to the AI agent rails hub. To test a duties matrix against your own agents and systems, request an architecture review.
Further reading
- Trainer agent — definition
- Whole-picture agent — definition
- AI Agent Orchestration Without Giving
- AI Agent Feedback Loop: How Teams
- AI Agent for CMOs: VP Marketing Agent
Published: · Updated:
Editorial dates describe content changes. Confirm current sources before making legal, security or purchasing decisions.