English
What problem does this solve?
Once a company runs more than one AI agent, a new question shows up before any "intelligence" question: how does Agent A find Agent B, and how do they agree on a message format? Without a shared protocol, every integration between agents becomes bespoke glue code that breaks the moment either side changes.
A2A is a minimal answer to that question, not a framework. It defines two things only: how an agent announces itself, and how a task is sent and answered. This walkthrough studies and builds on the open-source theailanguage/a2a_samples reference implementation.
How the mechanism works
Discovery: every A2A server publishes a small "agent card" JSON file at a fixed path, /.well-known/agent.json — name, description, and declared capabilities. Any client can fetch that file first and confirm it found the right agent before sending anything.
Task execution: the client posts a task with a random ID and the message payload to /tasks/send. The server processes it, marks the task completed, and returns the full message history — the original question and the agent's answer together, so nothing has to be re-fetched separately.
Trade-offs and alternatives
The benefit is that any two A2A-compliant agents can talk without hand-written adapters. The trade-off is that this basic version is intentionally blocking and synchronous — the client waits for one JSON response, with no streaming and no built-in retry semantics. Later parts of this series show how the protocol evolves to add real intelligence, multi-agent routing, and streaming.
The alternative most teams reach for first is a direct REST or RPC call hard-coded between two specific services. That works for exactly two agents; it stops working the moment a third agent needs to join the conversation, because every pair now needs its own contract.
Conclusion
Discovery, then task execution — that is the entire contract. It looks almost too simple, but that simplicity is the point: a shared, minimal handshake is what lets agents from different teams, or different companies, interoperate without agreeing on anything else first.