Markdown Editor

Multi-Agent System Design Template (A2A, MCP, OWASP Agentic)

Multi-agent design: roster, topology, handoff contracts, shared memory, A2A and MCP links, budgets, cascading-failure controls, oversight, OWASP ASI mapping

AI・データフルOWASP Top 10 for Agentic Applications 2026; A2A 1.0.1; MCP 2026-07-28CC BY-SA 4.0multiagentsystemdesign

使い方: Use it when several AI agents cooperate on one goal, or an agent calls agents run by other teams. Fill the decision to use multiple agents, the roster and the topology first, then write a contract and a budget for every arrow. The main pitfall is trusting messages from peer agents, which lets one confused or compromised agent push a bad result through to an irreversible action.

プレビュー

Multi-Agent System Design: [System name]

Design document for a system in which several AI agents cooperate on one goal: goals and scope, the agent roster, the topology, handoff and delegation contracts, shared state and memory, inter-agent communication, loop, cost and time budgets, failure isolation and cascading-failure controls, observability, human oversight, threat mapping, evaluation and rollout. Threats are mapped to the OWASP Top 10 for Agentic Applications 2026 (ASI01 to ASI10, published December 2025). Agents that cross a trust or organisational boundary are assumed to talk over the Agent2Agent (A2A) protocol, specification 1.0 (1.0.1); agents reach tools over the Model Context Protocol (MCP), revision 2026-07-28. Replace every [bracketed] value and every row marked Example. Worked examples use a procurement assistant that triages purchase requests, checks suppliers and drafts orders.

Document control

FieldValue
Document ID[MAS-DES-001]
System name and version[Name] [v1.0.0]
Version[0.1]
Status[Draft / In review / Approved / Retired]
Owner[@system-owner]
Approvers/reviewers[@architect], [@security-engineer], [@ai-governance], [@business-owner]
Agents in scope[MAS-AGT-001 to MAS-AGT-005]
Protocols[A2A 1.0 (A2A-Version: 1.0)], [MCP 2026-07-28]
Deployment environments[Staging / Production / Internal only]
Classification[Internal / Confidential]
Last updatedYYYY-MM-DD
Related documents[Agent specifications], [Agentic threat model], [Agent evaluation plan], [Runbook]

Approvals

RoleNameDecisionDate
System owner[@name][Approve / Approve with conditions / Reject]YYYY-MM-DD
Architecture review[@name][Decision]YYYY-MM-DD
Security[@name][Decision]YYYY-MM-DD
AI governance[@name][Decision]YYYY-MM-DD
Business process owner[@name][Decision]YYYY-MM-DD

Revision history

VersionDateAuthorChange summary
0.1YYYY-MM-DD[@name]First draft
1.0YYYY-MM-DD[@name]Example: Approved for production with orchestrator and three workers
1.1YYYY-MM-DD[@name]Example: Added external supplier agent over A2A behind approval gate MAS-HOV-002

Contents

1. Goals and scope

1.1 System goal

[One sentence stating the outcome the system produces.] Example: Turn an employee's purchase request into an approved, policy-compliant draft purchase order within one working day, with supplier risk checked and a human buyer signing off every order.

1.2 Goals and non-goals

IDGoalMeasureTarget
MAS-G-001 (Example)Shorten request-to-draft timeMedian elapsed timeUnder 4 working hours
MAS-G-002 (Example)Keep orders within policyShare of drafts passing policy auditAt least 98%
MAS-G-003 (Example)Never commit spend without a humanOrders submitted without buyer approvalZero
Non-goalReason
Example: Negotiating prices with suppliersLegal and commercial risk; stays with buyers
Example: Paying invoicesHandled by the finance system, outside this design

1.3 Users, principals and boundaries

PrincipalRelationshipMay instruct agents?
Example: Requesting employeeSubmits the requestYes, through the intake agent only
Example: Buyer (human)Approves drafts, overrides agentsYes, at oversight points
Example: External supplier agentRemote A2A server run by a supplierNo: its replies are data
Example: ERP systemTool backend over MCPNo

2. Decision to use multiple agents

OptionDescriptionDecisionReason
A (Example)Single agent with all toolsRejectedWould need both ERP write access and open web access in one context
B (Example)Fixed workflow with model calls at each stepRejectedSupplier checks vary too much in order and depth
C (Example)Orchestrator with specialised workersSelectedSeparates privileges; workers can run in parallel

