A sophisticated AI-powered agent generation platform built on Google's Agent Development Kit (ADK). This project provides both a powerful backend meta-agent system and a modern web interface for creating custom AI agents through natural language descriptions.
BleachAgentBuilder transforms the complex process of AI agent development into an intuitive, conversation-driven experience. Simply describe what you want your agent to do, and the system will:
- Analyze your requirements
- Design the optimal agent architecture
- Generate complete, production-ready Python code
- Provide a modern web interface for interaction
graph TB
subgraph "π Frontend - Next.js"
UI["`π **Landing Page**<br/>React + Tailwind`"]
Chat["`π¬ **Chat Interface**<br/>Natural Language`"]
Graph["`π **Visual Graph**<br/>ReactFlow`"]
Editor["`π» **Code Editor**<br/>Monaco Editor`"]
Config["`βοΈ **Config Panel**<br/>Dynamic Forms`"]
end
subgraph "π API Layer"
REST["`π **REST API**<br/>FastAPI`"]
WS["`β‘ **WebSocket**<br/>Real-time`"]
end
subgraph "π€ Meta-Agent System"
Orchestrator["`π― **Main Agent**<br/>Google ADK`"]
end
subgraph "π§ Sub-Agents"
ReqAnalyzer["`π **Requirements**<br/>Analyzer`"]
ArchPlanner["`ποΈ **Architecture**<br/>Planner`"]
AgentBuilder["`π§ **Agent**<br/>Builder`"]
ToolBuilder["`π οΈ **Tool**<br/>Builder`"]
end
subgraph "β‘ Core Services"
ConfigMerger["`π **Config**<br/>Merger`"]
CodeGen["`π¦ **Code**<br/>Generator`"]
Validator["`β
**Config**<br/>Validator`"]
end
subgraph "πΎ Data Layer"
SessionDB["`ποΈ **Session**<br/>Storage`"]
FileSystem["`π **File**<br/>System`"]
Templates["`π **Code**<br/>Templates`"]
end
subgraph "π Generated Output"
AgentCode["`π **agent.py**<br/>ADK Implementation`"]
CustomTools["`π¨ **tools.py**<br/>Custom Functions`"]
Dependencies["`π¦ **requirements.txt**<br/>Dependencies`"]
Documentation["`π **README.md**<br/>Documentation`"]
end
%% Flow connections
UI --> Chat
Chat --> REST
REST --> Orchestrator
Orchestrator --> ReqAnalyzer
ReqAnalyzer --> ArchPlanner
ArchPlanner --> AgentBuilder
AgentBuilder --> ToolBuilder
AgentBuilder --> ConfigMerger
ToolBuilder --> ConfigMerger
ConfigMerger --> CodeGen
CodeGen --> Validator
Validator --> AgentCode
Validator --> CustomTools
Validator --> Dependencies
Validator --> Documentation
ConfigMerger --> WS
WS --> Graph
WS --> Editor
WS --> Config
Templates --> CodeGen
SessionDB --> ConfigMerger
AgentCode --> FileSystem
%% Styling with dark black text
classDef frontend fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#000000
classDef backend fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,color:#000000
classDef subagents fill:#f1f8e9,stroke:#689f38,stroke-width:2px,color:#000000
classDef services fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px,color:#000000
classDef data fill:#e8f5e8,stroke:#388e3c,stroke-width:2px,color:#000000
classDef output fill:#fff8e1,stroke:#f57c00,stroke-width:2px,color:#000000
classDef api fill:#fce4ec,stroke:#c2185b,stroke-width:2px,color:#000000
class UI,Chat,Graph,Editor,Config frontend
class Orchestrator backend
class ReqAnalyzer,ArchPlanner,AgentBuilder,ToolBuilder subagents
class ConfigMerger,CodeGen,Validator services
class SessionDB,FileSystem,Templates data
class AgentCode,CustomTools,Dependencies,Documentation output
class REST,WS api
sequenceDiagram
participant User
participant Frontend as "Next.js Frontend"
participant API as "REST API"
participant Orchestrator as "Meta-Agent Orchestrator"
participant ReqAnalyzer as "Requirements Analyzer"
participant ArchPlanner as "Architecture Planner"
participant AgentBuilder as "Agent Builder"
participant ToolBuilder as "Tool Builder"
participant CodeGen as "Code Generator"
participant Output as "Generated Files"
User->>Frontend: "Create a research agent with web search"
Frontend->>API: POST /create-agent
API->>Orchestrator: Natural language request
Note over Orchestrator: Google ADK Meta-Agent System
Orchestrator->>ReqAnalyzer: Analyze requirements
ReqAnalyzer-->>Orchestrator: Structured requirements
Orchestrator->>ArchPlanner: Design architecture
ArchPlanner-->>Orchestrator: Agent structure plan
loop For each agent in plan
Orchestrator->>AgentBuilder: Create agent config
AgentBuilder-->>Orchestrator: Agent configuration
end
loop For each tool needed
Orchestrator->>ToolBuilder: Create custom tool
ToolBuilder-->>Orchestrator: Tool implementation
end
Orchestrator->>CodeGen: Generate Python code
CodeGen->>Output: Create agent.py, requirements.txt, README.md
CodeGen-->>API: Generation complete + file paths
API-->>Frontend: WebSocket update with progress
Frontend-->>User: Visual graph + code preview
Note over User,Output: Technologies Used:<br/>Frontend: Next.js, React, Tailwind CSS, ReactFlow<br/>Backend: Google ADK, Python, Pydantic<br/>API: FastAPI/Express, WebSocket<br/>Output: Complete Python ADK Project
- π§ Intelligent Analysis: Natural language requirement extraction
- ποΈ Architecture Design: Multi-agent system planning
- π§ Custom Tool Creation: Python function generation with proper error handling
- π Complete Code Generation: Production-ready agent projects
- π Session Management: Persistent configuration throughout creation process
- β Validation & Testing: Ensures generated agents are functional
- π¬ Interactive Chat: Natural conversation with the meta-agent
- π¨ Visual Agent Designer: Drag-and-drop agent configuration
- π Agent Graph Visualization: Real-time architecture visualization
- π» Code Editor: Syntax-highlighted code preview and editing
- π± Responsive Design: Modern, mobile-friendly interface
- π Dark/Light Mode: Customizable theme support
bleachAgentBuilder/
βββ agent_generator_with_config/ # Backend Meta-Agent System
β βββ meta_agent/ # Core meta-agent implementation
β β βββ agent.py # Main orchestrator agent
β β βββ sub_agents/ # Specialized sub-agents
β β βββ tools/ # Configuration and generation tools
β β βββ prompts.py # Agent instruction templates
β βββ config_schema.py # Pydantic models for validation
β βββ code_generator.py # Config-to-code conversion
β βββ generated_test_agents/ # Example generated agents
β βββ test_configs.py # Sample configurations
βββ frontend/ # Next.js Web Application
βββ app/ # Next.js app router
βββ components/ # React components
β βββ agent-chat.tsx # Chat interface
β βββ agent-config.tsx # Configuration forms
β βββ agent-graph.tsx # Visual graph display
β βββ code-editor.tsx # Code editing interface
β βββ ui/ # Reusable UI components
βββ lib/ # Utility functions
βββ types/ # TypeScript definitions
βββ styles/ # Global styles
- Python 3.8+
- Node.js 18+
- pnpm (recommended) or npm
-
Navigate to the backend directory:
cd bleachAgentBuilder/agent_generator_with_config -
Install Python dependencies:
pip install -r requirements.txt
-
Set up environment variables (optional):
cp .env.example .env # Edit .env with your API keys if needed -
Test the meta-agent:
python quick_start.py
-
Navigate to the frontend directory:
cd bleachAgentBuilder/frontend -
Install Node.js dependencies:
pnpm install # or: npm install -
Start the development server:
pnpm dev # or: npm run dev -
Open your browser:
http://localhost:3000
from meta_agent import root_agent
# Describe your agent
request = """
Create a research assistant that can search the web,
analyze web pages, and provide well-sourced answers.
"""
# Generate the agent
response = root_agent.run(request)
print(response)request = """
Create a customer service system with:
- Intent classification agent
- Product specialist agent
- Order tracking agent
- Human escalation capability
"""
response = root_agent.run(request)- Open the web application at
http://localhost:3000 - Start a conversation with the meta-agent in the chat interface
- Describe your agent in natural language
- Review the generated configuration in the visual graph
- Preview and edit code in the integrated editor
- Download your agent as a complete Python project
- π€ LLM Agent: Single AI agent with tools and custom prompts
- π Sequential Agent: Runs sub-agents in ordered sequence
- β‘ Parallel Agent: Runs multiple sub-agents simultaneously
- π Loop Agent: Repeats sub-agent execution until conditions are met
google_search- Web search capabilitiesurl_context- Load and analyze web pagesload_memory- Access stored memoriespreload_memory- Load specific memoriesload_artifacts- Access saved artifactstransfer_to_agent- Call other agentsget_user_choice- User interaction promptsexit_loop- Loop control mechanisms
- Python Functions: Generate custom tools with proper error handling
- API Integrations: Connect to external services and APIs
- Data Processing: Create pandas, numpy, and ML-based tools
- File Operations: Handle file I/O and data persistence
{
"agents": {
"research_agent": {
"type": "llm_agent",
"tools": ["google_search", "url_context"],
"instruction": "You are a research assistant..."
}
}
}{
"agents": {
"intent_classifier": {
"type": "llm_agent",
"tools": ["classify_intent"]
},
"product_specialist": {
"type": "llm_agent",
"tools": ["product_search", "inventory_check"]
},
"orchestrator": {
"type": "sequential_agent",
"sub_agents": ["intent_classifier", "product_specialist"]
}
}
}# Backend tests
cd agent_generator_with_config
python test_enhanced_features.py
# Frontend tests
cd frontend
pnpm test# Frontend production build
cd frontend
pnpm build
pnpm start- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Built on Google's Agent Development Kit (ADK)
- Frontend powered by Next.js, React, and Tailwind CSS
- UI components from Radix UI and shadcn/ui
- Code editing with TipTap editor
Made with β€οΈ for the AI agent development community
