Back to Adk Python

Agent Builder Assistant

src/google/adk/cli/built_in_agents/README.md

2.0.0b16.8 KB
Original Source

Agent Builder Assistant

An intelligent assistant for building ADK multi-agent systems using YAML configurations.

Quick Start

Using ADK Web Interface

bash
# From the ADK project root
adk web src/google/adk/agent_builder_assistant

Programmatic Usage

python
# Create with defaults
agent = AgentBuilderAssistant.create_agent()

# Create with custom settings
agent = AgentBuilderAssistant.create_agent(
    model="gemini-2.5-pro",
    schema_mode="query",
    working_directory="/path/to/project"
)

Core Features

šŸŽÆ Intelligent Agent Design

  • Analyzes requirements and suggests appropriate agent types
  • Designs multi-agent architectures (Sequential, Parallel, Loop patterns)
  • Provides high-level design confirmation before implementation

šŸ“ Advanced YAML Configuration

  • Generates AgentConfig schema-compliant YAML files
  • Supports all agent types: LlmAgent, SequentialAgent, ParallelAgent, LoopAgent
  • Built-in validation with detailed error reporting

šŸ› ļø Multi-File Management

  • Read/Write Operations: Batch processing of multiple files
  • File Type Separation: YAML files use validation tools, Python files use generic tools
  • Backup & Recovery: Automatic backups before overwriting existing files

šŸ—‚ļø Project Structure Analysis

  • Explores existing project structures
  • Suggests conventional ADK file organization
  • Provides path recommendations for new components

🧭 Dynamic Path Resolution

  • Session Binding: Each chat session bound to one root directory
  • Working Directory: Automatic detection and context provision
  • ADK Source Discovery: Finds ADK installation dynamically (no hardcoded paths)

Schema Modes

Choose between two schema handling approaches:

Embedded Mode (Default)

python
agent = AgentBuilderAssistant.create_agent(schema_mode="embedded")
  • Full AgentConfig schema embedded in context
  • Faster execution, higher token usage
  • Best for comprehensive schema work

Query Mode

python
agent = AgentBuilderAssistant.create_agent(schema_mode="query")
  • Dynamic schema queries via tools
  • Lower initial token usage
  • Best for targeted schema operations

Example Interactions

Create a new agent

Create an agent that can roll n-sided number and check whether the rolled number is prime.

Add Capabilities to Existing Agent

Could you make the agent under `./config_based/roll_and_check` a multi agent system : root_agent only for request routing and two sub agents responsible for two functions respectively ?

Project Structure Analysis

Please analyze my existing project structure at './config_based/roll_and_check' and suggest improvements for better organization.

Tool Ecosystem

Core File Operations

  • read_config_files - Read multiple YAML configurations with analysis
  • write_config_files - Write multiple YAML files with validation
  • read_files - Read multiple files of any type
  • write_files - Write multiple files with backup options
  • delete_files - Delete multiple files with backup options

Project Analysis

  • explore_project - Analyze project structure and suggest paths
  • resolve_root_directory - Resolve paths with working directory context

ADK knowledge Context

  • google_search - Search for ADK examples and documentation
  • url_context - Fetch content from URLs (GitHub, docs, etc.)
  • search_adk_source - Search ADK source code with regex patterns

File Organization Conventions

ADK Project Structure

my_adk_project/
└── src/
    └── my_app/
        ā”œā”€ā”€ root_agent.yaml
        ā”œā”€ā”€ sub_agent_1.yaml
        ā”œā”€ā”€ sub_agent_2.yaml
        ā”œā”€ā”€ tools/
        │   ā”œā”€ā”€ process_email.py    # No _tool suffix
        │   └── analyze_sentiment.py
        └── callbacks/
            ā”œā”€ā”€ logging.py            # No _callback suffix
            └── security.py

Naming Conventions

  • Agent directories: snake_case
  • Tool files: descriptive_action.py
  • Callback files: descriptive_name.py
  • Tool paths: project_name.tools.module.function_name
  • Callback paths: project_name.callbacks.module.function_name

Session Management

Root Directory Binding

Each chat session is bound to a single root directory:

  • Automatic Detection: Working directory provided to model automatically
  • Session State: Tracks established root directory across conversations
  • Path Resolution: All relative paths resolved against session root
  • Directory Switching: Suggest user starting new session to work in different directory

Working Directory Context

python
# The assistant automatically receives working directory context
agent = AgentBuilderAssistant.create_agent(
    working_directory="/path/to/project"
)
# Model instructions include: "Working Directory: /path/to/project"

Advanced Features

Dynamic ADK Source Discovery

No hardcoded paths - works in any ADK installation:

python
from google.adk.agent_builder_assistant.utils import (
    find_adk_source_folder,
    get_adk_schema_path,
    load_agent_config_schema
)

# Find ADK source dynamically
adk_path = find_adk_source_folder()

# Load schema with caching
schema = load_agent_config_schema()

Schema Validation

All YAML files validated against AgentConfig schema:

  • Syntax Validation: YAML parsing with detailed error locations
  • Schema Compliance: Full AgentConfig.json validation
  • Best Practices: ADK naming and structure conventions
  • Error Recovery: Clear suggestions for fixing validation errors

Performance Optimization

Efficient Operations

  • Multi-file Processing: Batch operations reduce overhead
  • Schema Caching: Global cache prevents repeated file reads
  • Dynamic Discovery: Efficient ADK source location caching
  • Session Context: Persistent directory binding across conversations

Memory Management

  • Lazy Loading: Schema loaded only when needed
  • Cache Control: Manual cache clearing for testing/development
  • Resource Cleanup: Automatic cleanup of temporary files

Error Handling

Comprehensive Validation

  • Path Validation: All paths validated before file operations
  • Schema Compliance: AgentConfig validation with detailed error reporting
  • Python Syntax: Syntax validation for generated Python code
  • Backup Creation: Automatic backups before overwriting files

Recovery Mechanisms

  • Retry Suggestions: Clear guidance for fixing validation errors
  • Backup Restoration: Easy recovery from automatic backups
  • Error Context: Detailed error messages with file locations and suggestions

This comprehensive assistant provides everything needed for intelligent, efficient ADK agent system creation with proper validation, file management, and project organization.