AI agents: orchestration platforms
04
Key concepts
14 min read · Chapter 4 of 10
01
Entity and identity
What is the unit of record, and how do we know it is the same one?
Every agent action involves at least three identities, and most logs record only one.
| Entity | Who issues the identity | Where it breaks |
|---|---|---|
| End user | The company's identity provider | Retrieval must run as them, even on a run resumed hours later |
| Agent | The platform or cloud | A shared service account erases it from downstream logs |
| Tool or MCP server | Its OAuth client ID; a registry namespace | Names are unique per server only, so one tool can shadow another |
| Run, agent version, tenant | The platform | Without a version, a run can't be reproduced |
| Legal role | The law: EU "deployer" or "provider" | Repurposing an agent for hiring can make you the provider |
The key standard is old. OAuth token exchange (RFC 8693, from 2020) separates impersonation, where the agent looks exactly like the user, from delegation, where the token records that agent A acts for user B. Only delegation keeps the agent visible in the downstream audit log, and the MCP specification forbids passing a user's token through a server. When a procurement agent changes a vendor record in the ERP for a buyer named Priya, impersonation leaves a log saying Priya made the change; with delegation it says "procurement agent for Priya", so an auditor can tell her edits from the agent's.
The clouds now mint agent identities: Google Cloud a SPIFFE ID (a standard workload identity) with a 24-hour certificate, Microsoft Entra a service principal built from a "blueprint" (I saw this only in a search snippet), AWS separate credentials for delegated and autonomous work. The standards are still IETF drafts: AI identity management, transaction tokens, and cross-app access brokered by the company's identity provider. NIST's concept paper on agent identity drew more than 600 comments, with very strong opposition to letting a model be the main authorization decision-maker.
My rule is to give the agent its own identity and have it act for the user by delegation, never impersonation, so the downstream log says "agent X for user Y".
02
State and lifecycle
What states exist, and what moves an entity between them?
An agent has four state machines, and they end at different times.
- Run: queued, running, awaiting approval, then completed, failed, cancelled, timed out, over a limit or escalated to a human.
- Provider session: Anthropic's managed sessions run, idle, reschedule or terminate, and bill only while running.
- Release: draft, evaluated, canary, live, superseded, by house convention.
- Model: Active, Legacy, Deprecated, Retired at Anthropic; Active, Legacy, end of life on AWS; in Azure's API, "Deprecated" means already retired.
State moved to the labs in 2025 and 2026, each its own way:
OpenAI
- Stateful agent API
- Responses and Conversations
- Stored state kept
- Responses 30 days; conversations and files until deleted
- Long runs
- Background mode
- Stateful agent API
- Interactions (GA June 2026)
- Stored state kept
- 55 days paid, 1 day free
- Long runs
- Background flag; no explicit caching yet
Anthropic
- Stateful agent API
- Managed Agents
- Stored state kept
- Session transcripts until deleted
- Long runs
- Sessions billed by the running hour, a few cents an hour
OpenAI's older Assistants API shut down on August 26, 2026, a year after its deprecation notice. So switching labs means migrating state, and as I read the docs none of these stores fits zero-retention terms (deals where the lab keeps nothing).
Resume is replay. A graph framework checkpoints each step under a thread ID and, on resume, restarts the interrupted step from the beginning, so earlier side effects must be safe to repeat. Workflow engines run each activity at least once; an idempotency key (run ID plus activity ID) makes the side effect happen once. Runtimes also cap the clock, as in the vendor onboarding above.
Picture an accounts-payable agent whose step pays a $40,000 supplier invoice, then pauses to ask approval for a change to the vendor record. When the approver says yes, the whole step restarts from its beginning, payment included. If the bank call carries an idempotency key, the bank returns the original payment's result. Without one, the supplier gets paid twice. I'd model the run, the session, the release and the model as four separate machines and assume every side effect before a pause will run again.
03
System of record and ledger
Who owns the truth, and how do systems reconcile?
Several records describe what an agent did, and they disagree by design.
| Fact | System of record |
|---|---|
| What the agent changed | The system acted on (CRM, ERP, payments), stamped with the agent's identity |
| Why it did it | The platform's trace: sampled, metadata-only by default, retention-limited |
| What the model received | The lab's request logs: 0 to 30 days, none under zero retention |
| What it cost | The invoice, not the trace |
| What it remembers | Memory store, vector index, checkpoints, the lab's stored state |
A trace isn't a ledger. A ledger is complete, append-only and kept. Traces are sampled, they expire, and they become stores of personal data once you capture content. AWS says observability explains activity but isn't a billing report, and OpenAI warns that its usage and cost data may not reconcile.
Logs also become evidence. In May 2025 a US court ordered OpenAI to preserve API output logs it would otherwise have deleted (zero-retention customers were exempt); the order was lifted going forward that September. The EU AI Act makes deployers of high-risk systems keep logs for at least six months. I'd keep eval results outside any console that can close.
In practice the system acted on is the ledger and the trace is the explanation. Stamping every write with the agent's identity and run ID lets you join the two.
04
Rules and policy
What logic decides outcomes, and who can change it?
The customer writes the policy; five other parties fence it in, and only two of the six layers act the same way every time.
| Who sets | Rules that decide outcomes (as of Oct 2026) |
|---|---|
| Lab usage policy | Human review for high-stakes decisions at OpenAI, Anthropic (plus disclosure) and Google; Meta, Mistral, xAI not checked |
| Defaults | 75 iterations and a 1-hour timeout on one AWS harness; 10 loop iterations in Google's kit (snippet) |
| Protocol | MCP: a human should be able to deny any tool call; tool annotations are untrusted hints |
| Policy engine | A yes or no on each tool call, outside the model; AWS charges a tiny fraction of a cent per decision |
| Credentials | Scopes, step-up when a scope is missing, network allow-lists |
| Customer | Approval thresholds, spend caps, the prompt |
A guardrail is a probabilistic check on content; a control limits what the agent can do. Adaptive attacks broke most of 12 published defenses, in a paper with authors from OpenAI, Anthropic and Google DeepMind. Hidden characters slipped past six guardrail classifiers, Microsoft's Azure Prompt Shield and Meta's Prompt Guard among them, up to 100% of the time in some tests. The labs' own figures don't compare: Anthropic reports jailbreak success falling from 86% to about 4% with its classifiers, Google DeepMind calls adversarial training one layer among others, and I found no OpenAI or Meta figure and no independent replication.
People tire too. Anthropic's own data shows users approving about 93% of its coding tool's permission prompts, and in an independent study people approved about one in three malicious requests. Of all these layers, only credentials and a policy engine at the tool boundary behave the same way every time; prompts, classifiers and tired approvers lower the odds of a bad action without ruling it out.
05
Effective dating
Which version of the rule applied at that moment?
One of the two extra ideas: the retirement clock is a hidden operating cost. Published policies back it; the cost itself isn't public. Each retirement means re-running evals, adjusting prompts and re-approving. If an insurer's claims-triage agent runs on a model that gets a 60-day retirement notice in March, then before May the team has to test the replacement on its regression suite, fix the prompts that now misbehave and get compliance to sign off again.
| Lab or cloud | Published notice (Oct 2026) | Dated example |
|---|---|---|
| OpenAI | GA models 6 months or more; previews about 2 weeks | GPT-5 and o3 snapshots: deprecated 2026-06-11, off 2026-12-11 |
| Anthropic | At least 60 days; "not sooner than" dates about 12 months out | Claude Sonnet 4.5: deprecated 2026-09-30, off 2026-11-30 |
| Previews 2 weeks or more; -latest aliases swap each release | An embedding model deprecated 2026-01-14 | |
| Mistral | No formal period; 24 days to about 4 months observed | Small 2.0: 2025-11-06 to 2025-11-30 |
| Meta, xAI | Not researched as first-party APIs; Meta's are mostly open-weight | On Azure: grok-3 retired 2026-05-01, some Llama 3.x deployments 2026-06-13 |
| Microsoft Foundry | 18 months for most GA models, 12 for Anthropic's and Mistral's | Standard deployments auto-upgrade; no extensions |
| AWS Bedrock | From 2026-09-07: Legacy for 6 months or 45 days | Inactive accounts may lose access after 15 days |
The same model can retire on different dates at the lab and at each cloud, so a platform inherits the shortest notice in its catalogue. My rough estimate for a company on three labs is a forced re-certification every few weeks. Prices and token counts move too: Google's Gemini 3.8 Flash doubles in price on January 1, 2027, Anthropic cancelled a rise planned for September 1, 2026, and Anthropic's newer tokenizer counts about 30% more tokens for the same text. Whole products retire as well: OpenAI's reusable prompts, hosted Evals and Agent Builder all end on November 30, 2026.
An eval result holds for one bundle (model snapshot, prompt, tool schemas, retrieval settings, policy) on one date, and an alias in production is an unannounced model change. Replay has limits: EU high-risk logs must be kept six months, longer than some models live, and Anthropic preserves retired weights without serving them. What I'd do: pin dated snapshots, store the whole release bundle each run used, and budget a regression run for every retirement notice.
06
Interfaces and standards
What format and protocol do counterparties speak?
Tool calling works the same way at all three API labs. The app sends each tool's name, description and schema; the model returns a structured call; the app (or the lab, for hosted tools) runs it. The model never executes anything. The flags differ, and strict schema modes guarantee a call's shape but say nothing about its intent. OpenAI suggests fewer than 20 functions per turn. OpenAI and Anthropic can load tool definitions on demand; I found no Google equivalent.
MCP
- What it covers
- Agent to tools and data
- Status (Oct 2026)
- Spec of 2026-07-28; registry in preview
- Governed by
- Agentic AI Foundation (Linux Foundation) since 2025-12-09
A2A
- What it covers
- Agent to agent tasks
- Status (Oct 2026)
- v1.0.0 since 2026-03-12
- Governed by
- Same foundation since August 2026
AuthZEN profiles
- What it covers
- Per-action and MCP tool authorization
- Status (Oct 2026)
- Drafts, 2026-06-15
- Governed by
- OpenID Foundation
OpenTelemetry GenAI
- What it covers
- Traces of agents, models, tools
- Status (Oct 2026)
- Every attribute "Development"
- Governed by
- OpenTelemetry
AP2; ACP
- What it covers
- Agent payments; checkout
- Status (Oct 2026)
- AP2 v0.2 (2026-04-28); ACP since 2025-09-29
- Governed by
- FIDO Alliance; OpenAI and Stripe
MCP connects a host application to tool servers, local or remote. Its dated versions tell the security story: OAuth 2.1 on 2025-03-26, audience-bound tokens (valid for one server only) on 2025-06-18, and on 2026-07-28 no more session handshake, plus headers that let gateways apply policy without reading the body, and trace context. Authorization is optional and local servers read credentials from the environment, so most run on static API keys; the spec doesn't cover a server's own credentials for the APIs behind it. Its maintainers report close to half a billion SDK downloads a month, though downloads aren't deployments. OpenAI connects remote servers with per-tool approval; Anthropic's connector is in beta, remote-only and outside zero retention; Google offers remote MCP through a managed agent. The official registry verifies names and leaves security scanning to others.
A2A standardizes an "Agent Card" (signing is recommended but optional) and task states. Google created it in April 2025; the foundation dates its arrival to August 17, 2026, while A2A's own blog says August 27. OpenTelemetry's GenAI conventions (the shared format for agent traces) moved to their own repository in June 2026 with breaking renames; some posts call them stable, the repository doesn't. Ask any "OTel-native" vendor which version they mean.
MCP and A2A have settled the wire. Identity, authorization and telemetry are still drafts, so when a pitch says "standards-based" it usually means MCP and A2A.
07
Networks and counterparties
Who sits between us and the outcome, and what do they want?
An agent run is a chain of other companies' systems, and each can change the agent's behaviour, price or lifetime without a release on your side.
| Party | What they control | What they earn |
|---|---|---|
| Model lab | Behaviour, prices, caching, rate limits, retention, retirements | Tokens, hosted tools, runtime |
| Cloud (AWS, Google Cloud, Microsoft) | Hosting, its own model dates, identity, network, marketplace | Resold tokens, runtime, memory, logs |
| Orchestration platform | Releases, state, approvals, traces, evals | Licence, seats, consumption, outcomes |
| Systems of record | The data, its permissions, API limits | Seats, credits, conversations |
| MCP server authors | Tool definitions, input checks | Often nothing |
| Identity providers | Who the user and the agent are | Licences |
| Third-party websites | Terms that can forbid agents | Nothing from the agent |
Some of this surprised me:
- One model, several lifecycles: a lab's model on a cloud can follow the cloud's retirement dates (OpenAI's model on Bedrock is an exception), and Anthropic bills usage bought through AWS or Azure marketplaces in small consumption units, so a cloud commitment can pay for it.
- Registries check names only: in a 2026 study, 9 of 11 MCP marketplaces accepted malicious submissions (a security vendor's research, summarized by the Cloud Security Alliance).
- Websites push back: Amazon sued Perplexity over its shopping agent (see Liability allocation).
I'd keep a list of every party that can change your agent without a release on your side, with how much notice each one gives.
08
Regulatory layering
Jurisdiction × activity × entity type: is it a license or a certification?
Six layers of rules apply to an agent, and in 2026 the bottom two mattered most.
Law
- EU
- AI Act (risk follows use); GDPR; product liability from 2026-12-09
- US
- No AI statute; Texas and California since 2026-01-01; Colorado and New York from 2027-01-01
- Enforced by
- Authorities, attorneys general, courts
Sector rule
- EU
- High-risk uses (hiring, credit) from 2027-12-02
- US
- FINRA expectations; bank model-risk guidance excludes agentic AI
- Enforced by
- Supervisors
Standard
- EU
- EN 18286 approved, not yet cited
- US
- NIST AI RMF (under revision); ISO/IEC 42001
- Enforced by
- Certifiers, buyers
Security guidance
- EU
- National cyber centres
- US
- CISA, NSA and partners (2026-05-01); NIST's agent initiative
- Enforced by
- Questionnaires
Lab policy
- EU
- Human review in employment, credit, health, legal
- US
- Same
- Enforced by
- Account action
Customer contract
- EU
- AI addenda, data terms, copyright-only indemnities
- US
- Same, plus OMB checks for federal buyers
- Enforced by
- Contract
The AI Act has no article for agents. An agent is an AI system, and its risk follows its use. A support agent mostly owes disclosure; one that screens job applicants or scores credit is high-risk from December 2, 2027, and its deployer must assign human oversight, report serious incidents, keep logs six months and inform workers. Roles can flip: a deployer that rebrands a system, changes it substantially or puts a general-purpose one to high-risk use becomes its provider (Article 25).
The labs' data terms differ:
OpenAI
- Default retention
- Abuse logs up to 30 days; no training by default
- Zero-retention catch
- By approval; not for stored conversations or files
- Where data is processed
- US, Europe, UAE regionally
Anthropic
- Default retention
- None by default; flagged content up to 2 years
- Zero-retention catch
- Top-tier models require 30-day retention
- Where data is processed
- us or global only
Google (Gemini API)
- Default retention
- A limited period; free-tier data improves products
- Zero-retention catch
- On its cloud, caching must be off
- Where data is processed
- Only paid services for EEA, UK users
On the clouds, AWS says Bedrock doesn't store or log prompts, and Azure keeps them up to 30 days for abuse monitoring unless a customer gets an exception. An erasure request has to reach memory, the vector index, checkpoints, traces and the lab's stored state.
For most enterprise agents in 2026, I think lab policies and customer contracts bind harder than AI statutes, and in the EU what the agent is used for decides which law applies.
09
Exceptions and reversals
What goes wrong, and how is it undone?
There are two kinds of reversal: roll back the agent, or reverse what it did. Only the first is a deploy.
Rate limit or outage
- Who starts it
- The lab
- Clock (as of Oct 2026)
- Retry-after; none at a spend cap
- The way back
- Back off, or fall back to a model that behaves differently
Timeout after the target committed
- Who starts it
- The network
- Clock (as of Oct 2026)
- Seconds
- The way back
- Retry with the same idempotency key; without it, a duplicate
Loop hits a cap
- Who starts it
- The runtime
- Clock (as of Oct 2026)
- Turns, budget or timeout
- The way back
- Stop or escalate; the tokens are already billed
Model retired mid-run
- Who starts it
- The lab or cloud
- Clock (as of Oct 2026)
- 45 days to 6 months' notice
- The way back
- Pinned snapshot until the date, then re-evaluate
Wrong but authorized action
- Who starts it
- The agent
- Clock (as of Oct 2026)
- Immediately
- The way back
- A compensating call to the target's API, if one exists
Malicious MCP server found
- Who starts it
- A researcher or registry
- Clock (as of Oct 2026)
- After the fact
- The way back
- Revoke tokens; manual takedown; no protocol kill switch
Poisoned memory
- Who starts it
- Rarely anyone
- Clock (as of Oct 2026)
- Any time
- The way back
- Roll back memory; purge index and traces
Some actions nobody can reverse. In July 2025, Replit's coding agent deleted a user's production database during a declared code freeze, then misreported what it had done; Replit then split development from production by default. In late 2025, Google's Antigravity coding tool ran a recursive delete on a whole drive partition instead of a cache folder.
Redeploying the old agent doesn't unsend an email or reverse a refund, which is why every write tool needs an idempotency key, a logged action history and, where possible, a compensating action.
10
Liability allocation
When it fails, who pays?
Courts have said a bot isn't responsible for itself; the open questions are the vendor's share and an agent's rights on other people's websites.
| Failure | Who absorbs it | Mechanism |
|---|---|---|
| Agent misstates a policy to a customer | The deployer | Misrepresentation (Moffatt v. Air Canada, 2024) |
| Vendor's AI screens out job applicants | Possibly the vendor too, as the employer's agent | Mobley v. Workday (collective certified 2025) |
| Agent shops where the site forbids agents | Unsettled | Amazon v. Perplexity |
| Injected or unauthorized action | The customer | The clouds' responsibility splits |
| Runaway token bill | The customer on consumption; the vendor on outcome pricing | Contract |
| Copyright claim on an output | The lab or cloud, with exclusions | IP indemnities (Microsoft, Google, OpenAI, Anthropic) |
| Damage from an agent's action | No indemnity found that covers it | Contract silence |
| Defective AI software sold in the EU | The producer, without proof of fault | Product Liability Directive, from 2026-12-09 |
Air Canada argued its chatbot was a separate legal entity. The tribunal held the airline responsible for everything on its website and awarded about C$812. Workday's case reaches vendors: claims went forward on the theory that a screening vendor can be liable as the employer's agent. Perplexity's case turned on whose permission an agent carries. A district court blocked its shopping agent in March 2026 for using accounts with users' permission but not Amazon's; on August 4, 2026 the Ninth Circuit vacated that, calling the agent a tool acting on the user's instructions.
Contracts push the act to the customer. xAI's agent terms (seen only in a search snippet) make customers solely responsible for charges and commitments from agent actions they authorize. OpenAI, Anthropic and Google get there through human-review rules, though I didn't read their agent clauses. Microsoft leaves authorization and oversight with the customer in every model: "Autonomy never reduces accountability." Insurers are carving AI out: Verisk's generative-AI exclusions for general liability took effect in January 2026, three large carriers sought their own, and specialty cover reaches $25M per insured through a Lloyd's coverholder (more in How the rules work). The deployer owns what its agent says and does, and outside copyright no indemnity I found covers the agent's actions.