Quick Start
How It Works
Plan Methods
| Method | Signature | Description |
|---|---|---|
new(name) | fn new(impl Into<String>) -> Self | Create plan |
description(desc) | fn description(impl Into<String>) -> Self | Set description |
add_step(step) | fn add_step(&mut self, PlanStep) | Add a step |
get_step(id) | fn get_step(&self, &str) -> Option<&PlanStep> | Get step |
next_step() | fn next_step(&self) -> Option<&PlanStep> | Get next ready step |
progress() | fn progress(&self) -> f64 | Get progress % |
is_complete() | fn is_complete(&self) -> bool | Check if done |
has_failed() | fn has_failed(&self) -> bool | Check for failures |
step_count() | fn step_count(&self) -> usize | Number of steps |
PlanStep Methods
| Method | Signature | Description |
|---|---|---|
new(description) | fn new(impl Into<String>) -> Self | Create step |
depends_on(step_id) | fn depends_on(impl Into<String>) -> Self | Add dependency |
estimated(seconds) | fn estimated(u64) -> Self | Set estimated time |
start() | fn start(&mut self) | Mark in progress |
complete(output) | fn complete(&mut self, Option<String>) | Mark done |
fail(error) | fn fail(&mut self, impl Into<String>) | Mark failed |
skip() | fn skip(&mut self) | Mark skipped |
is_ready(completed) | fn is_ready(&self, &[String]) -> bool | Check if ready |
When to Use Planning
| Task Type | Use Planning? |
|---|---|
| ”What’s 2+2?” | ❌ No |
| ”Summarize this doc” | ❌ No |
| ”Write a business plan” | ✅ Yes |
| ”Build a website” | ✅ Yes |
Best Practices
Use for complex multi-step tasks
Use for complex multi-step tasks
Planning helps with research papers, code projects, business plans.
Skip for simple queries
Skip for simple queries
Don’t enable planning for quick questions - adds unnecessary overhead.
Enable reasoning for debugging
Enable reasoning for debugging
Turn on reasoning to see the agent’s thought process.

