Content
# ADK (Agent Development Kit) / A2A (Agent to Agent)
This repository provides various examples and reference implementations for building, deploying, and evaluating AI agents using the Agent Development Kit (ADK), the A2A (Agent-to-Agent) protocol, and tool integration through Google’s tools and MCP. Each folder independently addresses concepts, agent types, tool integration, workflows, deployment, and evaluation scenarios for creating AI agents.
## Repository Structure
### a2a/
- **adk/simple/**: A minimal ADK agent example of the A2A protocol, including Google Search tool integration and conversion utilities, as well as server/client implementations.
- **concept/basic/**: A basic A2A protocol example that includes an echo agent, an A2A-compatible server, and a Python client.
### adk/
- **01-agent/**: Core agent implementation examples, including basic, runtime, and search agents. Each subfolder contains agent code, descriptions, and execution scripts.
- **02-conversations/**: Conversation management examples covering events, memory, sessions, states, etc. Each folder includes agent/session logic and execution scripts.
- **03-tools/**: Various tool integration examples, including built-in tools (code execution, search, RAG, VertexAI), functional tools, LangChain tools, and MCP tools. Subfolders are organized by tool type.
- **04-workflow/**: Various workflow orchestration examples, including custom, general, loop, parallel, and sequential workflows. Each folder contains agent and workflow logic.
- **05-callback/**: Examples of callback mechanisms for agents, models, and tools, demonstrating how to intercept and modify execution flows.
- **06-deploy/**: Examples of deployment and session management, including agent engines, session pipelines, GCP/Vertex AI integration, and update scripts.
- **07-model/**: Examples of integrating various models, including LiteLLM and Ollama.
- **08-output/**: Examples of applying output schemas using Pydantic and returning structured responses.
- **09-evaluate/**: Tools for agent evaluation and benchmarking.
- **10-unittest/**: Unit test scripts for asynchronous and REST-based agent logic.
### mcp/
- **concept/**: Examples of parent/child process communication in the MCP (Model Context Protocol).
### notebooks/
Provides examples in the form of IPython notebooks for faster unit testing.
- **01-adk/**: ADK tutorial, Jupyter notebooks for agent/callback/session/tool/workflow demos.
- **02-agent_engine/**: Notebooks for managing agent engines and integrating with LangChain/Graph.
- **03-rag_engine/**: RAG engine management and demo notebooks.
- **04-mcp/**: Notebooks for the MCP protocol and agent integration.
- **05-a2a/**: Notebooks for the A2A protocol and ADK integration.
- **agentspace/**: Notebooks for deploying and integrating AgentSpace.
- **common/**: Common reference notebooks for ADK, agent engines, and LangChain.
## How to Use the Code
1. **Install Dependencies**: Check and install the required packages from each module's `pyproject.toml` or `requirements.txt`.
2. **Set Environment Variables**: Many examples require a `.env` file containing model, API, and GCP authentication information.
3. **Run Examples**: Navigate to the desired folder and follow the instructions in the corresponding `README.md` or refer to the provided scripts/notebooks to execute.
## Key Sample Content
- Modular agent and tool design for easy extensibility.
- Support for communication between agents based on the A2A protocol.
- Integration of built-in, functional, and external tools.
- Various workflow orchestration including sequential, parallel, loop, and custom workflows.
- Callback hooks for agent/model/tool execution.
- Deployment and session management for Vertex AI Agent Engine.
- Application of output schemas and evaluation utilities.
- Support for tutorials and interactive exercises based on Jupyter notebooks.
## License
This project follows the Apache License 2.0, and all code and content copyrights belong to **ForusOne** (shins777@gmail.com).