Skip to main content
Build complex workflows by composing smaller, reusable recipes with the include: pattern.
The user defines a main recipe with include: steps; PraisonAI runs each included recipe in order.

How It Works

If you publish a recipe that needs custom tools, prefer declaring them under the tools_sources: / override_files: directives in TEMPLATE.yaml — those load without requiring users to set PRAISONAI_ALLOW_TEMPLATE_TOOLS. Implicit tools.py loading is disabled by default for security (GHSA-xcmw-grxf-wjhj). See Security Environment Variables for details.

Quick Start

1

Simple Usage

2

With Configuration

Overview

Instead of duplicating common functionality across recipes, extract it into a standalone recipe and include it where needed:

Usage Patterns

Include in Steps Format

Include in Roles Format

Include with Configuration

Python API

call_recipe Tool

Give agents the ability to call other recipes as a tool:

run_recipe Function

Creating Reusable Recipes

agents.yaml:

Cycle Detection

The include system automatically detects circular includes:

Best Practices

Each recipe should do one thing well — publish, transform, or validate — not all three.
State the expected {{previous_output}} format so included recipes parse input reliably.
Included recipes should fail gracefully when required fields are missing.
Publishing or side-effect steps should be safe to retry without duplicating output.

Available Recipes

Key reusable recipes:
  • wordpress-publisher — Publish content to WordPress
  • transcript-generator — Generate transcripts from media
  • data-transformer — Transform data between formats

Workflows

Workflow fundamentals and step types

Recipe Registry

Browse available recipes