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 Mantle project
The engine is chosen by layout rather than by a config key. A project is Mantle when it has anintegrations.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.pyandtools/*.pyin that folder. Nothing to declare. Within one skill, atools/*.pydefinition shadows a same-named one intools.py. - Shared tools in the agent-root
tools/folder must be named in the skill’simport_tools. A shared tool that is not declared is not attached to the skill. - MCP tools use
mcp/<server-id>:<tool-name>inimport_tools. Only listed tools are attached; see Import MCP tools. - On a name collision between skill-local and shared tools, the skill-local tool
wins. An MCP bare name that collides with either fails
rasa train.
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:,channels:, andmcp_servers:are read from your project directory at runtime, so a provider, channel, or MCP connection change only needs a restart.
Files the scaffold adds
rasa init --engine mantle 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
- Getting Started: scaffold a project and build the first skill
- skill.md: the contract for the one required file