Minimal AI agent framework in Rust.
⚠️ Early Development: This project is in early phase and the API will change frequently.
#[tool]macro for functions and methods to create custom tools.- Register MCP tools
- History management
- Streaming
- Parallel tool execution
- Observability via
tracing
Add to your Cargo.toml:
[dependencies]
tiny-loop = "0.2"
serde = { version = "1", features = ["derive"] }
schemars = "1"use tiny_loop::{Agent, llm::OpenAIProvider, tool::tool};
#[tool]
async fn search(
/// Search query
query: String
) -> String {
format!("Results for: {}", query)
}
#[tokio::main]
async fn main() {
let mut agent = Agent::new(OpenAIProvider::new())
.system("You are a helpful assistant")
.tool(search);
let response = agent.chat("Search for Rust tutorials").await.unwrap();
println!("{}", response);
}