Google ADK (Agent Development Kit) in Practice: A2A Protocol, Vertex AI Integration, and Java Dual-Language
Google ADK is Google's official agent SDK with dual-language Python and Java support and deep integration with Vertex AI and the Gemini models. This article walks through ADK's four cores — Agent, Tool, Session, and the A2A protocol — compares it with LangGraph, OpenAI Agents SDK, and Claude Agent SDK, and provides an enterprise deployment path.
Google ADK is Google's official agent SDK released in 2025, designed specifically for the Gemini ecosystem. Its two big differentiators let it establish itself in the enterprise market by 2026: dual-language Java support + the A2A cross-agent protocol. This article systematically covers its design, usage, deployment, and selection.
1. Why ADK Exists
In 2024-2025, the enterprise market had several pain points with agent frameworks:
- Traditional Java teams had no framework available: LangGraph and CrewAI are Python-only
- No standard for cross-agent communication: every framework defined its own protocol
- High integration cost for production: IAM, audit, compliance all needed custom implementation
- GCP ecosystem lacked native agent abstractions: using LangChain to call Gemini always felt like an indirection
ADK is Google's official response to these pain points.
2. Four Core Abstractions
| Abstraction | Purpose | Analogy |
|---|---|---|
| Agent | LLM + toolset + system instruction | Similar to the OpenAI Agents SDK |
| Tool | Function call with auto-generated schema in Python/Java | Like function calling |
| Session | State management (cross-turn conversation context) | Like LangGraph state |
| Runner | Execution orchestration (sync/async/streaming) | Like the OpenAI Runner |
The overall design closely resembles the OpenAI Agents SDK but with Google-flavored Session and Runner abstractions.
3. Python Quickstart
from google.adk import Agent, Runner
from google.adk.sessions import InMemorySessionService
agent = Agent(
name="research_agent",
model="gemini-2.5-pro",
instruction="You help users research topics using web search.",
tools=[web_search_tool, fetch_url_tool],
)
session_service = InMemorySessionService()
runner = Runner(agent=agent, session_service=session_service)
response = await runner.run_async("Summarize the latest on agent frameworks.")
4. Java Quickstart (The Key Enterprise Selling Point)
Agent agent = Agent.builder()
.name("researchAgent")
.model("gemini-2.5-pro")
.instruction("You help users research topics.")
.tools(List.of(webSearchTool, fetchUrlTool))
.build();
Runner runner = Runner.builder()
.agent(agent)
.sessionService(new InMemorySessionService())
.build();
String response = runner.run("Summarize the latest on agent frameworks.");
Java support matters hugely for traditional enterprise teams: finance, insurance, and manufacturing are heavy Java backends, and adding agent capabilities previously meant building new Python services. With ADK, you can embed agents directly into Spring Boot applications.
5. The A2A (Agent-to-Agent) Protocol
A2A is Google's cross-agent communication protocol introduced in 2025. It's positioned similarly to MCP but solves a different problem:
| Protocol | Solves | Analogy |
|---|---|---|
| MCP | Agent-to-tool connections | Like LSP (Language Server Protocol) |
| A2A | Agent-to-agent communication | Like HTTP for web services |
A2A lets agents built on different frameworks (ADK, LangGraph, CrewAI) communicate with each other, removing framework lock-in. This is a major ecosystem strategy for Google — an open protocol attracts non-Google frameworks.
Example: calling an external agent via A2A
from google.adk.a2a import RemoteAgent
# Connect to an agent deployed elsewhere
crewai_agent = RemoteAgent(url="https://my-crewai-app.com/a2a")
result = await crewai_agent.invoke("Process this task")
6. Deep Vertex AI Integration
ADK's deployment on Vertex AI is its strongest enterprise selling point:
- IAM integration: caller permissions managed via Google Cloud IAM
- VPC-SC support: runs safely inside a Service Perimeter
- CMEK: customer-managed encryption keys for finance/healthcare compliance
- Audit logs: every agent call automatically goes to Cloud Audit Logs
- Model Garden: in addition to Gemini, can call 200+ open-source / third-party models
- Reasoning Engine: managed agent runtime with auto-scaling
These features make the cost of adding agents to existing GCP workloads extremely low.
7. Local Development Flexibility
Important clarification: ADK does not force Vertex AI. Local development can:
from google.adk import Agent
# Use OpenAI models via LiteLLM
agent = Agent(
name="my_agent",
model="litellm/gpt-5",
instruction="..."
)
This design makes ADK ideal for the "want GCP production deployment but multi-model local development" scenario.
8. Comparison With Similar Frameworks
| Dimension | Google ADK | OpenAI Agents SDK | LangGraph | Claude Agent SDK |
|---|---|---|---|---|
| Primary language | Python + Java | Python | Python + TS | Python + TS |
| Model support | Gemini-first, multi-model | OpenAI only | Multi-vendor | Claude only |
| Cross-agent protocol | A2A + MCP | Handoff | None native | Sub-agent |
| Enterprise features | IAM/VPC-SC/CMEK/audit | Weak | Self-built | Weak |
| Deployment | Vertex AI / local | OpenAI platform | Self-hosted | Anthropic API |
| Best fit | Enterprise | Small/mid teams | Any | Small/mid teams |
9. When to Use ADK
Strongly recommended:
- You have GCP investment and want agents to leverage existing IAM/VPC/audit
- Java-stack teams wanting agent capabilities in existing backends
- Multi-agent systems that may need cross-framework communication in the future (A2A)
- High compliance (finance, healthcare, government) needing CMEK/audit logs
Not great:
- Small startup teams without GCP investment — OpenAI Agents SDK / LangGraph is lighter
- Heavy OpenAI model dependency — just use the OpenAI Agents SDK
- Complex state machines needing fine-grained flow control — LangGraph
10. Migration Path
If migrating from LangGraph to ADK:
- Keep LangGraph as the tool layer: wrap existing LangGraph workflows as ADK Tools
- Migrate agent-by-agent: first change the entry agent to ADK, keep internal agents on LangGraph
- Bridge with A2A: during migration, use A2A for new/old agent communication
This progressive path avoids a big-bang rewrite.
11. Common Pitfalls
- Vertex AI pricing: Reasoning Engine bills by runtime; shut down long-idle instances
- Gemini quotas: the free tier is small; request quota increases before production
- Java version lag: the Java version lags Python by about 1-2 versions; new features land in Python first
- A2A compatibility: A2A is still evolving; test interop with community frameworks (LangGraph/CrewAI)
Conclusion
ADK isn't trying to replace LangGraph — it's an official answer for the enterprise market, especially Java teams and GCP customers. If your team fits this profile, ADK is the most worthwhile agent framework investment in 2026.
Prepared by the AgentList team. Browse the AgentList project directory for more agent frameworks, tools, and applications.
Related Projects Mentioned
- Google ADK Python — the subject of this article, Google's official Agent SDK
- Gemini CLI — Google's official terminal Agent, sibling to ADK, with generous free quotas for budget-sensitive developers
- OpenAI Agents Python — OpenAI's equivalent official SDK, for OpenAI-ecosystem teams
- Microsoft Agent Framework — Microsoft's unified Agent framework, the .NET + Java enterprise counterpoint
- LangGraph — a state-graph option for production-grade complex workflows
- CrewAI — a role-based multi-agent collaboration comparison
Key takeaways
- ADK's biggest differentiator is Java support — traditional enterprise Java teams finally have an official agent SDK without switching stacks.
- The A2A (Agent-to-Agent) protocol is Google's cross-agent communication standard and may be the next major protocol after MCP.
- ADK integrates deeply with Vertex AI / Model Garden, but local development also supports LiteLLM/OpenAI — no hard lock-in.
- Mature enterprise features: IAM, VPC-SC, CMEK, audit logs out of the box.
- Learning curve is gentler than LangGraph but slightly less flexible — the typical enterprise trade-off.
Frequently asked questions
- What's the relationship between Google ADK and Google Gemini?
- Gemini is the LLM; ADK is the SDK for building agent applications. ADK can call Gemini models and also supports other models (via LiteLLM or direct OpenAI API).
- Does ADK require Vertex AI?
- No. Local development can use the Google AI Studio API or any OpenAI-compatible endpoint. But production deployment is recommended on Vertex AI to get enterprise features.
- What's the relationship between A2A and MCP?
- MCP connects agents to tools; A2A handles agent-to-agent communication. They're complementary — Google supports both MCP and A2A.
- Is ADK suitable for startups?
- Yes, but only if you're committed to Gemini long-term. If you're still evaluating multiple models, LangGraph or OpenAI Agents SDK is more flexible.
Projects in this article
Agent Development Kit
20.8k ⭐Google Agent Development Kit (ADK) is Google's agent development framework for building complex AI agent systems with tool integration and multimodal processing capabilities.
Gemini CLI
106.1k ⭐Gemini CLI is a terminal-based AI agent tool from Google that supports code generation, file operations, and multi-turn conversations with a free usage tier.
LangGraph
37.7k ⭐LangGraph is a framework for building controllable, debuggable, long-running stateful agents, expressing agent state and control flow as a graph.
OpenAI Agents Python
28.0k ⭐A lightweight, powerful framework from OpenAI for building multi-agent workflows with tool calling, agent handoffs, and guardrails.
Microsoft Agent Framework
12.3k ⭐Microsoft's comprehensive multi-language framework for building, orchestrating, and deploying AI agents and multi-agent workflows with support for Python and .NET.