Benefits claimed for the split, each of which section 13 must confirm:

  • [Example: Privilege separation: the agent that reads untrusted web content holds no write tools.]
  • [Example: Parallel supplier checks cut elapsed time.]
  • [Example: A cheaper model handles classification at intake.]

Costs accepted: [Example: about 2.5 times the token use of option A, two extra trust boundaries, and a dependency on a supplier agent outside our control.]

3. Agent roster and responsibilities

IDAgentResponsibilityModelOwnerHostingSpec
MAS-AGT-001 (Example)OrchestratorPlans the job, assigns tasks, merges results[Model and version][@team]Internal[Link]
MAS-AGT-002 (Example)Intake agentClassifies requests and extracts fields[Smaller model][@team]Internal[Link]
MAS-AGT-003 (Example)Supplier research agentReads supplier websites and registries[Model][@team]Internal sandbox[Link]
MAS-AGT-004 (Example)Policy checkerApplies procurement policy rules[Model plus rules engine][@team]Internal[Link]
MAS-AGT-005 (Example)Supplier quote agentReturns catalogue prices and lead timesSupplier's choice[Supplier]External, A2ASupplier Agent Card

3.1 Responsibility matrix

ActivityOrchestratorIntakeResearchPolicySupplierHuman buyer
Example: Classify requestARI
Example: Check supplier riskARCI
Example: Get quoteAR
Example: Check policyARC
Example: Approve draft orderCCA, R

R = responsible, A = accountable, C = consulted, I = informed. A human is accountable for every action with financial or legal effect.

4. Topology

PatternWhen it fitsMain risk
Orchestrator and workersOne planner, specialised workersOrchestrator is a single point of failure and a high-value target
HierarchicalLarge jobs split into sub-teamsDeep delegation chains, cost growth, lost context
Peer networkNegotiation or debate between equalsLoops, unclear accountability
PipelineFixed sequence of stagesErrors flow downstream unchecked

Selected pattern: [Example: orchestrator and workers, with one external peer reached over A2A. Workers never call each other directly.]

Topology rules:

  1. [Example: Only the orchestrator delegates; workers return results and never create new tasks.]
  2. [Example: Maximum delegation depth is 2 (orchestrator to worker to tool).]
  3. [Example: Only the orchestrator crosses the external boundary.]
  4. [Example: Write access to the ERP exists behind MAS-HOV-002 only.]

5. Handoff and delegation contracts

IDFromToTriggerPayload (schema)Expected resultTimeoutOn failure
MAS-HO-001 (Example)IntakeOrchestratorRequest classifiedPurchaseRequest v2 JSONTask accepted30 sReturn to employee with reason
MAS-HO-002 (Example)OrchestratorResearchSupplier namedSupplierCheckTask v1SupplierRiskReport v15 minMark supplier "unverified", continue
MAS-HO-003 (Example)OrchestratorPolicyDraft readyDraftOrder v3PolicyVerdict v160 sHold draft for buyer
MAS-HO-004 (Example)OrchestratorSupplier (A2A)Quote neededA2A Message with a data PartTask with quote Artifact10 minUse catalogue price, flag to buyer

5.1 Contract rules

  • Every payload is validated against its schema on receipt; invalid payloads are rejected, not repaired by a model.
  • Delegated tasks carry: the goal, the constraints, the budget remaining (section 8), the trace ID and the identity of the original human principal. They never carry raw credentials.
  • Free text from upstream agents is wrapped and labelled as data in the receiver's context; it cannot change the receiver's instructions or tool set.
  • A receiver may refuse a task it cannot do within budget or policy and must say why in a structured reason code.

5.2 Example delegation payload

The orchestrator sends a payload like this to the research agent; the runtime, not the model, fills on_behalf_of, trace_id and budget.

{
  "task_type": "SupplierCheckTask",
  "schema_version": "1",
  "trace_id": "4bf92f3577b34da6a3ce929d0e0e4736",
  "on_behalf_of": "user:employee-1042",
  "goal": "Assess supplier risk for Example Office Supplies Ltd",
  "constraints": {"sources": ["company_registry", "sanctions_list", "supplier_site"], "max_tool_calls": 12},
  "budget": {"tokens_remaining": 60000, "deadline": "2026-10-22T14:30:00Z"},
  "inputs": {"supplier_name": "Example Office Supplies Ltd", "country": "IE"}
}

