1 unstable release
| 0.1.0 | Dec 14, 2025 |
|---|
#2185 in Asynchronous
150KB
3.5K
SLoC
⚔️ Ambush
Task decomposition and plan mode for AI agents - planning the attack.
Overview
Ambush provides task decomposition and planning capabilities for AI agents, breaking complex requests into manageable steps with agent assignments.
Features
- 📋 Task decomposition into sub-steps
- 🔍 Complexity analysis
- 👥 Agent role assignment
- 📊 Dependency graph generation
- 💰 Token usage estimation
Installation
[dependencies]
ambush = "0.1"
Usage
use ambush::{TaskPlanner, PlanConfig};
#[tokio::main]
async fn main() -> Result<(), ambush::PlannerError> {
let config = PlanConfig::default();
let planner = TaskPlanner::new(config);
// Generate a plan from a user request
let plan = planner.plan("Add user authentication to my app").await?;
println!("Plan has {} steps:", plan.steps.len());
for step in &plan.steps {
println!(" - {} ({:?})", step.description, step.complexity);
}
println!("Estimated tokens: {}", plan.estimated_tokens);
Ok(())
}
Plan Granularity
use ambush::{TaskPlanner, PlanConfig};
use warhorn::PlanGranularity;
// Coarse-grained planning (fewer, larger steps)
let plan = planner.plan_with_granularity(
"Refactor the database layer",
PlanGranularity::Coarse
).await?;
// Detailed planning (more, smaller steps)
let plan = planner.plan_with_granularity(
"Add login form",
PlanGranularity::Detailed
).await?;
// Auto-detect based on request complexity
let plan = planner.plan_with_granularity(
"Fix bug in parser",
PlanGranularity::Auto
).await?;
Agent Assignment
The planner automatically assigns agent roles based on the task domain:
use warhorn::AgentRole;
for (step_id, role) in &plan.agent_assignments {
match role {
AgentRole::DomainLead { domain } => {
println!("Step {} assigned to {} lead", step_id, domain);
}
AgentRole::Worker => {
println!("Step {} assigned to worker", step_id);
}
_ => {}
}
}
Part of the Goblin Family
- warhorn - Protocol types
- trinkets - Tool registry
- wardstone - Sandboxing
- skulk - MCP connections
- hutch - Checkpoints
- ambush - Task planning (you are here)
- cabal - Orchestration
License
MIT OR Apache-2.0
Dependencies
~9–13MB
~146K SLoC