Skip to main content
praisonai init team <name> scaffolds a runnable, YAML-first multi-agent AgentTeam project — edit two YAML files, then python -m <slug>.main.
For a single-agent .praisonai/ project (config + one agent + a command + a tool), use praisonai init instead. This page scaffolds a multi-agent team with its own Python package and entry point.

Quick Start

1

Scaffold

Creates a my-research-crew/ project with a my_research_crew Python package.
2

Set your API key

3

Run

How It Works

Generated project structure

The package uses a flat layout (no src/) and config/ lives inside the package. That means python -m my_research_crew.main runs from the project root with no install step.

Flags

Slug rules

The project name becomes a valid Python package identifier.
  • Non-alphanumeric runs collapse to a single underscore, then the name is lower-cased.
  • A leading digit is prefixed with _.
  • Python keywords and soft keywords are suffixed with _team (so imports like from <slug>.team import ... stay valid).
  • A name that slugifies to nothing (e.g. ---) raises an error.

What the generated files do

agents.yaml — one entry per agent with name, role, goal, and backstory, plus a top-level process: key (default sequential, or hierarchical).
tasks.yaml — each task has a description, expected_output, agent, and optional context: list. Descriptions use double-brace {{topic}} placeholders, filled at runtime by AgentTeam(variables=…).
team.py — a build_team(variables=None) factory that loads both YAML files, builds Agent instances, wires Tasks to their agents, and returns an AgentTeam.
main.py — the run() entry point that builds the team, passes variables, and prints the result.
.env.example — commented provider credentials (OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY). Copy it to .env and set at least one. pyproject.toml — optional (skip with --no-pyproject). Uses a flat-layout [tool.setuptools.packages.find] include = ["<slug>*"] so the package installs cleanly. .gitignore — ignores .env, __pycache__/, *.pyc, and .venv/.

Customise the team

Change roles, add a task, or switch the process — all without touching Python.
1

Edit the agents

Open my_research_crew/config/agents.yaml and change any role, goal, or backstory. Add a new agent by adding another key under agents:.
2

Edit the tasks

Open my_research_crew/config/tasks.yaml and change a description or expected_output. Point a task at an agent with agent: <key> and reference upstream output with a context: list.
3

Run again

User interaction flow

Common Patterns

Change the topic without editing YAML

The {{topic}} placeholder is filled from variables in main.py:

Add a third agent

Scaffold with more agents, or add one to the YAML later:

Switch to hierarchical process

A manager delegates instead of running tasks in order:
Or set process: hierarchical in agents.yaml after scaffolding.

Best Practices

Check in .env.example so teammates know which credentials to set, and keep the real .env out of git (it is already in the generated .gitignore).
When you change a task description, update any context: entries that reference it so downstream tasks receive the right upstream output.
--force overwrites existing files without prompting. Commit or back up your edits first.
team.py is a generic factory. Editing agents.yaml and tasks.yaml keeps it reusable — reach for team.py only when you need tools, memory, or guardrails.

Init

Single-agent .praisonai/ scaffold

AgentTeam

The AgentTeam runtime this scaffold targets

Tasks

Task schema referenced by tasks.yaml

Process

Sequential vs hierarchical execution

Run

Running scaffolded agents and commands

Custom Agents & Commands

The .praisonai/ convention