ADK Agent Builder
Quick Start
Create a new agent in 5 steps:
- •Create
app/sub_agents/my_agent/agent.py - •Define LlmAgent with instruction, tools, output_key
- •Add callbacks in
app/callbacks/pipeline_callbacks.py - •Export in
app/sub_agents/__init__.py - •Add to pipeline in
app/agent.py
Agent Types
| Type | Purpose | Example |
|---|---|---|
| LlmAgent | Single LLM call with tools | IntakeAgent, MarketResearchAgent |
| SequentialAgent | Run sub-agents in order | Main pipeline |
| ParallelAgent | Run sub-agents concurrently | ArtifactGenerationPipeline |
Minimal Template
python
from google.adk.agents import LlmAgent
from ...config import FAST_MODEL
from ...callbacks import before_my_agent, after_my_agent
INSTRUCTION = """You are a specialized agent.
TARGET LOCATION: {target_location}
BUSINESS TYPE: {business_type}
Your task is to analyze the data and provide insights.
"""
my_agent = LlmAgent(
name="MyAgent",
model=FAST_MODEL,
description="What this agent does (for orchestrator)",
instruction=INSTRUCTION,
tools=[],
output_key="my_agent_output",
before_agent_callback=before_my_agent,
after_agent_callback=after_my_agent,
)
Key Patterns
- •State injection: Use
{variable}in instructions to inject state values - •Output storage: Set
output_keyto store agent output in session state - •Callbacks: Add
before_agent_callbackandafter_agent_callbackfor logging - •Retry config: Use
generate_content_configfor API retry settings
Common Mistakes
- •Forgetting to export in
__init__.pyfiles - •Using
output_schemawith tools (disables tool calling) - •Not adding agent to pipeline's
sub_agentslist - •Mismatched state key names between agents
[See references/agent-patterns.md for complete templates and examples]