Welcome to the Agent Directory repository! This collection provides production-ready AI agents built on top of the Agent Development Kit (ADK), designed to showcase various agent patterns, capabilities, and integrations.
- π€ Production-Ready Agents: Battle-tested agents covering web search, research, image generation, and more
- π Next.js Web UI: Full-featured frontend with agent chat, community posts, Google OAuth, and more
- π§© Plugin System: Server-level plugins for logging, error recovery, and more β applied globally to every agent run
- π Standard API: All agents expose a consistent HTTP API for easy integration
- π Live Testing: All agents are live and testable at agentdirectory.folch.ai
- π Metadata-Driven: Agents are automatically discovered and displayed based on
metadata.jsonfiles - π¦ Open Source: MIT licensed and ready for contributions
π Live Demo: Test all agents in this repository at agentdirectory.folch.ai. The website automatically discovers and displays agents based on their
metadata.jsonfiles, making proper metadata configuration essential for your agent to appear correctly.
This repository contains ADK sample agents for Python. Each agent is self-contained with its own configuration, tools, and documentation. Navigate to individual agent directories to see setup instructions and learn more about specific capabilities.
Important
The agents in this repository are built using the Agent Development Kit (ADK). Before you can run any of the samples, you must have the ADK installed. For instructions, please refer to the ADK Installation Guide.
Note
Metadata is Essential: For your agent to appear correctly on agentdirectory.folch.ai, you must include a properly formatted metadata.json file in your agent directory. See AGENT_METADATA.md for the complete metadata specification.
To learn more, check out the ADK Documentation and the ADK Python repository.
The Agent Directory includes a plugin system that applies cross-cutting concerns to every agent run automatically. Plugins are registered at the server level in run_adk.py via ADK's extra_plugins mechanism β no changes needed in individual agents.
| Plugin | What it does |
|---|---|
| ConsoleLoggerPlugin | Pretty, color-coded terminal output for every agent lifecycle event β LLM requests/responses, tool calls, errors, timing. Makes debugging a breeze. |
| SelfHealingToolPlugin | Automatic error recovery for tool failures. Detects errors hidden in successful responses (common with MCP tools), reflects the error back to the LLM with suggestions, and retries up to 3 times before gracefully falling back. |
- Create a new file in
plugins/(e.g.plugins/my_plugin.py) - Extend
BasePluginfromgoogle.adk.plugins.base_plugin - Instantiate a singleton at module level
- Add its qualified name to
PLUGIN_QUALIFIED_NAMESinplugins/__init__.py
That's it β your plugin will automatically apply to all agents on the next deploy.
The adk-web-ui/ directory contains the Next.js frontend that powers agentdirectory.folch.ai.
Tech stack: Next.js 16, React 19, Tailwind CSS 4, Drizzle ORM, NextAuth (Google OAuth), Zustand, Neon (PostgreSQL)
Key features:
- Agent discovery and chat interface with SSE streaming
- Google OAuth authentication
- Community trending posts with likes
- Rate limiting for anonymous and authenticated users
- Mermaid diagram rendering, artifact display, and more
Running locally:
cd adk-web-ui
npm install
cp .env.example .env.local # Configure your environment variables
npm run dev # Starts on http://localhost:3000The frontend connects to the backend via NEXT_PUBLIC_ADK_SERVER_URL (defaults to http://localhost:8000).
This is a monorepo containing both the Python backend (ADK agents) and the Next.js frontend.
.
βββ agents/ # Python backend β ADK agents
β βββ adk_agent_builder/ # Meta-agent for building agents
β βββ data_analyst_agent/ # Code execution & data analysis
β βββ exa_mcp_agent/ # EXA AI research agent
β βββ image_generation_agent/ # Image generation agent
β βββ mermaid_mcp_agent/ # Mermaid diagram generator
β βββ resume_screener/ # Multi-agent resume screener
β βββ simple_agent_maps_grounded/ # Maps-integrated agent
β βββ simple_agent_web_search/ # Basic web search agent
β βββ tavily_mcp_agent/ # Tavily research agent
β βββ pyproject.toml # Python dependencies
β βββ uv.lock # Lock file
βββ adk-web-ui/ # Next.js frontend
β βββ app/ # App router pages & API routes
β βββ components/ # React components
β βββ lib/ # Utilities, auth, DB, state
β βββ drizzle/ # Database migrations
β βββ package.json # Node dependencies
β βββ next.config.ts # Next.js configuration
βββ plugins/ # Server-level plugins
β βββ __init__.py # Plugin registry
β βββ console_logger.py # Terminal logging plugin
β βββ circuit_breaker.py # Self-healing error recovery
βββ run_adk.py # Backend server entrypoint
βββ Dockerfile # Backend Docker configuration
βββ railway.json # Railway deployment config
βββ AGENT_METADATA.md # Metadata specification
βββ metadata.json.template # Metadata template
βββ LICENSE # License file
Each agent directory contains:
agent.py- Main agent definitionconfig/- Configuration and LLM setupprompt/- Agent instructions and promptstools/- Custom tools and integrationsmetadata.json- Required agent metadata for website integrationREADME.md- Agent-specific documentation and setup instructions
Important
The metadata.json file is required for your agent to appear correctly on agentdirectory.folch.ai. The website automatically discovers agents and displays them based on this metadata. See AGENT_METADATA.md for the complete specification.
All agents expose a standard HTTP API through the ADK server. The server provides:
- Agent Discovery:
GET /list-apps- List available agents - Agent Execution:
POST /run- Run agent (non-streaming) - Streaming:
POST /run_sse- Run agent with Server-Sent Events - Session Management: Create and manage conversation sessions
- Artifacts: Access generated files, images, and structured outputs
For detailed API documentation, see the ADK documentation.
If you have any questions or if you found any problems with this repository, please report through GitHub issues.
We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, we'd love to have your agent included in the Agent Directory.
- Fork and Clone: Fork this repository and clone your fork locally
- Create Your Agent: Develop your agent following the ADK structure and best practices
- Add Metadata: Create a
metadata.jsonfile with complete agent information (required for the website to display your agent) - Add Documentation: Include a
README.mdwith setup and usage instructions - Submit Pull Request: Create a pull request with your agent for review
When contributing an agent, ensure your agent directory follows this structure:
agent_name/
βββ agent.py # Main agent definition (required)
βββ metadata.json # Agent metadata (required)
βββ README.md # Documentation and setup instructions (recommended)
βββ config/ # Configuration files
β βββ __init__.py
β βββ llm.py # LLM configuration
β βββ utils.py # Utility functions
βββ prompt/ # Agent prompts and instructions
β βββ __init__.py
β βββ prompt.py # Main prompt definition
βββ tools/ # Custom tools and integrations
βββ __init__.py
βββ your_tool.py # Tool implementations
Required Files:
agent.py- Main agent implementationmetadata.json- Complete agent metadata (see AGENT_METADATA.md)
Recommended Files:
README.md- Setup instructions, usage examples, and documentationconfig/- Configuration and LLM setupprompt/- Agent instructions and promptstools/- Custom tools and integrations
For detailed contribution instructions, including metadata templates and submission guidelines, see the Contribution Guide.
When contributing:
- Add appropriate documentation
- Include tests for new features
- Ensure
metadata.jsonis complete and accurate - this is critical for your agent to appear on the website
- Live Agent Directory - Test all agents in this repository
- Google ADK Documentation
- ADK Python Repository
- Contribution Guide - Learn how to submit your agent
This project is licensed under the MIT License - see the LICENSE file for details.
This is not an officially supported Google product. This project is intended for demonstration and educational purposes.