ADK Cheatsheet
Before using this skill, activate /google-agents-cli-workflow first — it contains the required development phases and scaffolding steps.
Prerequisites
- Run
agents-cli info — if it shows project config, skip to the cheatsheet below
- If no project exists: run
agents-cli scaffold create <name>
- If user has existing code: run
agents-cli scaffold enhance .
Do NOT write agent code until a project is scaffolded.
Python only for now. This cheatsheet currently covers the Python ADK SDK.
Support for other languages is coming soon.
Quick Reference — Most Common Patterns
Agent Creation
from google.adk.agents import Agent
root_agent = Agent(
name="my_agent",
model="gemini-flash-latest",
instruction="You are a helpful assistant that ...",
tools=[my_tool],
)
NEVER change an existing agent's model= value unless the user explicitly asks. If a Gemini model returns a 404, it's almost always a GOOGLE_CLOUD_LOCATION issue — run the listing command to verify availability before changing anything. For model docs, fetch https://adk.dev/agents/models/google-gemini/index.md.
uv run --with google-genai python -c "
from google import genai
client = genai.Client(vertexai=True, location='global')
for m in client.models.list(): print(m.name)
"
Basic Tool
from google.adk.tools import FunctionTool
def get_weather(city: str) -> dict:
"""Get current weather for a city."""
return {"city": city, "temp": "22°C", "condition": "sunny"}
weather_tool = FunctionTool(func=get_weather)
ADK built-in tool imports: Import the tool instance, not the module.
from google.adk.tools.load_web_page import load_web_page # CORRECT
from google.adk.tools import load_web_page # WRONG
Simple Callback
from google.adk.agents.callback_context import CallbackContext
async def initialize_state(callback_context: CallbackContext) -> None:
state = callback_context.state
if "history" not in state:
state["history"] = []
root_agent = Agent(
name="my_agent",
model="gemini-flash-latest",
instruction="...",
before_agent_callback=initialize_state,
)
Reference Files
| File |
When to read |
references/adk-python.md |
ADK Python API — agents, tools, callbacks, plugins, state, artifacts, context caching, session rewind |
references/adk-2.0.md |
ADK 2.0 Workflow API (experimental pre-GA, opt-in) — graph-based workflows, nodes, edges, HITL, parallel processing |
ADK 2.0 Workflows — Opt-in
The Workflow API is experimental, pre-GA (ADK 2.0). Do NOT recommend it by default.
Before suggesting workflow patterns, explain the following to the user and ask if they want to proceed:
- What it is: ADK 2.0 introduces a graph-based Workflow API — nodes (functions, LLM agents, tools) connected by edges with conditional routing, fan-out/fan-in parallelism, and human-in-the-loop interrupts.
- When it helps: Complex multi-step pipelines needing deterministic control flow, parallel processing of list items, structured approval gates, or retry logic — cases where SequentialAgent/ParallelAgent/LoopAgent feel limiting.
- Risks: Pre-GA — APIs may change before GA. Requires
google-adk >= 2.0.0 and Python >= 3.11. Incompatible with Live Streaming. Scaffolded projects need pyproject.toml changes before upgrade — see the reference file for step-by-step instructions.
Only read references/adk-2.0.md after the user explicitly opts in. If they decline or are unsure, use the standard ADK 1.x orchestration patterns from references/adk-python.md (SequentialAgent, ParallelAgent, LoopAgent, BaseAgent).
ADK Documentation
For the ADK docs index (titles and URLs for fetching documentation pages), use curl https://adk.dev/llms.txt.
Related Skills
/google-agents-cli-workflow — Development workflow, coding guidelines, and operational rules
/google-agents-cli-scaffold — Project creation and enhancement with agents-cli scaffold create / scaffold enhance
/google-agents-cli-eval — Evaluation methodology, evalset schema, and the eval-fix loop
/google-agents-cli-deploy — Deployment targets, CI/CD pipelines, and production workflows
1---2name: google-agents-cli-adk-code3description: This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management", or needs ADK (Agent Development Kit) Python API patterns and code examples. Part of the Google ADK skills suite. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, and state management. Do NOT use for creating new projects (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).4---56# ADK Cheatsheet78> **Before using this skill**, activate `/google-agents-cli-workflow` first — it contains the required development phases and scaffolding steps.910## Prerequisites11121. Run `agents-cli info` — if it shows project config, skip to the cheatsheet below132. If no project exists: run `agents-cli scaffold create <name>`143. If user has existing code: run `agents-cli scaffold enhance .`1516Do NOT write agent code until a project is scaffolded.1718> **Python only for now.** This cheatsheet currently covers the Python ADK SDK.19> Support for other languages is coming soon.2021## Quick Reference — Most Common Patterns2223### Agent Creation2425```python26from google.adk.agents import Agent2728root_agent = Agent(29 name="my_agent",30 model="gemini-flash-latest",31 instruction="You are a helpful assistant that ...",32 tools=[my_tool],33)34```3536> **NEVER change an existing agent's `model=` value unless the user explicitly asks.** If a Gemini model returns a 404, it's almost always a `GOOGLE_CLOUD_LOCATION` issue — run the listing command to verify availability before changing anything. For model docs, fetch `https://adk.dev/agents/models/google-gemini/index.md`.37> ```bash38> uv run --with google-genai python -c "39> from google import genai40> client = genai.Client(vertexai=True, location='global')41> for m in client.models.list(): print(m.name)42> "43> ```4445### Basic Tool4647```python48from google.adk.tools import FunctionTool4950def get_weather(city: str) -> dict:51 """Get current weather for a city."""52 return {"city": city, "temp": "22°C", "condition": "sunny"}5354weather_tool = FunctionTool(func=get_weather)55```5657> **ADK built-in tool imports:** Import the tool instance, not the module.58> ```python59> from google.adk.tools.load_web_page import load_web_page # CORRECT60> from google.adk.tools import load_web_page # WRONG61> ```6263### Simple Callback6465```python66from google.adk.agents.callback_context import CallbackContext6768async def initialize_state(callback_context: CallbackContext) -> None:69 state = callback_context.state70 if "history" not in state:71 state["history"] = []7273root_agent = Agent(74 name="my_agent",75 model="gemini-flash-latest",76 instruction="...",77 before_agent_callback=initialize_state,78)79```80---8182## Reference Files8384| File | When to read |85|------|-------------|86| `references/adk-python.md` | ADK Python API — agents, tools, callbacks, plugins, state, artifacts, context caching, session rewind |87| `references/adk-2.0.md` | **ADK 2.0 Workflow API (experimental pre-GA, opt-in)** — graph-based workflows, nodes, edges, HITL, parallel processing |8889### ADK 2.0 Workflows — Opt-in9091> **The Workflow API is experimental, pre-GA (ADK 2.0).** Do NOT recommend it by default.92>93> **Before suggesting workflow patterns**, explain the following to the user and ask if they want to proceed:94>95> 1. **What it is**: ADK 2.0 introduces a graph-based Workflow API — nodes (functions, LLM agents, tools) connected by edges with conditional routing, fan-out/fan-in parallelism, and human-in-the-loop interrupts.96> 2. **When it helps**: Complex multi-step pipelines needing deterministic control flow, parallel processing of list items, structured approval gates, or retry logic — cases where SequentialAgent/ParallelAgent/LoopAgent feel limiting.97> 3. **Risks**: Pre-GA — APIs may change before GA. Requires `google-adk >= 2.0.0` and **Python >= 3.11**. Incompatible with Live Streaming. Scaffolded projects need `pyproject.toml` changes before upgrade — see the reference file for step-by-step instructions.98>99> **Only read `references/adk-2.0.md` after the user explicitly opts in.** If they decline or are unsure, use the standard ADK 1.x orchestration patterns from `references/adk-python.md` (SequentialAgent, ParallelAgent, LoopAgent, BaseAgent).100101## ADK Documentation102103For the ADK docs index (titles and URLs for fetching documentation pages), use `curl https://adk.dev/llms.txt`.104105## Related Skills106107- `/google-agents-cli-workflow` — Development workflow, coding guidelines, and operational rules108- `/google-agents-cli-scaffold` — Project creation and enhancement with `agents-cli scaffold create` / `scaffold enhance`109- `/google-agents-cli-eval` — Evaluation methodology, evalset schema, and the eval-fix loop110- `/google-agents-cli-deploy` — Deployment targets, CI/CD pipelines, and production workflows