google-adk
Build AI agents using Google's Agent Development Kit (ADK) for Python. Use this skill when the user wants to create ADK agents, multi-agent systems, agents with tools, workflow agents (Sequential, Parallel, Loop), or deploy agents to Google Cloud. Triggers include mentions of "ADK", "Agent Development Kit", "google-adk", "adk agent", "multi-agent system", or requests to build AI agents with Google's framework.
Best use case
google-adk is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Build AI agents using Google's Agent Development Kit (ADK) for Python. Use this skill when the user wants to create ADK agents, multi-agent systems, agents with tools, workflow agents (Sequential, Parallel, Loop), or deploy agents to Google Cloud. Triggers include mentions of "ADK", "Agent Development Kit", "google-adk", "adk agent", "multi-agent system", or requests to build AI agents with Google's framework.
Teams using google-adk should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/google-adk/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How google-adk Compares
| Feature / Agent | google-adk | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Build AI agents using Google's Agent Development Kit (ADK) for Python. Use this skill when the user wants to create ADK agents, multi-agent systems, agents with tools, workflow agents (Sequential, Parallel, Loop), or deploy agents to Google Cloud. Triggers include mentions of "ADK", "Agent Development Kit", "google-adk", "adk agent", "multi-agent system", or requests to build AI agents with Google's framework.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Google ADK Agent Development
Build AI agents using Google's Agent Development Kit (ADK) - a flexible, modular Python framework for developing, evaluating, and deploying AI agents.
## Project Structure
Standard ADK project layout:
```
my_agent/
├── agent.py # Agent definition (must export root_agent)
├── tools.py # Custom tool functions (optional)
├── __init__.py # Package init
└── .env # API keys (GOOGLE_API_KEY or GOOGLE_CLOUD_PROJECT)
```
For multi-agent projects:
```
my_project/
├── agents/
│ ├── coordinator.py
│ ├── specialist_a.py
│ └── specialist_b.py
├── tools/
│ └── custom_tools.py
├── agent.py # Root agent entry point
└── .env
```
## Core Patterns
### Single Agent with Tools
```python
from google.adk.agents import Agent
def get_weather(city: str) -> dict:
"""Get weather for a city. The docstring is critical - ADK uses it for tool schema."""
return {"status": "success", "temp": "72F", "city": city}
root_agent = Agent(
name="weather_agent",
model="gemini-3.0-flash-preview",
description="Provides weather information.",
instruction="You help users get weather. Use the get_weather tool when asked.",
tools=[get_weather],
)
```
### Multi-Agent with Delegation
```python
from google.adk.agents import LlmAgent
billing = LlmAgent(name="billing", model="gemini-3.0-flash-preview",
description="Handles billing and payment questions.")
support = LlmAgent(name="support", model="gemini-3.0-flash-preview",
description="Handles technical support.")
root_agent = LlmAgent(
name="coordinator",
model="gemini-3.0-flash-preview",
instruction="Route billing questions to billing agent, technical issues to support.",
sub_agents=[billing, support],
)
```
### Sequential Pipeline
```python
from google.adk.agents import SequentialAgent, LlmAgent
step1 = LlmAgent(name="researcher", instruction="Research the topic.", output_key="research")
step2 = LlmAgent(name="writer", instruction="Write based on {research}.", output_key="draft")
step3 = LlmAgent(name="editor", instruction="Polish the {draft}.")
root_agent = SequentialAgent(name="content_pipeline", sub_agents=[step1, step2, step3])
```
### Parallel Execution
```python
from google.adk.agents import ParallelAgent, SequentialAgent, LlmAgent
fetch_news = LlmAgent(name="news", output_key="news_data")
fetch_weather = LlmAgent(name="weather", output_key="weather_data")
gatherer = ParallelAgent(name="info_gather", sub_agents=[fetch_news, fetch_weather])
synthesizer = LlmAgent(name="synth", instruction="Combine {news_data} and {weather_data}.")
root_agent = SequentialAgent(name="pipeline", sub_agents=[gatherer, synthesizer])
```
### Loop with Termination
```python
from google.adk.agents import LoopAgent, LlmAgent, BaseAgent
from google.adk.events import Event, EventActions
class QualityChecker(BaseAgent):
async def _run_async_impl(self, ctx):
status = ctx.session.state.get("quality", "fail")
yield Event(author=self.name, actions=EventActions(escalate=(status == "pass")))
refiner = LlmAgent(name="refiner", instruction="Improve {draft}.", output_key="draft")
checker = LlmAgent(name="checker", instruction="Rate quality.", output_key="quality")
root_agent = LoopAgent(
name="refinement_loop",
max_iterations=5,
sub_agents=[refiner, checker, QualityChecker(name="gate")],
)
```
## Key Concepts
### Agent Parameters
| Parameter | Required | Purpose |
|-----------|----------|---------|
| `name` | Yes | Unique identifier (avoid "user") |
| `model` | Yes | LLM model string (e.g., "gemini-3.0-flash-preview") |
| `instruction` | No | System prompt guiding behavior |
| `description` | No | Used by parent agents for delegation decisions |
| `tools` | No | List of functions or Tool instances |
| `sub_agents` | No | Child agents for multi-agent systems |
| `output_key` | No | Auto-save response to session state |
### State Management
Use `{var}` in instructions to read from state. Use `output_key` to write to state.
```python
agent_a = LlmAgent(name="a", output_key="result_a") # Writes to state["result_a"]
agent_b = LlmAgent(name="b", instruction="Process {result_a}.") # Reads state["result_a"]
```
### Tool Design
Tool functions must have:
- Clear docstrings (ADK parses these for the LLM)
- Type hints for parameters
- Return dict or simple types
```python
def search_database(query: str, limit: int = 10) -> dict:
"""Search the database for matching records.
Args:
query: The search query string.
limit: Maximum results to return (default 10).
Returns:
dict with 'status' and 'results' keys.
"""
return {"status": "success", "results": [...]}
```
## Running Agents
### Via CLI (Development)
```bash
# Install
pip install google-adk
# Set API key
export GOOGLE_API_KEY="your-key"
# Run CLI
adk run my_agent
# Run web UI (development only)
adk web --port 8000
# Run API server
adk api_server my_agent --port 8080
```
### Programmatically (Production)
For APIs, UIs, or custom integrations, use Runner and Session directly:
```python
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types
# Setup
agent = Agent(name="assistant", model="gemini-3.0-flash-preview", instruction="Be helpful.")
session_service = InMemorySessionService()
runner = Runner(agent=agent, app_name="my_app", session_service=session_service)
# Create session
await session_service.create_session(
app_name="my_app", user_id="user_123", session_id="session_456"
)
# Run agent
message = types.Content(role="user", parts=[types.Part(text="Hello!")])
async for event in runner.run_async(
user_id="user_123", session_id="session_456", new_message=message
):
if event.is_final_response():
print(event.content.parts[0].text)
```
See **[runtime.md](examples/runtime.md)** for complete API/UI integration examples.
## examples
For detailed patterns and examples:
- **[agents.md](examples/agents.md)**: LlmAgent, workflow agents, custom agents
- **[tools.md](examples/tools.md)**: Function tools, MCP tools, OpenAPI tools, AgentTool
- **[patterns.md](examples/patterns.md)**: Multi-agent design patterns
- **[runtime.md](examples/runtime.md)**: Runner, Session, Events, and building APIs/UIsRelated Skills
googlephotos-automation
Automate Google Photos tasks via Rube MCP (Composio): upload media, manage albums, search photos, batch add items, create and update albums. Always search tools first for current schemas.
google-drive-automation
Automate Google Drive file operations (upload, download, search, share, organize) via Rube MCP (Composio). Upload/download files, manage folders, share with permissions, and search across drives pr...
google-calendar-automation
Automate Google Calendar events, scheduling, availability checks, and attendee management via Rube MCP (Composio). Create events, find free slots, manage attendees, and list calendars programmatica...
google-email
Manage Gmail email sync, triage, and analysis workflows. Use when user wants to sync emails, triage inbox, check email analysis results, view email statistics, manage the email processing pipeline, find newsletters, check pending emails, or understand email workflow status. Triggers on phrases like "sync my emails", "triage inbox", "email status", "check newsletters", "email analysis", "what emails do I have", "pending emails", "unsubscribe from newsletters".
googlesheets-automation
Automate Google Sheets operations (read, write, format, filter, manage spreadsheets) via Rube MCP (Composio). Read/write data, manage tabs, apply formatting, and search rows programmatically.
google-meet-connector
Use AgentPMT external API to run the Google Meet tool with wallet signatures, credits purchase, or credits earned from jobs.
Google ADK Python
Use when building AI agents with Google's Agent Development Kit (ADK) Python - multi-agent systems, workflow agents, tool integration, Vertex AI deployment, or agent evaluation.
Build Your Google ADK Skill
Create your Google Agent Development Kit skill in one prompt, then learn to improve it throughout the chapter
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
humanizer-ko
Detects and corrects Korean AI writing patterns to transform text into natural human writing. Based on scientific linguistic research (KatFishNet paper with 94.88% AUC accuracy). Analyzes 19 patterns including comma overuse, spacing rigidity, POS diversity, AI vocabulary overuse, and structural monotony. Use when humanizing Korean text from ChatGPT/Claude/Gemini or removing AI traces from Korean LLM output.
huggingface-accelerate
Simplest distributed training API. 4 lines to add distributed support to any PyTorch script. Unified API for DeepSpeed/FSDP/Megatron/DDP. Automatic device placement, mixed precision (FP16/BF16/FP8). Interactive config, single launch command. HuggingFace ecosystem standard.
hr-pro
Professional, ethical HR partner for hiring, onboarding/offboarding, PTO and leave, performance, compliant policies, and employee relations. Ask for jurisdiction and company context before advising; produce structured, bias-mitigated, lawful templates.