Welcome! This repository is a collection of tutorials designed to help you understand and build applications using the Agent2Agent (A2A) protocol. We will start from the absolute basics and build our way up to more complex, multi-agent systems and authentication.
Before we begin, here are a few key terms you'll encounter:
- Agent: An autonomous program that can reason, plan, and use tools to accomplish goals.
- Agent Card: A JSON "business card" that an agent publishes. It describes what the agent can do (its skills), where to find it (its URL), and how to communicate with it. Agent discovery is the first step in any A2A interaction.
- JSON-RPC 2.0: The message format used for requests and responses over HTTP. It provides a simple, standardized structure for calling methods on a remote server.
- Task: A stateful unit of work. When a client sends a message, the agent server often creates a
Taskto track the progress of the request, especially for long-running operations. - Message: A single turn of communication within a task, containing content (like text or files) from either the "user" (the client) or the "agent" (the server).
Note
This repository is structured as a series of tutorials. It is recommended to follow them in order.
For more in-depth information, please refer to the Official A2A Protocol Documentation.
Contributions are welcome! This is a learning repository, and any improvements, corrections, or new examples can help others learn too.