use funera_orchestrate::{Agent, AgentRuntime, DeepSeekProvider};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let runtime = AgentRuntime::<DeepSeekProvider>::builder()
.api_key(std::env::var("OPENAI_API_KEY")?)
.base_url(std::env::var("OPENAI_BASE_URL").ok())
.model(std::env::var("OPENAI_MODEL").unwrap_or_else(|_| "deepseek-v4-flash".into()))
.build()?;
let agent = Agent::builder().system_prompt("You are helpful.").build();
let (runtime, _resp) = agent.send("I love cats!", runtime).await?.await?;
let (runtime, _resp) = agent
.send("What's a good cat name?", runtime)
.await?
.await?;
println!("(session has 2 messages — agent remembers cats)");
runtime.reset();
println!("(session reset)");
let (_runtime, resp) = agent
.send("What's the capital of France?", runtime)
.await?
.await?;
println!("Agent >> {}", resp.content);
Ok(())
}