.praisonai/agents/researcher.md, then let any run delegate to it — no Python file required.
Quick Start
1
Define a named agent
Create
.praisonai/agents/researcher.md:2
Delegate to it by name
Run any agent with the The
researcher subagent exposed:writer agent can now call researcher mid-run. researcher runs under its own model and tools.--subagents applies to a named agent run (--agent <name>). The running agent gains a spawn_subagent tool whose description lists the agents it may delegate to.How It Works
The wrapper discovers.praisonai/agents/*.md, builds a resolver, and hands it to the core subagent tool. When the model targets a named agent that resolves, that agent runs the sub-task under its own definition.
Two Ways to Opt In
Choose which named agents a run may delegate to with either a CLI allow-list or a frontmatter marker.- Allow-list (CLI flag)
- Frontmatter marker
Expose specific agents for this run. The flag takes precedence over any markers:
Definition File Schema
Each.praisonai/agents/<name>.md file uses YAML frontmatter followed by the system prompt as the body.
The Markdown body (after the frontmatter) becomes the agent’s instructions.
Common Patterns
Compose named agents into CLI-first workflows with no Python.Research → write pipeline
Research → write pipeline
Two named agents, each in its own file:
Selective reviewer
Selective reviewer
Expose a reviewer the primary agent invokes only when it needs a second pass:
CLI-first multi-agent — no Python
CLI-first multi-agent — no Python
A whole multi-agent workflow lives in Markdown files under
.praisonai/agents/:Best Practices
Give each agent a clear description
Give each agent a clear description
The
description (or goal) appears in the tool description the primary agent sees, so a specific one-liner helps it pick the right subagent for each sub-task.Scope tools per agent, not per caller
Scope tools per agent, not per caller
A resolved named agent runs under its own
model, tools, and permission — never the caller’s. Keep each definition’s tools minimal for its job.Use the allow-list for one-off runs
Use the allow-list for one-off runs
--subagents a,b opts agents in without editing files, and wins over mode: subagent markers. Use markers for agents you always want delegatable.Backward compatible by default
Backward compatible by default
With no delegatable agents, nothing changes — the
spawn_subagent tool is not wired. An unresolved name falls back to the existing generic spawn.Related
Subagent Delegation
Programmatic spawn control, scoped permissions, and parallel fan-out.
Background Subagents
Fire-and-forget subagents that return a job ID and deliver results later.

