Evergreen
How to Design an Interoperable Multi-Agent Workflow
A practical architecture for multi-agent workflows covering boundaries, contracts, state, semantics, timeouts, retries, cancellation, compensation, and human control.
How to Design an Interoperable Multi-Agent Workflow
An interoperable multi-agent workflow is worthwhile only when independent capabilities or ownership boundaries create more value than the added semantic, security, latency, cost, observability, and recovery burden.
Start with the user outcome and a simpler baseline. Split the workflow where a team, vendor, security domain, regulated responsibility, or specialized capability should genuinely remain independent. Then define the delegation contract, state, authority, artifact, failure behavior, and human control before choosing a protocol or adding agents.
Begin with the outcome, not an agent roster
"Use three agents" is an implementation preference. "Resolve a delivery problem within ten minutes without an unauthorized purchase" is a product outcome.
Write the outcome in terms a user or operator can verify. Include quality, time, cost, safety, and commitment boundaries. Build or measure the simplest credible baseline, which may be one application with tools, a deterministic workflow, or a person supported by automation.
The multi-agent design must earn its additional boundary against that baseline. If it produces the same result with more latency, more policy surface, and harder incident response, interoperability has not improved the product.
Split only at a real boundary
A strong delegation boundary usually reflects independent ownership or a capability that should not be absorbed into the calling system.
A logistics provider may own carrier access, capacity, and delivery commitments. A regulated screening service may own a legally controlled decision process. A specialist research service may own proprietary data and methods. In each case, opacity protects a legitimate boundary.
Creating separate "planner," "critic," and "writer" personas inside one application may be a useful reasoning pattern. It does not automatically require an open agent protocol or separate services.
| Boundary | What independence can protect | Cost introduced |
|---|---|---|
| Vendor | Proprietary implementation and commercial ownership | External reliability, contract, and support dependency |
| Security domain | Credential and data separation | Identity federation and audit complexity |
| Regulatory role | Controlled responsibility and evidence | Policy alignment and review latency |
| Specialized capability | Focused evaluation and operating expertise | Semantic translation and integration work |
| Scale domain | Independent capacity and failure isolation | Distributed state and recovery |
Define one delegation contract
For each boundary, write a contract that another team could test without reading the agent's prompt or source code.
The contract should identify the purpose, input schema, allowed data, authority, expected artifact, task states, semantic acceptance rules, time and cost limits, retry policy, idempotency behavior, cancellation, compensation, retention, and support owner.
A2A 1.0 can carry Messages, Tasks, state updates, and Artifacts across an independent agent boundary. Those objects give the contract a standard coordination envelope. They do not define what "approved delivery plan" means for your business.
Give one system canonical workflow ownership
Every task should have a clear system of record for the user's intent and the overall workflow state.
The orchestrating system should preserve the originating request, policy version, approved scope, remote agent identity, Agent Card digest or version, local and remote task identifiers, attempt count, deadlines, artifact versions, external effect identifiers, and final disposition.
Do not infer the overall state from the last natural-language message. A remote task may be working while the local workflow is canceled. A task may be completed while the returned artifact fails validation. A user may have approved a proposal that expired before execution.
stateDiagram-v2
[*] --> Planned
Planned --> Authorized
Authorized --> Delegated
Delegated --> Waiting
Waiting --> NeedsInput
Waiting --> NeedsAuthorization
NeedsInput --> Waiting
NeedsAuthorization --> Waiting
Waiting --> Validating
Validating --> Accepted
Validating --> Rework
Rework --> Delegated
Waiting --> Failed
Waiting --> CancelRequested
CancelRequested --> Canceled
CancelRequested --> Reconcile
Validating --> Reconcile
Reconcile --> Compensated
Reconcile --> ManualReview
Accepted --> [*]
Canceled --> [*]
Compensated --> [*]
ManualReview --> [*]
The workflow state is broader than the protocol task state. Keep both.
Make semantics testable
Two agents can exchange valid JSON and still disagree about identity, units, dates, confidence, completion, or side effects.
Use stable identifiers and explicit schemas. Name units, time zones, currencies, locales, policy versions, and effective dates. Distinguish an estimate, recommendation, reservation, authorization, and completed transaction.
Validate the artifact twice. First, validate its structure and media. Then validate the domain meaning against the original request and current policy.
For probabilistic output, define what requires corroboration or human review. "The remote agent said complete" is not an acceptance rule.
Model timeouts as uncertainty
A timeout means the caller stopped waiting. It does not prove the remote agent stopped or the external effect did not occur.
Before retrying, query or reconcile the remote task when possible. Use an idempotency key for operations that may be repeated. Limit attempts and backoff. Route unresolved ambiguity to a review path rather than asking the model to guess.
| Failure | What is known | Safe next move |
|---|---|---|
| Connection failed before acceptance | Remote receipt is uncertain | Reconcile by idempotency key or task lookup |
| Task reports failed | Remote processing ended unsuccessfully | Inspect typed error, policy, and retry eligibility |
| Artifact is invalid | Protocol completed but outcome failed acceptance | Reject, request correction, or use fallback |
| Cancellation requested | Stop was requested | Confirm terminal state and reconcile side effects |
| Push update duplicated | Delivery happened more than once | Process idempotently and retain one state transition |
| Agent unavailable | Current delegation path cannot run | Use a predesigned fallback or surface delay |
Design cancellation and compensation separately
Cancellation can stop future work only while the remote system still has a cancelable task. It cannot unsend an email, erase a disclosure, unship an item, or reverse a settled payment.
For each side effect, define a compensating action where one exists. A reservation may be voided. A record may be restored from version history. A customer message may require a correction rather than deletion.
Some effects cannot be reversed. Those require stronger precommit authorization and human control.
Put people at decision boundaries
Human review works when the person sees a concrete decision with enough context to act.
Define which data sensitivity, monetary value, legal commitment, external communication, confidence level, policy exception, or model uncertainty requires review. Show the proposed action, supporting artifact, target, material limits, and alternatives.
The reviewer should be able to approve, edit, reject, defer, or escalate. The approval should expire if the proposal changes.
A2A's input-required and authorization-required states can carry the interruption. The application decides what the person sees and what authority the response creates.
Observe the user outcome across every agent
Correlate traces, tasks, policy decisions, artifacts, external effects, and human interventions without copying secrets or sensitive model context into logs.
Measure successful user outcomes, semantic defects, policy violations, end-to-end time, cost, manual interventions, duplicate effects, unrecovered failures, and operator effort. Protocol error rate belongs in the dashboard, but it is not the product metric.
Compare the multi-agent path with the baseline under the same tasks and acceptance rules. Include failure injection, not only successful demonstrations.
A practical architecture review
Walk one representative task from user intent to final acceptance. At every boundary, ask who owns the decision, what authority crossed, what data crossed, which state is canonical, how completion is verified, what a timeout means, and who recovers the outcome.
If those answers depend on an agent "figuring it out," the workflow contract is incomplete.
Use A2A when the remote agent boundary deserves a standard task and artifact lifecycle. Use MCP's stable host, client, and server architecture when an AI host or agent needs standard access to tools and context. Use a normal API or deterministic workflow when the work does not need an agent contract.
For authority crossing service boundaries, OAuth 2.0 Token Exchange provides subject, actor, audience, resource, and scope concepts. It does not decide whether a particular workflow should permit the exchange, so the architecture still needs an explicit policy.
This guide presents a design and evaluation method. It does not report a Venture Step production benchmark or certify a particular agent architecture.
This article was developed with AI assistance and reviewed against A2A 1.0 and the episode evidence linked above. Dalton Anderson is responsible for the final editorial judgment.
Sources
Follow the evidence.
- datatracker.ietf.org: rfc8707datatracker.ietf.org
- blog.modelcontextprotocol.io: 2026 07 28 release candidateblog.modelcontextprotocol.io
- datatracker.ietf.org: rfc8693datatracker.ietf.org
- open.spotify.com: 6kP2pOFpNqamU9bCGRy2oDopen.spotify.com
- a2a-protocol.org: what is a2aa2a-protocol.org
- linuxfoundation.org: linux foundation launches the agent2agent protocol project to enable secure intelligent communication between ai agentslinuxfoundation.org
- modelcontextprotocol.io: specificationmodelcontextprotocol.io
- a2a-protocol.org: latesta2a-protocol.org
- a2a-protocol.org: specificationa2a-protocol.org
- github.com: A2Agithub.com
- modelcontextprotocol.io: 2025 11 25modelcontextprotocol.io
- a2a-protocol.org: agent discoverya2a-protocol.org
- youtu.be: cAAsiaTVpEgyoutu.be
- daltonanderson.ghost.io: googles a2a protocol the future of ai agentsdaltonanderson.ghost.io
- daltonanderson.net: googles a2a protocol the future of ai agentsdaltonanderson.net
- developers.googleblog.com: a2a a new era of agent interoperabilitydevelopers.googleblog.com
- modelcontextprotocol.io: intromodelcontextprotocol.io