Skip to content

v0.1.0 — Daimon initial release

Choose a tag to compare

@quinnjr quinnjr released this 03 Mar 19:29
· 14 commits to develop since this 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
  • Tool system with ToolRegistry, parallel execution via JoinSet, typed outputs
  • Memory with SlidingWindowMemory and pluggable Memory trait
  • Lifecycle hooks via AgentHook for observability and control
  • Streaming with granular StreamEvent types
  • Observability via tracing::instrument on 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(())
}

See the README and CHANGELOG for full details.