use ai_agent::Agent;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("--- Example 26: Conversation Memory ---\n");
let agent =
Agent::new(&std::env::var("AI_MODEL").unwrap_or_else(|_| "claude-sonnet-4-6".to_string()))
.max_turns(10);
println!("=== Turn 1: Tell the agent my favorite color ===\n");
let result1 = agent
.query("My favorite color is blue. Remember this.")
.await?;
println!("Agent: {}\n", result1.text.trim());
let messages = agent.get_messages();
println!("(Message history: {} messages so far)\n", messages.len());
println!("=== Turn 2: Ask the agent what my favorite color is ===\n");
let result2 = agent.query("What is my favorite color?").await?;
println!("Agent: {}\n", result2.text.trim());
let final_messages = agent.get_messages();
println!("(Final message count: {} messages)", final_messages.len());
if result2.text.to_lowercase().contains("blue") {
println!("\n✓ SUCCESS: Agent remembered that your favorite color is blue!");
} else {
println!("\n✗ FAILURE: Agent did not remember the color blue.");
}
println!("\n=== done ===");
Ok(())
}