A modular framework for designing and orchestrating complex agentic workflows with ease.
Project description
Modular Agent Designer
Declarative YAML → Google ADK workflow compiler. Define agents, tools, models, and graph topology in a single YAML file — no Python code required.
pip install modular-agent-designer
Note:
google-adkis currently in beta — install with--prerelease=allowwhen usinguv.
Quickstart
# Scaffold a new agent project
uv run modular-agent-designer create my_agent
# Run it
uv run modular-agent-designer run my_agent/my_agent.yaml --input '{"message": "hello"}'
What a workflow looks like
name: research_assistant
models:
local:
provider: ollama
model: ollama_chat/gemma4:e4b
tools:
web:
type: builtin
name: fetch_url
agents:
researcher:
model: local
tools: [web]
instruction: "Research {{state.topic}} and summarize your findings."
writer:
model: local
instruction: "Write a short article based on: {{state.researcher}}"
workflow:
nodes: [researcher, writer]
edges:
- from: researcher
to: writer
uv run modular-agent-designer run research.yaml --input '{"topic": "quantum computing"}'
Key features
| Feature | Details |
|---|---|
| Multi-provider models | Anthropic, Google Gemini, OpenAI, Ollama — all via LiteLLM |
| Tools | Builtin callables, arbitrary Python functions, MCP servers (stdio / SSE / HTTP) |
| Routing | Conditional edges, default fallback, self-loops, parallel fan-out with join barriers |
| State templating | {{state.key}} in prompts resolved at runtime |
| Structured output | Per-agent Pydantic output_schema |
| Thinking/reasoning | Anthropic extended-thinking, OpenAI reasoning effort, Gemini thinking budget |
| Retries | Per-agent fixed or exponential backoff |
| Observability | Optional MLflow / OTLP tracing via --mlflow |
| Escape hatch | Drop in custom BaseNode subclasses for non-LLM logic |
Supported model providers
model: anthropic/claude-sonnet-4-6 # Anthropic — ANTHROPIC_API_KEY
model: gemini/gemini-2.5-pro # Google — GOOGLE_API_KEY
model: openai/gpt-4o # OpenAI — OPENAI_API_KEY
model: ollama_chat/gemma3 # Ollama — OLLAMA_API_BASE (default: localhost:11434)
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file modular_agent_designer-0.7.4.tar.gz.
File metadata
- Download URL: modular_agent_designer-0.7.4.tar.gz
- Upload date:
- Size: 502.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
724642380ec0f8fd9b1d03729c1189bece6ef14690f31fdcafe1ba1a5b2713cb
|
|
| MD5 |
76d2cae084d1420b576eaa86540873f7
|
|
| BLAKE2b-256 |
f4fead437546858bfae8ad2df47ae55e5669f39f1de68efead3e20e115e0099d
|
File details
Details for the file modular_agent_designer-0.7.4-py3-none-any.whl.
File metadata
- Download URL: modular_agent_designer-0.7.4-py3-none-any.whl
- Upload date:
- Size: 51.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e32248413d75bc805950896cef8744d6dc2e5b9aec91fed77bf5909007d603a
|
|
| MD5 |
367390f1283d953594fcf7c733600e36
|
|
| BLAKE2b-256 |
49658e0701fc9ec54160fc845e38c1f6afff73d498af2aba330141c0e9d7295d
|