AI Agent Control Checklists
Tiered controls for identity, secrets and egress, audit-event completeness, evidence portability, and exit — with the inspection that satisfies each one.
Reference architectures for production agent systems, selected from client constraints and tested behaviour rather than from a diagram or a vendor feature list.
This guide helps a Forward Deployed Engineer, solution architect, technical owner, operations owner, or assurance reviewer choose a production architecture shape for one approved workflow. It covers single-agent, multi-agent/orchestrated, human-in-the-loop, and retrieval-grounded patterns.
Microsoft's architecture guidance places direct model calls, single agents with tools, and multi-agent orchestration on a complexity spectrum. It recommends the lowest level that reliably meets the requirement because coordination adds cost, latency, and failure modes [R302]. This guide uses that principle as its default:
These are reference shapes, not deployable products. Each must be instantiated with client-specific identity, network, data, recovery, assurance, and operating decisions before build. NIST's AI RMF places context, human roles, measurement, and ongoing risk response inside one iterative Govern-Map-Measure-Manage lifecycle; the architecture must expose the boundaries and evidence those activities depend on rather than treating assurance as a later overlay [R301].
The evidence language follows the shared glossary. Vendor-documented means the supplier documents a capability. Independently anchored means an open specification defines the interface, not that a supplier implementation is complete or conformant. Unknown means the reviewed sources do not establish the claim.
This guide cites the Model Context Protocol specification dated 2026-07-28, which the official documentation index identified as the current specification when retrieved on 2026-08-21 [R304]. It does not silently inherit R1's superseded 2025-11-25 citation. The A2A specification page identifies 1.0.0 as its latest released version, so this guide uses that exact version rather than inferring a version from the unversioned landing page [R305].
OpenTelemetry's generative-AI agent span conventions are marked Development. They can align field names and trace structure, but they are not a stable production contract; pin the schema version used by an implementation and test export compatibility [R306].
User or system
|
v
[Entry boundary] -> [Identity and authorization] -> [Orchestrator or agent]
| | |
v v v
[State] [Tools] [Knowledge]
\ | /
v v v
[Telemetry stream]
|
v
[Evidence pointers]
| Boundary | Architecture decision | Minimum record |
|---|---|---|
| Entry | Channel, caller, request schema, rate limit, idempotency key, and rejection path | Request ID, caller identity, input version, accepted/rejected outcome |
| Identity | Human, workload, delegated-user, and downstream identities; credential audience and lifetime | Principal, delegated actor when present, target audience, authorization outcome |
| Orchestration | Direct call, one agent, deterministic workflow, or multi-agent coordinator | Architecture version, route, agent/workflow version, start/end state |
| State | Conversation, task, checkpoint, approval, and long-term memory locations and ownership | State key, version, classification, writer, retention pointer |
| Tool gateway | Allowed tools, argument validation, destination policy, timeout, retry, and idempotency | Tool name/version, validated arguments or hash, destination, result, duration |
| Knowledge | Ingestion lineage, index version, retrieval authorization, result metadata | Corpus/index version, query identity, retrieved item IDs, scores, source pointers |
| Approval | Durable pause and all terminal or resumable paths | Request version, decision, approver identity, time, reason, resumed version |
| Telemetry | Trace propagation across model, agent, retrieval, tool, approval, and remote-agent calls | Trace/span IDs, operation, component version, latency, usage, error |
| Evidence | Stable pointers from execution records to retained artifacts | Correlation ID, artifact URI, integrity value, retention class |
| Failure | Timeout, retry, cancellation, compensation, partial result, dead-letter, and escalation path | Failure class, attempt, final disposition, affected state, owner |
The Azure baseline Foundry chat architecture is one vendor example of this separation: managed identity and private endpoints form access boundaries; Cosmos DB holds conversation state; Search provides grounding; Firewall inspects external tool egress; and Application Insights receives telemetry [R307]. Treat the pattern as vendor-documented and re-map every component when using another runtime.
MCP 2026-07-28 independently anchors a host-client-server tool boundary. The host coordinates clients and enforces consent and security policy; each client communicates with one server; servers remain focused and cannot see other servers or the full conversation [R304]. MCP does not supply the client's authorization policy, tool allow-list, recovery behavior, or acceptance evidence.
[Request]
|
v
[Input validation] -> [Single agent loop] <-> [Task/conversation state]
| |
| +-> [Knowledge retrieval, optional]
v
[Tool gateway]
|
v
[Approved destinations]
Every step -> [Trace + evidence pointers]
Terminal outcomes -> complete | fail | cancel | escalate
Use this shape when one domain owner can define the goal, the tool set is small enough to review, and one agent can keep the necessary context without overloaded instructions. Microsoft's guidance calls a single agent with tools the usual enterprise default and specifically recommends iteration limits to guard against infinite tool-call loops [R302].
| Contract element | Required architecture choice |
|---|---|
| Input | Typed request, caller identity, task ID, data classification, and idempotency key |
| Loop | Maximum model turns, tool calls, elapsed time, and spend; explicit stop reason |
| State | One writer for task state; versioned checkpoint before an irreversible action |
| Tools | Curated gateway; least-privilege identity; schema validation; destination allow-list |
| Output | Typed result, source/evidence pointers, confidence or unknown state, and disposition |
| Failure | Retry only classified transient failures; otherwise fail, cancel, or escalate |
Foundry's runtime model separates a versioned agent definition, a persisted conversation, and one response as the unit of execution [R308]. That separation is useful beyond Foundry: bind every run to an immutable agent configuration, keep state ownership explicit, and record each execution attempt independently.
The detailed implementation of memory, state, tool design, and failure handling belongs to R4. R3 specifies where those boundaries sit, what crosses them, and what evidence the architecture must expose.
+-> [Agent A] -> [Result A] -+
[Request] -> [Coordinator] -> [Agent B] -> [Result B] ---> [Aggregator] -> [Outcome]
| +-> [Agent C] -> [Result C] -+
|
+-> [Shared task ledger, not shared hidden memory]
Each edge: caller identity | task ID | schema | timeout | retry | evidence pointer
Microsoft documents five orchestration patterns: sequential, concurrent, group chat, handoff, and magentic. Sequential execution is a predefined pipeline. Concurrent execution fans out independent work and may aggregate results. Group chat uses a manager to choose speakers. Handoff transfers control dynamically. Magentic uses a manager-led plan and progress ledger [R302]. These are vendor-documented design patterns, not proof that any runtime implements them safely.
| Pattern | Use when | Architecture obligation | Avoid when |
|---|---|---|---|
| Sequential | Each stage depends on the previous output | Validate every handoff; stop downstream work on invalid input | Work can run independently or needs backtracking |
| Concurrent | Independent perspectives or tasks can run in parallel | Define fan-out limit, deadline, conflict rule, and aggregation policy | Agents contend for shared state or no conflict rule exists |
| Group chat | Iterative specialist discussion is itself useful | Bound turns, speaker selection, shared context, and termination | A deterministic workflow can produce the result |
| Handoff | The next specialist depends on runtime context | Validate target capability, transfer only required context, preserve task ownership | The route is fixed or transfer can lose accountability |
| Magentic | Complex work needs replanning against progress | Persist plan/progress ledgers, bound replans, and define completion evidence | The workflow can be decomposed deterministically |
A2A 1.0.0 provides a portable boundary for opaque remote agents: Agent Cards declare capabilities and authentication requirements; messages can create stateful tasks; task status, streaming, polling, cancellation, and push notifications support long-running work [R305]. It does not define the coordinator's decomposition, shared-state conflict policy, aggregation rule, or compensation logic. Keep those decisions in the architecture.
A2A agents collaborate without sharing internal state, memory, or tools; the protocol exchanges declared messages, tasks, status, and artifacts across the boundary [R305]. Use that opacity as the default even inside one platform. If agents share a store, expose it as a separately owned state service with concurrency and authorization rules.
[Agent proposes action]
|
v
[Persist request + version] -> [Approval queue] -> [Authorized decision]
| | |
| +-> (a) +-> (b)
| |
+---------------- approved same version ----------+
|
v
[Resume execution]
(a) timeout/escalate
(b) deny/cancel/supersede
Temporal's vendor-documented approval pattern blocks a durable workflow until a signal carries the decision, approver, comments, and timestamp, or a durable timeout follows the rejection or escalation path [R303]. A2A 1.0.0 independently defines interrupted INPUT_REQUIRED and AUTH_REQUIRED task states and continuation on the same task, but it does not define approval authority, approval expiry, or version binding [R305].
| Field or path | Architecture requirement |
|---|---|
| Request identity | Stable task, action, and approval-request IDs |
| Reviewed version | Agent, prompt, model, tool set, policy, input, and proposed-action version or integrity value |
| Decision | Approve, deny, timeout, cancel, or supersede; never a nullable boolean |
| Actor | Authenticated human or service identity plus delegated authority reference |
| Reason | Structured reason code and optional comment |
| Timing | Requested, decided, expired, and resumed timestamps |
| Resume guard | Resume only if the current request matches the reviewed version and the decision remains valid |
| Evidence | Immutable decision event plus pointers to the reviewed request and resulting action |
The approval queue is a technical position, not a decision-rights model. R3 owns where the boundary sits, how pause/resume and timeout/denial paths behave, and the event contract emitted there. The AI and Agent Governance Framework (GOV1) owns who may decide, when an approval is required by risk tier or lifecycle gate, and restart authority. R3 references that authority and does not restate it.
R3 names the technical records and stable pointers the architecture must produce. The AI Agent Control Checklists (GOV3) own control outcomes and evidence sufficiency. GOV6 owns audit-pack structure, assembly, retention ownership, and assurance presentation. This guide defines neither a parallel control catalog nor an evidence-pack schema.
Ingestion plane
[Sources] -> [Classify + authorize] -> [Parse/chunk] -> [Embed/index]
| |
+---------- [Lineage + index version] ----+
Query plane
[User identity] -> [Query policy] -> [Authorized retrieval] -> [Rerank]
|
v
[Grounded generation]
|
v
[Answer + citations + evidence]
Azure AI Search documents full-text, vector, hybrid, and agentic retrieval over indexed and remote content, with index-time enrichment and document-level access-control options [R309]. Its security filter pattern also makes an important limitation explicit: a caller-supplied principal string in an OData filter is not authentication or authorization. The application must establish identity, and production designs should prefer supported ACL enforcement where available [R310].
Answer synthesis can return natural-language answers with citations to retrieved sources, but the feature and its 2026-05-01-preview API are Preview and not recommended for production workloads [R311]. Therefore citations are an architecture requirement to implement and test, not a reason to assume one vendor feature is production-ready.
R3 specifies the evidence each retrieval shape must produce. R5 owns dataset construction, scoring methods, thresholds, and regression practice.
A single agent can use retrieval and pause for approval. A sequential workflow can retrieve before each stage and pause before one protected transition. A concurrent system can give each specialist a separately authorized retrieval scope. Composition is valid only when the combined architecture still has one accountable task owner and explicit terminal states.
| Composition | Required rule |
|---|---|
| Single agent + retrieval | One query identity; source pointers flow into the final result |
| Single agent + approval | Persist loop state before pause; resume the reviewed version only |
| Multi-agent + retrieval | Authorize per child agent and preserve corpus/index version per result |
| Multi-agent + approval | Approve a named aggregate or action, not an unspecified conversation |
| Retrieval + approval | Give the approver the cited source versions used to form the proposed action |
| All patterns | Carry one root task ID through child tasks, retrieval, decision, tools, and evidence |
MCP and A2A are complementary boundaries rather than competing orchestration strategies: MCP connects a host to focused context and tool servers, while A2A connects opaque agents through declared capabilities and task operations [R304][R305]. Neither protocol chooses the system's approval authority, retrieval policy, aggregation rule, or recovery objective.
| Question | If yes | If no |
|---|---|---|
| Can one bounded model call meet acceptance criteria? | Use a direct call | Continue |
| Does one agent need dynamic tools or iteration? | Use the single-agent shape | Keep deterministic application logic |
| Must answers use governed knowledge? | Add retrieval | Do not add an index by default |
| Must an authorized person decide before a transition? | Add durable human-in-the-loop | Keep non-blocking review outside execution |
| Is specialization, parallelism, distinct identity, or dynamic delegation required? | Evaluate a multi-agent pattern | Keep one agent |
| Can state ownership, partial failure, and aggregation be specified? | Proceed to proof of value | Do not adopt multi-agent orchestration |
Record one outcome:
No weighted score can offset a missing identity boundary, unauthorized retrieval, unbounded loop, unrecoverable approval state, or undefined partial-failure outcome.
| Field | Entry |
|---|---|
| Workflow and owner | |
| Selected shape | Direct, single-agent, multi-agent pattern, approval, retrieval, or composition |
| Requirement forcing each component | |
| Runtime and environment | |
| Entry and identity boundaries | |
| State owner and checkpoint boundary | |
| Tool and remote-agent contracts | |
| Knowledge and authorization boundary | |
| Approval boundary and GOV1 authority reference | |
| Telemetry destination and schema version | |
| Failure, cancellation, and recovery paths | |
| Evidence pointers and GOV3 control references | |
| Open unknowns and proof-of-value tests | |
| Decision, owner, and review date |
| Field | Entry |
|---|---|
| Architecture version | |
| Environment and dataset version | |
| Test and expected result | |
| Observed result | |
| Trace and artifact pointers | |
| Unknowns or deviations | |
| Owner and timestamp | |
| Disposition | Pass, fail, or retest |
The division of responsibilities among the runtime frameworks is:
The cross-track split is:
This guide deliberately excludes runtime ranking or vendor selection; detailed agent, tool, memory, and failure implementation (R4); evaluation methodology (R5); monitoring operations (R6); cost and reliability control (R7); governance or security control catalogs (GOV1-GOV3); decision rights (GOV1); audit evidence-pack design (GOV6); and regulatory conclusions.
The references below identify the external sources cited in this framework. Responsibility boundaries with adjacent frameworks are described above.
This document carries 20 bracketed citation markers drawn from
11 registered sources. A marker such as
[R301] identifies a row in the document's source
register, which records the external work each claim rests on.
The registers are not yet published on this site, so the markers do not resolve to a link here. The library's own rule is that a claim whose source is not registered does not pass review. Ask us for the register behind any marker and we will send it.
The full text above is free and needs no email. The formatted document is also available to download directly.
Tiered controls for identity, secrets and egress, audit-event completeness, evidence portability, and exit — with the inspection that satisfies each one.
The threats a production agent is exposed to, the control that answers each one, and the evidence that demonstrates the control actually holds.
Who may approve, change, operate, suspend and retire an agent — through which lifecycle gates, with which registry record and which retained evidence.
What each enterprise agent runtime documents it supports, recorded as vendor-documented scope rather than as a recommendation.
All five frameworks in one place, published in full and free to read without an email.
The frameworks and their document downloads are free, with no email required. If you want help applying the method to your system, leave an email for an engineering conversation.
We review your enquiry and reply by email. No commitment to a paid project; scope and terms are agreed before work begins.
Prefer email? dev@alpha-ai.dev