v0.1.0 — Daimon initial release
Daimon v0.1.0
Initial release of the Daimon agent framework — a Rust-native AI agent framework for building LLM-powered agents with tool use, memory, and streaming.
Highlights
- Core ReAct agent loop with streaming, parallel tool execution, cancellation, and usage tracking
- Five model providers (all feature-gated):
- OpenAI (
openai, default) — Chat Completions API, SSE streaming,response_format,parallel_tool_calls - Anthropic (
anthropic, default) — Messages API, streaming, prompt caching - Google Gemini (
gemini) — Generative Language REST API, Vertex AI support - Azure OpenAI (
azure) — Azure deployments, API key + Entra ID auth - AWS Bedrock (
bedrock) — Converse/ConverseStream API, guardrails
- OpenAI (
- Tool system with
ToolRegistry, parallel execution viaJoinSet, typed outputs - Memory with
SlidingWindowMemoryand pluggableMemorytrait - Lifecycle hooks via
AgentHookfor observability and control - Streaming with granular
StreamEventtypes - Observability via
tracing::instrumenton all agent and provider methods
Getting Started
[dependencies]
daimon = "0.1.0"use daimon::prelude::*;
#[tokio::main]
async fn main() -> daimon::Result<()> {
let agent = Agent::builder()
.model(daimon::model::openai::OpenAi::new("gpt-4o"))
.system_prompt("You are a helpful assistant.")
.build()?;
let response = agent.prompt("What is Rust?").await?;
println!("{}", response.text());
Ok(())
}