A declarative YAML workflow designer powered by Agno agents, teams, tools, and state.
Project description
Modular Agent Designer
Build runnable agent workflows from YAML using Agno. Agno provides the agent runtime, teams, MCP tools, workflow container, and session-state foundation; this package adds a compact YAML graph DSL and CLI.
Install
uv sync
uv run mad --help
Optional remote A2A steps require:
uv sync --extra a2a
Quick Start
name: hello_world
framework: agno
models:
local:
provider: ollama
model: gemma4:e4b
agents:
greeter:
model: local
instruction: "Answer the user's request."
workflow:
nodes: [greeter]
entry: greeter
edges: []
uv run mad validate examples/workflows/hello_world.yaml --skip-build
uv run mad run examples/workflows/hello_world.yaml --input '{"message":"hello"}'
For agent, delegated sub-agent, and tool input/output visibility during a run:
uv run mad run examples/workflows/sub_agent_example.yaml \
--input '{"topic":"Compare RAG with fine-tuning."}' \
--verbose
YAML Surface
models supports ollama, anthropic, openai, and google providers.
Each is instantiated with its corresponding Agno model class.
tools supports:
| Type | Meaning |
|---|---|
builtin |
Shipped callable tool |
python |
Dotted Python callable reference |
mcp_stdio |
Agno MCP toolkit over a local command |
mcp_sse |
Agno MCP toolkit over SSE |
mcp_http |
Agno MCP toolkit over streamable HTTP |
agents entries support:
| Type | Meaning |
|---|---|
agent or omitted |
Agno Agent; sub_agents produces an Agno Team |
node |
State-aware Python callable workflow step |
workflow |
Nested YAML workflow with input/output mappings |
a2a |
Remote A2A workflow step when the optional extra is installed |
Selected entries in skills resolve a SKILL.md file and append those
instructions to the Agno agent's instruction set.
Workflow Graph
The workflow block declares nodes, an entry, and edges. Edge features:
condition: exact/list matching,default, or safeeval.switch/cases: loader sugar for conditional routes.loop: bounded iteration with optionalon_exhausted.on_error: route agent execution failures.to: "{{state...}}": dynamic destination with optionalallowed_targets.to: [a, b],parallel: true,join: c: concurrent fan-out and join.
Runtime output and loop/error metadata are stored in the Agno workflow's
session_state, and custom steps can access the same state through
WorkflowContext.
Project Layout
src/modular_agent_designer/workflow/agno_builder.py: workflow compiler/runtime.src/modular_agent_designer/frameworks/agno_adapter.py: agent and team execution.src/modular_agent_designer/tools/registry.py: callable and MCP tool resolution.src/modular_agent_designer/config/schema.py: YAML schema and validation.examples/workflows/: runnable definitions.
Development
uv run pytest
uv run mad validate examples/workflows/custom_routing_e2e.yaml --skip-build
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-1.0.0.tar.gz.
File metadata
- Download URL: modular_agent_designer-1.0.0.tar.gz
- Upload date:
- Size: 294.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e55e544bddaedbf8489515103ffae4078bd5b8f10e2fb05a2618953bb5020ca
|
|
| MD5 |
30c3d408843e65777a3c5a05388ebb13
|
|
| BLAKE2b-256 |
f2859f1796a30f4cfb675981988b526bd28b77de2eafdb5f98d334942d805503
|
File details
Details for the file modular_agent_designer-1.0.0-py3-none-any.whl.
File metadata
- Download URL: modular_agent_designer-1.0.0-py3-none-any.whl
- Upload date:
- Size: 68.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65128dbfd2a92fdd69338a7de9da7a6e2d4198ee21d5cb072e57f554cc201634
|
|
| MD5 |
9450e1929e94eff21ba1c8af0d7d8f0e
|
|
| BLAKE2b-256 |
88068e1f2b1fdd5d14c8dd6e5ad9c455d691a9d8bb76f66678f6f3b8b16f1654
|