Skip to main content
A Maestro project is two config files and a skills/ folder. Everything else is optional and added when a skill needs it.

The minimum

This is a complete, trainable agent:

Everything a project can hold

Each optional file is added only when a skill needs it:

What makes it a Maestro project

The engine is chosen by layout rather than by a config key. A project is Maestro when it has an integrations.yml and at least one skills/*/skill.md. That glob is one level deep, so a skill folder sits directly under skills/.

Agent root

A skill folder

The folder name is the skill id. A skill in skills/card_replace/ is @skill.card_replace in prose and session.card_replace.<entry> in memory, whatever its frontmatter name: says.

Declared or discovered

The difference decides whether a tool is usable without any config:
  • A skill’s own tools are auto-discovered from tools.py and tools/*.py in that folder. Nothing to declare. Within one skill, a tools/*.py definition shadows a same-named one in tools.py.
  • Shared tools in the agent-root tools/ folder must be named in the skill’s import_tools. A shared tool that is not declared is not attached to the skill.
  • On a name collision, the skill-local tool wins. This is resolved once when the model loads.

What ships in the trained model

rasa train copies agent.yml, integrations.yml, memory.yml, responses.yml, and the skills/, tools/, and references/ directories into the model archive. Two consequences worth knowing:
  • The reference index is built at train time, so adding or editing a file under any references/ folder needs a retrain before the agent can answer from it.
  • llm: and channels: are read from your project directory at runtime, so a provider or channel change only needs a restart.

Files the scaffold adds

rasa init --engine maestro also writes AGENTS.md, context for your coding agent, and .env, holding your keys. Neither is read by the engine: .env supplies the environment variables that api_key_env and ${VAR} resolve against, and AGENTS.md is for your IDE.

See also