Skip to main content
Loops let agents repeat actions until a goal is achieved.

Quick Start

1

Simple Loop

use praisonai::r#loop;

let workflow = r#loop(agent)
    .until(|result| result.contains("DONE"))
    .max_iterations(5);

workflow.run("Keep improving until satisfied").await?;
2

With Counter

use praisonai::r#loop;

let workflow = r#loop(agent)
    .times(3);  // Run exactly 3 times

workflow.run("Generate 3 ideas").await?;

How It Works


Configuration

OptionTypeDefaultDescription
max_iterationsusize10Maximum loop count
untilFnNoneStop condition
timesusizeNoneFixed iteration count

Common Patterns

Refinement Loop

use praisonai::r#loop;

// Keep improving until quality is good
let workflow = r#loop(editor)
    .until(|result| quality_score(result) > 0.9)
    .max_iterations(5);

Retry Pattern

use praisonai::r#loop;

// Retry until success
let workflow = r#loop(api_caller)
    .until(|result| !result.contains("error"))
    .max_iterations(3);

Best Practices

Prevents infinite loops from runaway agents.
Make stop conditions obvious and testable.