A2A: Adversary to Adversary? - Jeff Auriemma<br>The Agentic AI Foundation recently announced that Agent2Agent, better known as A2A, is joining AAIF as a hosted project. This places A2A in the same foundation as MCP, along with projects such as AGENTS.md, goose, and agentgateway. The arrangement implies that MCP and A2A occupy different parts of an emerging agentic stack, although the distinction between them can be difficult to explain. MCP allows an agent to discover and invoke remote capabilities, and its newer Tasks extension supports long-running operations, requests for additional input, cancellation, and deferred results. Given those capabilities, it is reasonable to ask when a remote system needs to be treated as another agent rather than as an MCP server exposing tools. If you prefer video, I made a version of this article for YouTube.<br>My first attempt at an answer involved an internal design-review workflow. One agent could produce a technical design and send it to two reviewers: a supportive agent responsible for strengthening the proposal and a critical agent responsible for finding weaknesses. A neutral orchestrator could revise the design and circulate it again until the reviewers stopped finding significant problems or a fixed number of rounds had elapsed. This is a plausible multi-agent system, but it does not establish much of a need for A2A. If the orchestrator owns the workflow and each reviewer performs one narrow function, the reviewers can be modeled as tools such as steelman_design and adversarial_review. Their implementations may contain models, tools, memory, and complicated reasoning, but none of that changes the contract presented to the orchestrator.<br>ALT
Workflow diagram: A neutral agent owns the workflow, iteratively revising a design until convergence. The agent calls `steelman_design()` and `adversarial_review()`, with results from both functions feeding back into the agent.
Long-running work does not provide a reliable dividing line either. Current MCP task support allows a tool call to return a durable handle that can be polled, cancelled, and supplied with additional input. An MCP server can therefore place a sophisticated agent behind a tool without forcing the caller to wait on one synchronous request. The choice between MCP and A2A has less to do with the intelligence of the remote implementation than with the relationship between the two systems. The strongest use case for A2A begins when the remote agent operates independently, represents a different principal, and has meaningful discretion over whether or how it fulfills the request.<br>Consider a manufacturer that needs to purchase 10,000 components by November. The manufacturer has a procurement agent with access to its technical requirements, inventory forecasts, approved suppliers, budget, and internal purchasing policies. A supplier has its own sales agent with access to inventory, production capacity, pricing rules, existing customer commitments, and the approvals required for large orders. These agents are participating in the same transaction, but they represent different organizations. Neither organization wants to expose its internal systems or decision-making process to the other, and neither agent has authority over its counterpart. “Counterparty-to-counterparty” would be more precise than “adversary-to-adversary,” although it would make for a considerably worse title.<br>ALT
Diagram of cooperative supplier–manufacturer agents: The supplier’s sales agent accesses capacity, pricing, inventory, and commitments, while the manufacturer’s procurement agent accesses budgets, forecasts, approved suppliers, and purchasing policy. The two agents cooperate across organizational boundaries without controlling one another.
The procurement agent might begin by requesting ten thousand units of a particular component, along with a required delivery date and a set of technical specifications. The supplier agent checks its systems and determines that it can deliver 6,000 units in October and the remaining 4,000 in December. It could satisfy the full order in November using an alternative component, although that component costs more and has slightly different characteristics. The supplier returns those options rather than a simple success or failure. The procurement agent then needs to determine whether engineering has approved the substitute component, whether split delivery would affect production, and whether the higher price falls within its purchasing authority.<br>The agents may exchange several proposals before reaching an agreement. The manufacturer might accept the alternative component in exchange for a lower price, while the supplier might offer that discount only if the manufacturer agrees to a longer-term commitment. Either side may need to pause while a human approves a commercial term. They may also exchange specification sheets, compliance certificates, shipping schedules, quotes, and purchase orders during the...