Loops
Repeat agent actions until a condition is met
Loops let agents repeat actions until a goal is achieved.
Quick Start
- Simple Loop
rust use praisonai::r#loop; let workflow = r#loop(agent) .until(|result| result.contains("DONE")) .max_iterations(5); workflow.run("Keep improving until satisfied").await?; - With Counter
rust 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
| Option | Type | Default | Description |
|---|---|---|---|
max_iterations | usize | 10 | Maximum loop count |
until | Fn | None | Stop condition |
times | usize | None | Fixed 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
Always set max_iterations
Prevents infinite loops from runaway agents.
Use clear exit conditions
Make stop conditions obvious and testable.