a2a

Build multi-tier ADK agent systems communicating via the A2A protocol on Agent Engine.

1|Updated Mar 19, 2026
One-click install
npx skills add https://github.com/tottenjordan/me-skittles --skill a2a-tottenjordan
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: a2a
Source: https://github.com/tottenjordan/me-skittles/tree/main/gemini/a2a
Command: npx skills add https://github.com/tottenjordan/me-skittles --skill a2a-tottenjordan

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires google-adk, google-cloud-aiplatform, uvicorn, fastapi, a2a-sdk, and includes references (resource) components.

What problem does it solve? Building multi-agent systems where agents must discover, delegate to, and communicate with each other across processes and cloud deployments is complex and error-prone. This Skill provides the patterns and code to structure, connect, test, and deploy hierarchical agent systems using Google ADK and the A2A protocol. ## Core Features & Use Cases - Three-Tier Agent Architecture: Create leaf agents with tools, functional agents that delegate via TransferToAgentTool, and orchestrators that route requests using RemoteA2aAgent. - A2A Exposure and Discovery: Convert any ADK agent into an A2A-compatible ASGI app with to_a2a(), exposing an agent card at /.well-known/agent.json for discovery. - Phased Cloud Deployment: Deploy leaf, functional, and orchestrator agents to Vertex AI Agent Engine in dependency order, wiring URLs through environment variables. - Use Case: Build an HR and Finance assistant where an orchestrator routes PTO questions to an HR agent, which delegates to a leaf PTO agent with database tools, all tested locally with uvicorn before cloud deployment. ## Quick Start Ask the agent to build a multi-agent ADK system with an orchestrator that routes requests to functional agents connected to leaf agents via the A2A protocol.

Frequently Asked Questions about a2a

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I connect ADK agents using the A2A protocol?▼

Expose each agent with to_a2a(agent, port) to create an ASGI app, then connect consumers using RemoteA2aAgent with the remote agent's card URL ending in /.well-known/agent.json. Add the remote agent to sub_agents and use TransferToAgentTool for delegation.

How to deploy ADK agents to Vertex AI Agent Engine?▼

Wrap the agent in an AdkApp with InMemorySessionService and call vertexai.agent_engines.create with requirements including google-adk[a2a] and a2a-sdk. Deploy in phases: leaf agents first, then functional agents with leaf URLs as env vars, then the orchestrator.

Why does my A2A agent fail after Agent Engine deployment?▼

Deployment fails when agent code reads local files, because cloudpickle cannot capture filesystem references in the Agent Engine container. Inline all configuration data directly in the deploy script and bundle the a2a package in extra_packages.

VertexAiSearchTool vs DiscoveryEngineSearchTool for A2A agents?▼

Use DiscoveryEngineSearchTool when an A2A agent needs document search. VertexAiSearchTool injects a Gemini retrieval tool that conflicts with the transfer_to_agent function tools used for A2A delegation.

Why is the agent card not found for my remote agent?▼

The agent card URL must end with /.well-known/agent.json. Also verify the target agent is running and start leaf agents before functional agents that depend on them.