Skip to main content
Execution configuration controls how agents run - maximum iterations, time limits, rate limiting, and retry behavior.

Quick Start

1

Preset Mode

from praisonaiagents import Agent

# Use a preset
agent = Agent(
    name="Fast Agent",
    instructions="You answer quickly",
    execution="fast"  # Preset: limited iterations
)
2

Custom Configuration

from praisonaiagents import Agent, ExecutionConfig

agent = Agent(
    name="Thorough Agent",
    instructions="You do comprehensive analysis",
    execution=ExecutionConfig(
        max_iter=50,              # Max iterations
        max_rpm=100,              # Requests per minute
        max_execution_time=300,   # 5 minute timeout
        max_retry_limit=5,        # Retries on failure
    )
)

Execution Presets

Presetmax_iterUse Case
fast10Quick responses
balanced20Standard tasks
thorough50Complex analysis
unlimitedNoneLong-running jobs
agent = Agent(instructions="...", execution="fast")
agent = Agent(instructions="...", execution="balanced")
agent = Agent(instructions="...", execution="thorough")
agent = Agent(instructions="...", execution="unlimited")

Configuration Options

from praisonaiagents import ExecutionConfig

config = ExecutionConfig(
    max_iter=20,              # Maximum iterations
    max_rpm=None,             # Requests per minute (None = no limit)
    max_execution_time=None,  # Timeout in seconds (None = no limit)
    max_retry_limit=2,        # Retries on failure
)
OptionTypeDefaultDescription
max_iterint20Maximum loop iterations
max_rpmintNoneRate limit (requests/minute)
max_execution_timeintNoneTimeout in seconds
max_retry_limitint2Max retries on failure

Iteration Limits

Prevent infinite loops:
agent = Agent(
    instructions="You solve problems iteratively",
    execution=ExecutionConfig(max_iter=30)
)

# Agent stops after 30 iterations even if not done

Time Limits

Prevent runaway execution:
agent = Agent(
    instructions="You analyze data",
    execution=ExecutionConfig(
        max_execution_time=60  # Stop after 60 seconds
    )
)

Rate Limiting

Control API request rate:
agent = Agent(
    instructions="You search the web",
    execution=ExecutionConfig(
        max_rpm=60  # Max 60 requests per minute
    )
)
Useful for:
  • Respecting API rate limits
  • Controlling costs
  • Preventing abuse

Retry Behavior

Handle transient failures:
agent = Agent(
    instructions="You call external APIs",
    execution=ExecutionConfig(
        max_retry_limit=3  # Retry up to 3 times
    )
)

Multi-Agent Execution

For multi-agent workflows:
from praisonaiagents import PraisonAIAgents, MultiAgentExecutionConfig

agents = PraisonAIAgents(
    agents=[agent1, agent2],
    execution=MultiAgentExecutionConfig(
        max_iter=10,      # Per task
        max_retries=5,    # Per task
    )
)

Combining Limits

Use multiple limits together:
agent = Agent(
    instructions="You do comprehensive research",
    execution=ExecutionConfig(
        max_iter=100,             # Allow many iterations
        max_execution_time=600,   # But stop after 10 minutes
        max_rpm=30,               # Rate limit API calls
        max_retry_limit=3,        # Retry failures
    )
)

Best Practices

Too low = incomplete tasks. Too high = wasted resources. Start with defaults and adjust.
Always set max_execution_time in production to prevent runaway agents.
Use max_rpm when agents call external APIs to respect rate limits.
Set max_retry_limit for operations that may fail transiently.