Skip to main content

Conditional Execution

PraisonAI provides a unified, protocol-driven approach to conditional execution across both AgentFlow (deterministic pipelines) and AgentTeam (multi-agent task graphs).
The ConditionProtocol enables DRY condition handling - write conditions once, use them everywhere.

Architecture Overview

Two Condition Paradigms

Both use the shared ConditionProtocol for consistent evaluation.

AgentFlow Conditions

AgentFlow uses string-based conditions with {{variable}} placeholders.

Basic Usage

Supported Condition Formats


AgentTeam Conditions

AgentTeam uses dict-based conditions for task routing.

Basic Usage

Decision Flow


Using the Protocol Directly

For advanced use cases, you can use the condition classes directly.

ExpressionCondition

DictCondition

evaluate_condition Function


Custom Conditions

Implement ConditionProtocol for custom condition logic.

Best Practices

Use Descriptive Variables

Name variables clearly: {{approval_status}} not {{s}}

Handle Missing Variables

Missing variables return False - design for this

Keep Conditions Simple

Complex logic belongs in agents, not conditions

Test Conditions

Unit test conditions with various inputs

API Reference

ConditionProtocol

ExpressionCondition

DictCondition

evaluate_condition


AgentFlow

Deterministic workflow pipelines

AgentTeam

Multi-agent task coordination

Task Reference

Task configuration options

Orchestration

Workflow orchestration patterns