A self-expanding agent system built with Google ADK & Gemini
Daedalus Toolsmith is an agentic framework that can design, implement, test, and register new Python function tools and multi-agent pipelines entirely through LLM-driven workflows. It combines structured agent pipelines, ForgeAgent patterns, a persistent Golden Set for regression testing, and an orchestrator that never answers directly but always delegates to tools and pipelines.
This repository contains the full implementation of Daedalus, including the orchestrator agent, ToolsmithPipeline, AgentSmithPipeline, ToolGym testing framework, dynamic registries, and supporting models and utilities.
Most agents today are static: they can only use capabilities that developers manually wrote. Daedalus removes that bottleneck.
When the system receives a request:
- If an existing tool or pipeline can handle it -> Daedalus uses it.
- If not -> Daedalus creates a new tool or a new multi-agent pipeline automatically.
Daedalus evolves over time, expanding its registry of validated tools and workflows.
Daedalus can autonomously:
- Plan a tool specification
- Generate Python code
- Create test cases
- Run those tests in a deterministic ToolGym environment
- Repair code if needed
- Register the passing tool for future use
- Add passing tests to a persistent Golden Set
Daedalus can also create LLM-only multi-agent pipelines:
- Sequential workflows
- Iterative refinement loops
- Parallel gather pipelines
- Generator–critic patterns
Pipelines are validated, registered, and become callable like built-in tools.
The orchestrator:
- Never answers directly
- Inspects available tools and pipelines
- Chooses the correct execution path
- Invokes ToolsmithPipeline or AgentSmithPipeline when new capabilities are needed
Every generated tool is evaluated in a controlled environment:
- Deterministic execution
- Structured test cases
- Automated regression storage
- Continuous expansion of validation data
InMemoryToolRegistry- stores Python function toolsInMemoryAgentRegistry- stores multi-agent pipelines
Both persist across the orchestrator’s lifetime.
Here is the updated Run section, rewritten cleanly with Docker instructions added, without rewriting the rest of the README:
pip install -r requirements.txtCreate a .env file:
GOOGLE_API_KEY=your_key_here
python main.pydocker build -t daedalus-toolsmith .docker run -p 8000:8000 --env-file .env daedalus-toolsmithThis starts the FastAPI + ADK application inside a container, exposing it on http://localhost:8000.
To interact with Daedalus via a web interface, start the ADK web server:
adk webThen navigate to http://localhost:8000 in your browser.
pytest tests/This uses Google ADK’s evaluation engine to validate tool and pipeline execution.
Uploaded images were generated using Gemini AI Image Generator. The demo video was created using Google AI Studio TTS and Adobe Free Animation Maker.
- Automatic updates for already-registered tools and pipelines
- Improved use of registry tools inside generated pipelines
- Persistent storage (SQLite / Firestore) for tools, pipelines, and golden tests
- Static analysis + sandboxing for generated code
- Dashboard for ToolGym runs and pipeline introspection
Built using:
- Google Agent Development Kit (ADK)
- Google Gemini (reasoning, code generation, evaluation)
- FastAPI as the runtime interface
Special thanks to the Google Agentic AI Intensive Course instructors and community.