Skip to main content

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 safe eval.
  • switch/cases: loader sugar for conditional routes.
  • loop: bounded iteration with optional on_exhausted.
  • on_error: route agent execution failures.
  • to: "{{state...}}": dynamic destination with optional allowed_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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

modular_agent_designer-1.0.0.tar.gz (294.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

modular_agent_designer-1.0.0-py3-none-any.whl (68.8 kB view details)

Uploaded Python 3

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

Hashes for modular_agent_designer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0e55e544bddaedbf8489515103ffae4078bd5b8f10e2fb05a2618953bb5020ca
MD5 30c3d408843e65777a3c5a05388ebb13
BLAKE2b-256 f2859f1796a30f4cfb675981988b526bd28b77de2eafdb5f98d334942d805503

See more details on using hashes here.

File details

Details for the file modular_agent_designer-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for modular_agent_designer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65128dbfd2a92fdd69338a7de9da7a6e2d4198ee21d5cb072e57f554cc201634
MD5 9450e1929e94eff21ba1c8af0d7d8f0e
BLAKE2b-256 88068e1f2b1fdd5d14c8dd6e5ad9c455d691a9d8bb76f66678f6f3b8b16f1654

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page