| name | adk-agent-builder |
| description | Guide for adding new agents to the ADK pipeline. Use when creating a new LlmAgent, SequentialAgent, or ParallelAgent, or when extending the pipeline with additional processing stages. |
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
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]