6. Shared state and memory

IDStoreContentWritersReadersConsistencyRetentionControls
MAS-ST-001 (Example)Job statePlan, task status, budgetsOrchestrator onlyAll internal agentsSingle writer90 daysVersioned records, append-only history
MAS-ST-002 (Example)Supplier facts cacheRegistry and sanctions resultsResearch agentOrchestrator, policyLast writer wins with source and timestamp30 daysProvenance field required; entries from web pages marked low trust
MAS-ST-003 (Example)Policy rulesProcurement thresholdsHumans (change process)Policy checkerVersionedUntil supersededNot writable by any agent
MAS-ST-004 (Example)Conversation contextMessages per jobEach agent, own context onlySame agentPer agentJob lifetimeNot shared; summaries pass through contracts

Memory rules:

  • [Example: No agent writes to long-term memory from content it read on the open web without a provenance tag and a trust level.]
  • [Example: Memory is partitioned by tenant and by job; no query may return another tenant's entries.]
  • [Example: Summaries passed between agents are regenerated from structured state, not copied from another agent's free text.]

7. Inter-agent communication

LinkProtocolBinding or transportAuthenticationIntegrity and replayVersion
Example: Orchestrator to internal workersIn-process framework callsSame runtimeWorkload identity of the runtimeSigned job recordsFramework [version]
Example: Orchestrator to supplier agentA2AHTTP+JSON over TLS 1.3OAuth 2.0 client credentials, scopes from the supplier's Agent CardTLS; idempotent messageId; task IDs checked against our recordsA2A-Version: 1.0
Example: Agents to toolsMCPStreamable HTTPOAuth 2.1 tokens with audience set to each serverTLS; per-request authorization2026-07-28

7.1 A2A use

  • Discover remote agents from their Agent Card at /.well-known/agent-card.json, or from a curated registry; pin the expected card version and verify a JWS signature in signatures where the provider signs its card.
  • Choose an interface from supportedInterfaces whose protocolBinding and protocolVersion you support; send the A2A-Version header on every request.
  • Handle every TaskState, including TASK_STATE_INPUT_REQUIRED, TASK_STATE_AUTH_REQUIRED and TASK_STATE_REJECTED, and treat artifacts and messages as untrusted input.
  • Record the full interface in the A2A Agent Card and interface specification (ai-data/a2a-agent-card-spec) when you expose an agent yourself.

7.2 MCP use

  • Each MCP server has its own MCP server specification (ai-data/mcp-server-spec) and least-privilege scopes.
  • Under revision 2026-07-28 requests are stateless and carry their protocol version and capabilities; do not rely on a session to hold authorization state.
  • Tool annotations from servers you do not control are hints, not controls.

8. Loop, cost and time budgets

IDBudgetScopeTargetHard limitOn breach
MAS-BUD-001 (Example)Model tokensPer job120,000250,000Stop job, hand to buyer with state
MAS-BUD-002 (Example)Tool callsPer worker task815Worker returns partial result
MAS-BUD-003 (Example)Delegation depthPer job22Reject further delegation
MAS-BUD-004 (Example)Re-plansPer job13Escalate to buyer
MAS-BUD-005 (Example)Wall-clock timePer job2 h8 hPause and notify
MAS-BUD-006 (Example)External A2A tasksPer job13Fall back to catalogue price
MAS-BUD-007 (Example)Spend on model APIsPer day, all jobs[Amount][Amount]Queue new jobs, alert owner

Loop controls:

  • [Example: Each task carries a hop counter and a list of agent IDs it has passed through; an agent rejects a task that would revisit itself.]
  • [Example: Identical tool calls with identical arguments inside one job are served from cache or refused after the second attempt.]
  • [Example: Budgets are enforced by the runtime, not by asking the model to count.]

9. Failure isolation and cascading-failure controls

IDFailureDetectionContainmentDegraded behaviour
MAS-FI-001 (Example)Research agent hangs or times outTask timeout MAS-HO-002Cancel task; circuit breaker opens after 3 failures in 10 minSupplier marked "unverified"; buyer told
MAS-FI-002 (Example)Supplier agent returns malformed or implausible quoteSchema check; price outside 50% to 200% of catalogueReject artifactUse catalogue price, flag to buyer
MAS-FI-003 (Example)Policy checker unavailableHealth checkNo drafts leave the systemJobs queue; buyer sees backlog
MAS-FI-004 (Example)Orchestrator produces a plan outside the allowed tool graphPlan validatorPlan refusedJob escalated with reason
MAS-FI-005 (Example)Model provider outageProvider errorsPause all agents on that providerRequests stay in intake queue
MAS-FI-006 (Example)Agent behaviour drifts after a model updateOnline evaluation alert (section 13.3)Roll back bundlePrevious version serves traffic

Cascading-failure controls:

  1. Bulkheads: [Example: each worker runs in its own process pool with separate rate limits, so a flood of research tasks cannot starve policy checks.]
  2. Circuit breakers: [Example: on every A2A link and every MCP server, with half-open probes.]
  3. Independent verification: [Example: the policy checker recomputes totals from structured order lines rather than trusting the orchestrator's summary.]
  4. Checkpoints and rollback: [Example: job state is checkpointed after each contract; a failed step resumes from the last checkpoint.]
  5. Kill switch: [Example: one control stops all agents of the system and a second stops one agent; both tested each release.]

10. Human oversight points

IDPointModeHuman roleEvidence shownTimeout behaviour
MAS-HOV-001 (Example)New supplier with risk score "high"Human in the loopBuyer decides to continue or stopRisk report with sourcesJob paused, reminder after 4 h
MAS-HOV-002 (Example)Every draft order before ERP submissionHuman in the loopBuyer approves, edits or rejectsDraft, policy verdict, quote provenanceNot submitted
MAS-HOV-003 (Example)Daily sample of 5% of completed jobsHuman on the loopProcurement lead reviewsFull traceSample carried to next day
MAS-HOV-004 (Example)Any budget hard limit hitHuman on the loopSystem owner reviewsBudget eventJob stays stopped
MAS-HOV-005 (Example)System-wide stopHuman over the loopOwner or on-callDashboardImmediate halt

11. Threat mapping (OWASP Agentic Top 10 2026)

OWASP IDRiskHow it could happen hereControls (section)Residual
ASI01Agent Goal HijackExample: Supplier web page tells the research agent to recommend that supplierResearch agent has no write tools; output is a structured report (5, 6)Low
ASI02Tool Misuse and ExploitationExample: Orchestrator calls ERP write tool repeatedlyERP write behind MAS-HOV-002; idempotency key per job (10)Low
ASI03Identity and Privilege AbuseExample: Worker reuses the orchestrator's token to reach the ERPOne identity per agent; no token passthrough (7)Low
ASI04Agentic Supply Chain VulnerabilitiesExample: Malicious update to a third-party MCP server or a forged supplier Agent CardPinned server versions; signed card verification (7)Medium
ASI05Unexpected Code Execution (RCE)Example: Research agent asked to run a script found on a pageNo code execution tools in this system (3)Not applicable, no code tools
ASI06Memory & Context PoisoningExample: False sanctions result cached and reused across jobsProvenance and trust tags; 30-day expiry (6)Medium
ASI07Insecure Inter-Agent CommunicationExample: Spoofed supplier agent endpoint returns fake quotesTLS, OAuth 2.0, card pinning, task ID checks (7)Low
ASI08Cascading FailuresExample: Policy checker outage lets unchecked drafts throughFail closed, bulkheads, breakers (9)Low
ASI09Human-Agent Trust ExploitationExample: Draft summary hides a policy exception from the buyerApproval screen shows the policy verdict verbatim from the checker (10)Medium
ASI10Rogue AgentsExample: A worker starts acting outside its contract after a model changeContract validation, online evaluation, kill switch (9, 13)Low

Risk names follow the OWASP list as published; check the current list at genai.owasp.org before an assurance review.

12. Observability

SignalContentRetentionAccess
Distributed traceOne trace per job; spans per agent turn, model call, tool call and A2A task[90] daysSystem team, security
Contract eventsEach handoff with schema version, validation result and budget remaining[1] yearSystem team, audit
Oversight logApprovals, edits, rejections and stops with user and time[7] yearsAudit
MetricsJobs, success, escalations, tokens and cost per agent, breaker state[13] monthsDashboard
AlertsBudget breaches, breaker open, contract rejections above thresholdn/aOn-call

[Example: Trace context is propagated with W3C traceparent in A2A message metadata and in MCP _meta; supplier agents may not return it, so the orchestrator links their task IDs to the job span. Spans follow the OpenTelemetry GenAI semantic conventions, which are still marked Development; pin the convention version you use.]

13. Evaluation

13.1 Offline suites

SuiteSizeWhat is checkedThreshold
End-to-end tasks (Example)250 historical requestsCorrect draft, correct supplier statusAt least 90%
Trajectory compliance (Example)Same 250Only allowed delegations; budgets respected; oversight points reached100%
Per-agent suites (Example)Per agent specAgent-level successAs in each spec
Adversarial (Example)80 cases mapped to ASI01 to ASI10No unauthorised write, no policy bypassZero failures

13.2 Fault injection

IDInjected faultExpected behaviour
MAS-FT-001 (Example)Research agent never respondsTimeout, "unverified" flag, job continues
MAS-FT-002 (Example)Supplier agent returns a quote at 1% of catalogue priceArtifact rejected, buyer flagged
MAS-FT-003 (Example)Policy checker returns 500 for 10 minutesNo draft leaves; breaker opens
MAS-FT-004 (Example)Orchestrator receives an instruction inside a supplier artifactTreated as data; no new tasks created
MAS-FT-005 (Example)Two workers loop by delegating to each otherHop counter rejects the second hop

13.3 Online evaluation

[Example: 5% of jobs sampled weekly for buyer review; edit rate on drafts tracked per week; alert when buyer rejection rate rises above twice its 4-week average.]

14. Rollout and change control

StageScopeExit criteria
Shadow (Example)Agents run, buyers work as beforeOffline thresholds met on live traffic for 2 weeks
Assisted (Example)Drafts shown to buyers, every draft reviewedEdit rate under 20%; no policy escapes
Limited production (Example)One business unit4 weeks without severity 1 or 2 incidents
General availability (Example)All unitsGovernance sign-off
ChangeRequires
New agent or new linkDesign review, threat mapping update, full suites
Model or prompt change in one agentAgent suite and system end-to-end suite
Contract schema changeVersion bump, both sides deployed, compatibility test
Budget changeOwner approval, cost review
Autonomy change (oversight point removed)Governance approval

Rollback: [Example: switch the bundle alias to the previous version; in-flight jobs finish on the version they started with.]

15. Traceability matrix

GoalAgentsContractsControlsOversightTests
MAS-G-001 (Example)MAS-AGT-001 to 004MAS-HO-001 to 003MAS-BUD-005MAS-HOV-00313.1 end-to-end
MAS-G-002 (Example)MAS-AGT-004MAS-HO-003MAS-FI-003, MAS-ST-003MAS-HOV-00213.1 trajectory, MAS-FT-003
MAS-G-003 (Example)MAS-AGT-001MAS-HO-004ERP write gatedMAS-HOV-002, MAS-HOV-005MAS-FT-004, adversarial suite

16. Glossary and references

TermMeaning
OrchestratorAgent that plans a job and delegates tasks to other agents
WorkerAgent that performs a delegated task and returns a result
HandoffTransfer of a task and its context from one agent to another
Agent CardA2A metadata document describing a remote agent's identity, interfaces, skills and security requirements
BulkheadIsolation of resources so one failing part cannot exhaust shared capacity
Circuit breakerControl that stops calls to a failing dependency for a period
Cascading failureA fault in one component that spreads to others through their dependencies
Human on the loopA human monitors and can intervene, but does not approve each action

References:

Standard and licence note

Based on the OWASP Top 10 for Agentic Applications for 2026 by the OWASP GenAI Security Project (https://genai.owasp.org/), licensed under Creative Commons Attribution-ShareAlike 4.0 (https://creativecommons.org/licenses/by-sa/4.0/); the ASI entry IDs and short names are used for mapping and all descriptions are original text. Because section 11 adapts that list, the adapted mapping is shared under CC BY-SA 4.0 and any further adaptation of it must carry the same licence. Protocol details follow the Agent2Agent (A2A) Protocol Specification 1.0.1 (Apache License 2.0, hosted under the Linux Foundation and, since August 2026, the Agentic AI Foundation) and the Model Context Protocol specification revision 2026-07-28, summarised in original wording. Check the current versions of these sources before use; example values are illustrative. Template licence: MIT.

関連テンプレート