| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This code is used to demonstrate A2A capabilities as the spec progresses.
Samples are divided into 3 sub directories:
Agents Sample agents written in multiple frameworks that perform example tasks with tools. These all use the common A2AServer.
Hosts Host applications that use the A2AClient. Includes a CLI which shows simple task completion with a single agent, a mesop web application that can speak to multiple agents, and an orchestrator agent that delegates tasks to one of multiple remote A2A agents.
Run one (or more) agent A2A server and one of the host applications.
Depending on how the specific sample is configured, you can run it either using standard python & pip (if a requirements.txt file is present) or uv (if a pyproject.toml file is present).
For example, to run the helloworld agent with a virtual environment:
cd samples/python/agents/helloworldpython -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtpython __main__.pycd samples/python/agents/helloworld
source .venv/bin/activate
python test_client.pyTip
Alternative: Using uv with requirements.txt If you prefer using uv but want to avoid parent workspace conflicts, you can use uv in non-project mode:
uv venv
source .venv/bin/activate
uv pip install -r requirements.txt
python __main__.pyFor example, to run the langgraph agent:
cd samples/python/agents/langgraphuv run .cd samples/python/hosts/cli
uv run .NOTE: This is sample code and not production-quality libraries.
Important: The sample code provided is for demonstration purposes and illustrates the mechanics of the Agent-to-Agent (A2A) protocol. When building production applications, it is critical to treat any agent operating outside of your direct control as a potentially untrusted entity.
All data received from an external agent—including but not limited to its AgentCard, messages, artifacts, and task statuses—should be handled as untrusted input. For example, a malicious agent could provide an AgentCard containing crafted data in its fields (e.g., description, name, skills.description). If this data is used without sanitization to construct prompts for a Large Language Model (LLM), it could expose your application to prompt injection attacks. Failure to properly validate and sanitize this data before use can introduce security vulnerabilities into your application.
Developers are responsible for implementing appropriate security measures, such as input validation and secure handling of credentials to protect their systems and users.
| Back | FazBrowse Home | New Git URL |