use recursive::agent::Agent;
use recursive::llm::{Completion, MockProvider};
use std::sync::Arc;
#[tokio::main]
async fn main() {
let provider = Arc::new(MockProvider::new(vec![Completion {
content: "Hello from the agent!".into(),
tool_calls: vec![],
finish_reason: Some("stop".into()),
usage: None,
}]));
let mut agent = Agent::builder()
.llm(provider)
.system_prompt("You are a helpful assistant.")
.max_steps(5)
.build()
.expect("failed to build agent");
let outcome = agent.run("Say hello").await.expect("agent run failed");
println!("Final message: {:?}", outcome.final_message);
println!("Steps taken: {}", outcome.steps);
println!("Finish reason: {:?}", outcome.finish);
println!("Transcript messages: {}", outcome.transcript.len());
}