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 rails

Who 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.

LayerExampleQuestion it answersQuestion it leaves open
Registry and gatewayMuleSoft Agent Fabric, which Salesforce calls its "AI control plane", with an Agent Registry, AI Gateway and generally available kill switch 34Which agents exist, what policy applies, what they costWhich powers must never sit in one agent
Agent identityMicrosoft Entra Agent ID, now generally available, with registry experiences converging under Microsoft Agent 365 56Who is this agent, and what may it call?What it should be allowed to do for this job
Standards workNIST NCCoE concept paper (February 2026), asking how to identify and authorise agents, delegate authority and log actions in a tamper-proof way 7How identity standards might applyYour own allocation of duties
Separation of dutiesYour design, set out belowWho may read, propose, approve, execute, change and stopNone, 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.

PlaneWhoJobCannot do
ExecutionFunction agents, such as the Segment Drafter and the Audience Sync StewardOne job each, within one railRoute work, change rails or teach themselves
ControlThe OrchestratorRoute requests, hold the queue, broadcast a pauseRead customer data or approve anything
LearningThe TrainerTest agents, drill reviewers, propose rail changesApply a change to a production rail
OversightThe VP Marketing agentSee across functions and report to the VPAct 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.

PowerFunction agentOrchestratorTrainerVP Marketing agentRail ownerApprover
Read customer records in scopePer rail, maskedNoMasked samples onlyNoBy roleBy role
Read aggregatesPer railWork counts onlyYesYesYesYes
Read the ledgerOwn runsRouting metadataAll runs, masked payloadsAll runs, no payloadsYesOwn queue
ProposeYes, its jobNoTests and rail changesPrioritiesYesNo
ApproveNoNoNoNoNo, unless named on the cardYes, never own request
ExecuteOnly at L3 or L4Routing onlyNon-production tests onlyNoNoNo
Change a railNoNoNoNoYes, by change controlNo
Change the routing tableNoNoNoNoYes, by change controlNo
PauseItselfBroadcastRaise alertRaise alertYesYes

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.

PowerWhat enforces it
Read records and aggregatesData views and the tool allow-list
Read the ledgerLedger views with fields removed by role
ApproveAn approval service that binds to the payload hash and rejects the requester
ExecuteAn execution service with its own credentials, which the model never holds
Change a rail or the routing tableVersion control with required review, plus an alert on change
PauseGateway 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.

PlaneWhat it adds to the ledger
ExecutionTool calls, versions, output hashes, counts and rollback references
ControlCorrelation ID, request hash, route, confidence and state changes
LearningSet version, test results and proposals, with the owner's decision
OversightQuery 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.

  1. A marketer asks for an audience. The request enters as free text, and personal data is redacted.
  2. The Orchestrator routes it. A classifier picks a label from a fixed list, and the routing table names the segment rail.
  3. The Segment Drafter proposes. It returns a definition reference, a hash and an estimated count. It has no way to activate anything.
  4. Rule checks run. Consent, size and sensitive-attribute rules run outside the model, and a failure blocks the draft.
  5. A person approves. A named approver, who is not the requester, sees the diff and count. The approval binds to the hash.
  6. The execution service syncs. It re-checks consent, then acts with its own credentials. The Audience Sync Steward rail holds no profiles.
  7. The ledger records. Every step above sits under one correlation ID.
  8. 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.
  9. 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.
Separation of agent duties: /ai/rails/control-planeExecutionOrchestratorTrainerOversightIndependent audit ledger · limits enforced outside the model
Four horizontal planes stacked: execution, control, learning, oversight. One request drawn as a line passing through them. An audit ledger bar under all four. Labels show what crosses between planes: references and hashes, never records.

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.

Plane[A] Untrusted input[B] Sensitive data[C] Changes stateIf hijacked, the worst outcome
Execution, propose (L2)Yes, in requests or copyScoped and maskedNoA bad draft that a person rejects
Execution, act (L3 or L4)NoReferences onlyYes, through a serviceA narrow action on an approved hash, or a bounded pause
ControlYes, in requestsNoRouting onlyWasted runs and a noisy queue
LearningYes, in notes and samplesMasked samples, ledger viewsNon-production onlyA bad proposal that the owner declines
OversightYes, in campaign namesBusiness aggregatesNoA 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.

Team situationWhat to simplifyWhat never to drop
One or two railsNo Orchestrator: a shared queue and a human dispatcherThe ledger
A workflow engine already in useMake the Orchestrator a routing table on that engineTool scopes
No ML teamThe Trainer becomes a monthly review and a script that reruns testsThe approval gate
One marketing leader across functionsOne person holds oversight, using a shared calendar and reportsThe 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.

PatternThe reason givenHow 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

  1. Meta, Agents Rule of Two (31 October 2025)
  2. OWASP GenAI Security Project, Top 10 for Agentic Applications for 2026 (9 December 2025)
  3. MuleSoft, Agent Fabric
  4. Salesforce, Agent Fabric expansion (27 October 2026)
  5. Microsoft Learn, What is Microsoft Entra Agent ID?
  6. Microsoft Learn, What's new in Microsoft Entra Agent ID
  7. NIST NCCoE, concept paper on software and AI agent identity and authorization (draft, February 2026)
  8. Cycode, summary of the OWASP agentic risk names
  9. 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

Published: · Updated:

Editorial dates describe content changes. Confirm current sources before making legal, security or purchasing decisions.