freshcrate
Skin:/
Home > Frameworks > adk-rust

adk-rust

Rust Agent Development Kit (ADK-Rust): Build AI agents in Rust with modular components for models, tools, memory, realtime voice, and more. ADK-Rust is a flexible framework for developing AI agents wi

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

Rust Agent Development Kit (ADK-Rust): Build AI agents in Rust with modular components for models, tools, memory, realtime voice, and more. ADK-Rust is a flexible framework for developing AI agents with simplicity and power. Model-agnostic, deployment-agnostic, optimized for frontier AI models. Includes support for real-time voice agents.

README

ADK-Rust

CI crates.io docs.rs Wiki License Rust GitHub Discussions๐Ÿš€ v0.5.0 Released! Structured error envelope (AdkError redesign), OpenAI Responses API client, OpenRouter deep integration, config validation, typed Runner::run() parameters, labs feature preset, provider_from_env() auto-detection, adk::run() one-liner, encrypted sessions with key rotation, graph durable resume, MCP resource API, Deepgram streaming STT, ToolSearchConfig for Anthropic. Breaking: AdkError is now a multi-axis struct, Runner::run() takes UserId/SessionId types. See CHANGELOG for full details and migration guide.

Contributors: Many thanks to @mikefaille โ€” AdkIdentity design, realtime audio, LiveKit bridge, skill system. @rohan-panickar โ€” OpenAI-compatible providers, xAI, multimodal content. @dhruv-pant โ€” Gemini service account auth. @danielsan โ€” Google deps issue & PR (#181, #203), RAG crash report (#205). @CodingFlow โ€” Gemini 3 thinking level, global endpoint, citationSources (#177, #178, #179). @ctylx โ€” skill discovery fix (#204). @poborin โ€” project config proposal (#176). Get started โ†’

Announcements: ADK-Rust Roadmap launched for 2026, we welcome suggestions, comments and ideas. ADK Playground launched! You can now run 70+ ADK-Rust AI Agents online for free. Compile and click. No login, no install. https://playground.adk-rust.com (https://playground.adk-rust.com) And many more discussions, feel free to discuss: GitHub DiscussionsA production-ready Rust framework for building AI agents enabling you to create powerful and high-performance AI agent systems with a flexible, modular architecture. Model-agnostic. Type-safe. Async.

cargo install cargo-adk
cargo adk new my-agent
cd my-agent && cargo run

Or pick a template: --template tools | rag | api | openai. See Quick Start for details.

Overview

ADK-Rust provides a comprehensive framework for building AI agents in Rust, featuring:

  • Type-safe agent abstractions with async execution and event streaming
  • Multiple agent types: LLM agents, workflow agents (sequential, parallel, loop), and custom agents
  • Realtime voice agents: Bidirectional audio streaming with OpenAI Realtime API and Gemini Live API
  • Tool ecosystem: Function tools, Google Search, MCP (Model Context Protocol) integration
  • RAG pipeline: Document chunking, vector embeddings, semantic search with 6 vector store backends
  • Security: Role-based access control, declarative scope-based tool security, SSO/OAuth, audit logging
  • Agentic commerce: ACP and AP2 payment orchestration with durable transaction journals and evidence-backed recall
  • Production features: Session management, artifact storage, memory systems, REST/A2A APIs
  • Developer experience: Interactive CLI, 120+ working examples, comprehensive documentation

Status: Production-ready, actively maintained

Architecture

ADK-Rust Architecture

ADK-Rust follows a clean layered architecture from application interface down to foundational services.

Key Features

Agent Types

LLM Agents: Powered by large language models with tool use, function calling, and streaming responses.

Workflow Agents: Deterministic orchestration patterns.

  • SequentialAgent: Execute agents in sequence
  • ParallelAgent: Execute agents concurrently
  • LoopAgent: Iterative execution with exit conditions

Custom Agents: Implement the Agent trait for specialized behavior.

Realtime Voice Agents: Build voice-enabled AI assistants with bidirectional audio streaming.

Graph Agents: LangGraph-style workflow orchestration with state management and checkpointing.

Multi-Provider Support

ADK supports multiple LLM providers with a unified API:

Provider Model Examples Feature Flag
Gemini gemini-2.5-flash, gemini-2.5-pro, gemini-3-pro-preview, gemini-3-flash-preview (default)
OpenAI gpt-5, gpt-5-mini, gpt-5-nano openai
OpenAI Responses API gpt-4.1, o3, o4-mini openai
Anthropic claude-opus-4-6, claude-sonnet-4-6, claude-haiku-4-5 anthropic
DeepSeek deepseek-chat, deepseek-reasoner deepseek
Groq meta-llama/llama-4-scout-17b-16e-instruct, llama-3.3-70b-versatile groq
Ollama llama3.2:3b, qwen2.5:7b, mistral:7b ollama
Fireworks AI accounts/fireworks/models/llama-v3p1-8b-instruct openai (preset)
Together AI meta-llama/Llama-3.3-70B-Instruct-Turbo openai (preset)
Mistral AI mistral-small-latest openai (preset)
Perplexity sonar openai (preset)
Cerebras llama-3.3-70b openai (preset)
SambaNova Meta-Llama-3.3-70B-Instruct openai (preset)
xAI (Grok) grok-3-mini openai (preset)
Amazon Bedrock anthropic.claude-sonnet-4-20250514-v1:0 bedrock
Azure AI Inference (endpoint-specific) azure-ai
mistral.rs Phi-3, Mistral, Llama, Gemma, LLaVa, FLUX git dependency

All providers support streaming, function calling, and multimodal inputs (where available).

Tool System

Define tools with zero boilerplate using the #[tool] macro:

use adk_tool::{tool, AdkError};
use schemars::JsonSchema;
use serde::Deserialize;
use serde_json::{json, Value};

#[derive(Deserialize, JsonSchema)]
struct WeatherArgs {
    /// The city to look up
    city: String,
}

/// Get the current weather for a city.
#[tool]
async fn get_weather(args: WeatherArgs) -> std::result::Result<Value, AdkError> {
    Ok(json!({ "temp": 72, "city": args.city }))
}

// Use it: agent_builder.tool(Arc::new(GetWeather))

The macro reads the doc comment as the description, derives the JSON schema from the args type, and generates a Tool impl. No manual schema writing, no boilerplate.

Built-in tools:

  • #[tool] macro (zero-boilerplate custom tools)
  • Function tools (custom Rust functions)
  • Google Search
  • Artifact loading
  • Loop termination

MCP Integration: Connect to Model Context Protocol servers for extended capabilities. Supports MCP Elicitation โ€” servers can request additional user input at runtime via structured forms or URLs.

Production Features

  • Session Management: In-memory and SQLite-backed sessions with state persistence, encrypted sessions with AES-256-GCM and key rotation
  • Memory System: Long-term memory with semantic search and vector embeddings
  • Servers: REST API with SSE streaming, A2A protocol for agent-to-agent communication
  • Guardrails: PII redaction, content filtering, JSON schema validation
  • Payments: ACP and AP2 commerce support through adk-payments
  • Observability: OpenTelemetry tracing, structured logging

Core Crates

Crate Purpose Key Features
adk-core Foundational traits and types Agent trait, Content, Part, error types, streaming primitives
adk-agent Agent implementations LlmAgent, SequentialAgent, ParallelAgent, LoopAgent, builder patterns
adk-skill AgentSkills parsing and selection Skill markdown parser, .skills discovery/indexing, lexical matching, prompt injection helpers
adk-model LLM integrations Gemini, OpenAI, Anthropic, DeepSeek, Groq, Ollama, Bedrock, Azure AI + OpenAI-compatible presets (Fireworks, Together, Mistral, Perplexity, Cerebras, SambaNova, xAI)
adk-gemini Gemini client Google Gemini API client with streaming and multimodal support
adk-anthropic Anthropic client Dedicated Anthropic API client with streaming, thinking, caching, citations, vision, PDF, pricing
adk-mistralrs Native local inference mistral.rs integration, ISQ quantization, LoRA adapters (git-only)
adk-tool Tool system and extensibility FunctionTool, Google Search, MCP protocol with elicitation, schema validation
adk-session Session and state management SQLite/in-memory backends, conversation history, state persistence
adk-artifact Artifact storage system File-based storage, MIME type handling, image/PDF/video support
adk-memory Long-term memory Vector embeddings, semantic search, Qdrant integration
adk-payments Agentic commerce orchestration ACP/AP2 adapters, canonical transaction kernel, durable journals, evidence-backed payment flows
adk-rag RAG pipeline Document chunking, embeddings, vector search, reranking, 6 backends
adk-runner Agent execution runtime Context management, event streaming, session lifecycle, callbacks
adk-server Production API servers REST API, A2A protocol, middleware, health checks
adk-cli Command-line interface Interactive REPL, session management, MCP server integration
adk-realtime Real-time voice agents OpenAI Realtime API, Gemini Live API, bidirectional audio, VAD
adk-graph Graph-based workflows LangGraph-style orchestration, state management, checkpointing, human-in-the-loop
adk-browser Browser automation 46 WebDriver tools, navigation, forms, screenshots, PDF generation
adk-eval Agent evaluation Test definitions, trajectory validation, LLM-judged scoring, rubrics
adk-guardrail Input/output validation PII redaction, content filtering, JSON schema validation
adk-auth Access control Role-based permissions, declarative scope-based security, SSO/OAuth, audit logging
adk-telemetry Observability Structured logging, OpenTelemetry tracing, span helpers

Extracted to standalone repos: adk-ui (dynamic UI generation), adk-studio (visual agent builder), adk-playground (120+ examples).

Quick Start

Scaffold a project (recommended)

cargo install cargo-adk

cargo adk new my-agent                    # basic Gemini agent
cargo adk new my-agent --template tools   # agent with #[tool] custom tools
cargo adk new my-agent --template rag     # RAG with vector search
cargo adk new my-agent --template api     # REST server
cargo adk new my-agent --template openai  # OpenAI-powered agent

cd my-agent
cp .env.example .env    # add your API key
cargo run

Manual installation

Requires Rust 1.85 or later (Rust 2024 edition). Add to your Cargo.toml:

[dependencies]
adk-rust = "0.5.0"  # Standard: agents, models, tools, sessions, runner, server, CLI

# Need graph, browser, eval, realtime, audio, RAG?
# adk-rust = { version = "0.5.0", features = ["full"] }

Set your API key:

# For Gemini (default)
export GOOGLE_API_KEY="your-api-key"

# For OpenAI
export OPENAI_API_KEY="your-api-key"

# For Anthropic
export ANTHROPIC_API_KEY="your-api-key"

# For DeepSeek
export DEEPSEEK_API_KEY="your-api-key"

# For Groq
export GROQ_API_KEY="your-api-key"

# For Fireworks AI
export FIREWORKS_API_KEY="your-api-key"

# For Together AI
export TOGETHER_API_KEY="your-api-key"

# For Mistral AI
export MISTRAL_API_KEY="your-api-key"

# For Perplexity
export PERPLEXITY_API_KEY="your-api-key"

# For Cerebras
export CEREBRAS_API_KEY="your-api-key"

# For SambaNova
export SAMBANOVA_API_KEY="your-api-key"

# For Azure AI Inference
export AZURE_AI_API_KEY="your-api-key"

# For Amazon Bedrock (uses AWS IAM credentials)
# Configure via: aws configure

# For Ollama (no key, just run: ollama serve)

Fastest Start โ€” adk::run()

The simplest way to run an agent โ€” one function call, auto-detects your provider from environment variables:

use adk_rust::run;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    // Set ANTHROPIC_API_KEY, OPENAI_API_KEY, or GOOGLE_API_KEY
    let response = run("You are a helpful assistant.", "What is 2 + 2?").await?;
    println!("{response}");
    Ok(())
}

provider_from_env() checks env vars in order: ANTHROPIC_API_KEY โ†’ OPENAI_API_KEY โ†’ GOOGLE_API_KEY. First match wins.

Basic Example (Gemini)

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;

    let agent = LlmAgentBuilder::new("assistant")
        .description("Helpful AI assistant")
        .instruction("You are a helpful assistant. Be concise and accurate.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

OpenAI Example

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("OPENAI_API_KEY")?;
    let model = OpenAIClient::new(OpenAIConfig::new(api_key, "gpt-5-mini"))?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

OpenAI Responses API Example

Uses the /v1/responses endpoint โ€” recommended for reasoning models (o3, o4-mini) and built-in tools:

use adk_rust::prelude::*;
use adk_rust::Launcher;
use adk_model::openai::{OpenAIResponsesClient, OpenAIResponsesConfig};

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("OPENAI_API_KEY")?;
    let config = OpenAIResponsesConfig::new(api_key, "gpt-4.1-mini");
    let model = OpenAIResponsesClient::new(config)?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

Anthropic Example

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("ANTHROPIC_API_KEY")?;
    let model = AnthropicClient::new(AnthropicConfig::new(api_key, "claude-sonnet-4-6"))?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

DeepSeek Example

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("DEEPSEEK_API_KEY")?;

    // Standard chat model
    let model = DeepSeekClient::chat(api_key)?;

    // Or use reasoner for chain-of-thought reasoning
    // let model = DeepSeekClient::reasoner(api_key)?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

Groq Example (Ultra-Fast)

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GROQ_API_KEY")?;
    let model = GroqClient::new(GroqConfig::llama70b(api_key))?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

Ollama Example (Local)

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> AnyhowResult<()> {
    dotenvy::dotenv().ok();
    // Requires: ollama serve && ollama pull llama3.2
    let model = OllamaModel::new(OllamaConfig::new("llama3.2"))?;

    let agent = LlmAgentBuilder::new("assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

Examples

Examples live in the dedicated adk-playground repo (120+ examples covering every feature and provider).

git clone https://github.com/zavora-ai/adk-playground.git
cd adk-playground
cargo run --example quickstart

Companion Projects

Project Description
adk-studio Visual agent builder โ€” drag-and-drop canvas, code generation, live testing
adk-ui Dynamic UI generation โ€” 28 components, React client, streaming updates
adk-playground 120+ working examples for every feature and provider

Advanced Features

Realtime Voice Agents

Build voice-enabled AI assistants using the adk-realtime crate:

use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel, RealtimeModel};
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let model: Arc<dyn RealtimeModel> = Arc::new(
        OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview-2024-12-17")
    );

    let agent = RealtimeAgent::builder("voice_assistant")
        .model(model)
        .instruction("You are a helpful voice assistant.")
        .voice("alloy")
        .server_vad()  // Enable voice activity detection
        .build()?;

    Ok(())
}

Supported Realtime Models:

Provider Model Transport Feature Flag
OpenAI gpt-4o-realtime-preview-2024-12-17 WebSocket openai
OpenAI gpt-realtime WebSocket openai
OpenAI gpt-4o-realtime-* WebRTC openai-webrtc
Google gemini-live-2.5-flash-native-audio WebSocket gemini
Google Gemini via Vertex AI WebSocket + OAuth2 vertex-live
LiveKit Any (bridge to Gemini/OpenAI) WebRTC livekit

Features:

  • OpenAI Realtime API and Gemini Live API support
  • Vertex AI Live with Application Default Credentials (ADC)
  • LiveKit WebRTC bridge for production-grade audio routing
  • OpenAI WebRTC transport with Opus codec and data channels
  • Bidirectional audio streaming (PCM16, G711, Opus)
  • Server-side Voice Activity Detection (VAD)
  • Mid-session context mutation โ€” swap instructions and tools without dropping the call
  • Real-time tool calling during voice conversations
  • Multi-agent handoffs for complex workflows
  • Zero-allocation LiveKit audio output path

Run realtime examples (from adk-playground):

# OpenAI Realtime (WebSocket)
cargo run --example realtime_basic --features realtime-openai
cargo run --example realtime_tools --features realtime-openai
cargo run --example realtime_handoff --features realtime-openai

# Vertex AI Live (requires gcloud auth application-default login)
cargo run -p adk-realtime --example vertex_live_voice --features vertex-live
cargo run -p adk-realtime --example vertex_live_tools --features vertex-live

# LiveKit Bridge (requires LiveKit server)
cargo run -p adk-realtime --example livekit_bridge --features livekit,openai

# OpenAI WebRTC (requires cmake)
cargo run -p adk-realtime --example openai_webrtc --features openai-webrtc

# Mid-session context mutation
cargo run -p adk-realtime --example openai_session_update --features openai
cargo run -p adk-realtime --example gemini_context_mutation --features gemini

Graph-Based Workflows

Build complex, stateful workflows using the adk-graph crate (LangGraph-style):

use adk_graph::{prelude::*, node::AgentNode};
use adk_agent::LlmAgentBuilder;
use adk_model::GeminiModel;

// Create LLM agents for different tasks
let translator = Arc::new(LlmAgentBuilder::new("translator")
    .model(Arc::new(GeminiModel::new(&api_key, "gemini-2.5-flash")?))
    .instruction("Translate the input text to French.")
    .build()?);

let summarizer = Arc::new(LlmAgentBuilder::new("summarizer")
    .model(model.clone())
    .instruction("Summarize the input text in one sentence.")
    .build()?);

// Create AgentNodes with custom input/output mappers
let translator_node = AgentNode::new(translator)
    .with_input_mapper(|state| {
        let text = state.get("input").and_then(|v| v.as_str()).unwrap_or("");
        adk_core::Content::new("user").with_text(text)
    })
    .with_output_mapper(|events| {
        let mut updates = HashMap::new();
        for event in events {
            if let Some(content) = event.content() {
                let text: String = content.parts.iter()
                    .filter_map(|p| p.text())
                    .collect::<Vec<_>>()
                    .join("");
                updates.insert("translation".to_string(), json!(text));
            }
        }
        updates
    });

// Build graph with parallel execution
let agent = GraphAgent::builder("text_processor")
    .description("Translates and summarizes text in parallel")
    .channels(&["input", "translation"Release History
VersionChangesUrgencyDate
v1.0.0# ADK-Rust v1.0.0 โ€” The Stable Foundation The first stable release of the Rust Agent Development Kit. **39 crates. 130K+ downloads in 6 months. Semver stability guarantee.** <a href="https://www.youtube.com/watch?v=tlqaE8qeHac"><img src="https://raw.githubusercontent.com/zavora-ai/adk-rust/main/docs/podcast/episode-2-thumbnail.jpg" alt="โ–ถ Watch the launch video" width="560"></a> ## Highlights - **Semver stable** โ€” pin to `1.x` and your build won't break - **All former Beta crates promoted toHigh6/7/2026
v0.9.0## ADK-Rust v0.9.0 ### Added - **Composable Template System** โ€” 8 base templates, 9 addons, 5 enterprise patterns via `cargo adk new --addon` - **Cargo Adk Build** โ€” Compile-without-deploy subcommand for pre-deployment verification - **A2A Simple Scaffolding** โ€” `A2aServer::quick_start`, `A2aServer::builder`, `cargo adk new --template a2a` ### Changed - Version bump from 0.8.5 to 0.9.0 ### Security - hickory-proto 0.26.1 (moderate โ€” DNS cache poisoning) - openssl 0.10.80 (moderate โ€” certifHigh5/24/2026
v0.8.4## Fixed - **Gemini schema: array types require `items`**: v0.8.3 stripped tuple-style `items` entirely, causing Gemini to reject arrays with "missing field" errors. Now tuple `items` (`[{type:number},{type:number}]`) are converted to a single schema using the first element (`{type:number}`). Arrays without any `items` field also get a default `{type:string}` added. ## Upgrade ```toml adk-gemini = "0.8.4" ``` **Full Changelog**: https://github.com/zavora-ai/adk-rust/compare/v0.8.3...v0.8.4High5/18/2026
v0.8.1## Highlights **Agent Client Protocol (ACP) support** โ€” connect ADK agents to Claude Code, Codex, Kiro CLI, and any ACP-compatible agent as tools. ### New Crate: `adk-acp` ```rust use adk_acp::AcpAgentTool; let kiro = AcpAgentTool::new("kiro-cli acp --trust-all-tools") .description("Delegate coding tasks to Kiro CLI"); let agent = LlmAgentBuilder::new("orchestrator") .tool(Arc::new(kiro)) .build()?; ``` - `AcpAgentTool` โ€” wraps any ACP agent as an ADK Tool - `AcpToolset` โ€” multHigh5/13/2026
v0.8.0## Highlights **Performance release** โ€” default builds are 32% lighter with new feature tiers. ### Breaking Changes - **Default feature changed from `standard` to `minimal`**: `adk-rust = "0.8.0"` now activates only `agents`, `models`, `gemini`, `runner`, and `sessions`. Add `features = ["standard"]` for the full production preset. ### New Feature Tiers | Tier | Includes | Use case | |------|----------|----------| | `minimal` (default) | Gemini, agents, runner, sessions | Fast starter agentHigh5/7/2026
v0.7.0## ADK-Rust v0.7.0 ### Highlights - **Agentic Web Protocol (AWP)** โ€” Two new crates (`awp-types`, `adk-awp`) implementing the full AWP protocol: discovery, capability manifests, trust levels, rate limiting, consent, events, health monitoring, and version negotiation. [AWP Docs](https://github.com/zavora-ai/adk-rust/blob/main/docs/official_docs/deployment/awp.md) - **DeepSeek V4 Provider** โ€” `ThinkingMode`, `ReasoningEffort`, strict tool mode, beta URL support, `v4_pro`/`v4_flash` constructors High4/26/2026
v0.6.0## ๐Ÿš€ ADK-Rust v0.6.0 **31 crates published to crates.io** ยท [Listen to the podcast โ†’](https://github.com/zavora-ai/adk-rust#-rust--beyond-podcast--episode-1-what-is-adk-rust) ### ๐ŸŽง Rust & Beyond Podcast Episode 1 is live on the README โ€” a 2:21 podcast about ADK-Rust generated entirely by the framework using Gemini 3.1 Flash TTS. Two AI hosts, natural voices, zero manual editing. ### โœจ Highlights #### Multimodal Function Responses (`adk-core`, `adk-gemini`, `adk-model`, `adk-agent`) ToolsHigh4/16/2026
v0.5.0# ADK-Rust v0.5.0 **31 crates published to crates.io** โ€” the largest ADK-Rust release to date. ## Highlights ### Zero-Config Ergonomics - **`provider_from_env()`** โ€” auto-detect LLM provider from environment variables (Anthropic โ†’ OpenAI โ†’ Gemini precedence) - **`adk::run(instructions, input)`** โ€” single-function agent invocation with auto provider detection, session creation, and execution ### Prompt Caching Enabled by Default - **Anthropic**: `prompt_caching` now defaults to `true` (cache_Medium3/29/2026
v0.4.0## Highlights **ADK-Rust is now a focused, lean Rust framework.** UI, Studio, and 120+ examples extracted to standalone repos. Default builds dropped from ~2min to ~50s. New `cargo-adk` scaffolding CLI and `#[tool]` proc macro for zero-boilerplate DX. ### Get Started ```bash cargo install cargo-adk cargo adk new my-agent cd my-agent && cargo run ``` Templates: `--template tools` | `rag` | `api` | `openai` --- ## Breaking Changes - **Default preset:** `full` โ†’ `standard`. Server/CLI includLow3/16/2026
v0.3.1## ADK-Rust v0.3.1 ### โญ Highlights - **Vertex AI Streaming**: `adk-gemini` refactored with `GeminiBackend` trait โ€” pluggable `StudioBackend` (REST) and `VertexBackend` (REST SSE streaming + gRPC fallback) - **Realtime Audio Transport**: Three new transports for `adk-realtime` โ€” Vertex AI Live (OAuth2/ADC), LiveKit WebRTC bridge, OpenAI WebRTC (str0m + Opus) - **Vertex AI Live Tool Calling**: New `vertex_live_tools` example demonstrating real-time voice agents with function calling via Vertex Low2/15/2026
v0.3.0## โญ Highlights - **Context Compaction**: Sliding-window summarization of older events to reduce LLM context size (ADK Python parity) - **Workflow Agent Hardening**: ConditionalAgent, LlmConditionalAgent, and ParallelAgent production fixes - **adk-core Production Hardening**: Security limits, validation, provider-agnostic Event, hand-written template parser - **Action Node Code Generation**: Full Rust codegen for HTTP, Database, Email, and Code action nodes - **Workflow Triggers**: Complete trigLow2/10/2026
v0.2.1## โญ Highlights - **OpenAI Structured Output**: `output_schema` now works with OpenAI/Azure via `response_format` API - **Ralph Autonomous Agent**: New example showcasing spec-driven development with loop agents - **Local Model Support**: New examples for Ollama and OpenAI-compatible local APIs - **Improved Error Handling**: Replaced `unwrap()` calls with proper error handling across crates ## Added - **adk-model**: OpenAI/Azure clients now wire `output_schema` to `response_format` with `json_sLow1/22/2026
v0.2.0## Release v0.2.0 - Major Documentation & Feature Update ### ๐Ÿš€ New Features **Streaming Mode Control** - Implement `StreamingMode.None` and SSE per ADK spec - Add streaming mode control to Launcher API - Use stable event IDs for all streaming chunks **Tracing & Observability** - Add `call_llm` span in llm_agent.rs for all model types - Fix async tool execution tracing to match adk-go pattern - Group spans by invocation_id in trace UI - Add get_event endpoint for trace-event linking **AgentsLow1/7/2026
v0.1.8## โญ Highlights - **ADK Studio**: Complete visual agent builder with drag-and-drop workflow design - **Real-Time Streaming**: Live SSE streaming with agent animations and trace events - **Code Generation**: Compile visual workflows to production Rust code - **Rust 2024 Edition**: Migrated to Rust 2024 edition for latest language features ## Added - **ADK Studio** (`adk-studio`): Visual agent development environment - Drag-and-drop agent creation with ReactFlow-based canvas - Full agent paleLow12/28/2025
v0.1.7## ๐Ÿ›ก๏ธ Guardrails Framework This release introduces **adk-guardrail**, a new crate for agent safety and validation. ### New Crate: adk-guardrail - **`Guardrail` trait** - Async validation returning `Pass`, `Fail`, or `Transform` - **`GuardrailSet`** - Collection with parallel execution and early exit on `Critical` severity - **`Severity` levels** - `Low`, `Medium`, `High`, `Critical` ### Built-in Guardrails | Guardrail | Description | |-----------|-------------| | `PiiRedactor` | Detects anLow12/14/2025
v0.1.6# Release v0.1.6 ๐Ÿฆ€ ## ๐ŸŽจ Introducing adk-ui: Dynamic UI Generation for AI Agents This release introduces **adk-ui**, a complete framework for AI agents to generate rich, interactive user interfaces through tool calls. Give your agents the power to render forms, tables, charts, dashboards, and more! ### Why adk-ui? Traditional AI chatbots are limited to text responses. With adk-ui, your agents can: - **Collect structured data** via forms (registration, settings, surveys) - **Display data** wLow12/12/2025
v0.1.5## Added - **DeepSeek provider support**: Native integration with DeepSeek's LLM models - `DeepSeekClient` and `DeepSeekConfig` for easy configuration - Support for `deepseek-chat` (standard) and `deepseek-reasoner` (thinking mode) - Thinking mode with chain-of-thought reasoning - Context caching for 10x cost reduction on repeated prefixes - Full function calling/tool support - Feature flag: `adk-model = { features = ["deepseek"] }` - 8 new DeepSeek examples: - `deepseek_basic` - BLow12/10/2025
v0.1.4Release v0.1.4 - Graph Workflows, Browser Automation, Evaluation This release adds three major new crates: adk-graph for LangGraph-style workflows, adk-browser for browser automation, and adk-eval for agent evaluation. โœจ New Features adk-graph Crate - StateGraph for building complex agent workflows with state channels - AgentNode for wrapping LLM agents as graph nodes with input/output mappers - Conditional routing with Router::by_field and custom predicates - Human-Low12/9/2025
v0.1.3## Release v0.1.3 - Real-time Voice-Enabled AI Agents This release introduces the `adk-realtime` crate for building voice-enabled AI agents with real-time audio streaming. ### โœจ New Features #### adk-realtime Crate - **RealtimeAgent** implementing `adk_core::Agent` trait with full callback/tool/instruction support - **OpenAI Realtime API** support (`gpt-4o-realtime-preview-2024-12-17`, `gpt-realtime`) - **Gemini Live API** support (`gemini-2.0-flash-live-preview-04-09`) Low12/9/2025
v0.1.2## Release v0.1.2 - Multi-Provider LLM Support This release adds support for OpenAI and Anthropic providers, making ADK-Rust a truly multi-provider LLM framework supporting Gemini, OpenAI, and Claude. ### โœจ New Features #### OpenAI Provider Support - Full integration with OpenAI GPT models (GPT-4o, GPT-4o-mini, GPT-4-turbo, GPT-3.5-turbo) - `OpenAIClient` and `OpenAIConfig` for easy configuration - Streaming support with proper tool call accumulation - Feature flag: `adk-model = { features = Low12/7/2025

Dependencies & License Audit

Loading dependencies...

Similar Packages

bamlThe AI framework that adds the engineering to prompt engineering (Python/TS/Ruby/Java/C#/Rust/Go compatible)baml-language-0.15.1-nightly.20260726.b
cocoindexData transformation framework for AI. Ultra performant, with incremental processing. ๐ŸŒŸ Star if you like it!v1.0.17
AutoAgentsA multi-agent framework written in Rust that enables you to build, deploy, and coordinate multiple intelligent agentsv0.4.0
setuptools-rustSetuptools Rust extension pluginv1.13.0
graphbitGraphBit is the worldโ€™s first enterprise-grade Agentic AI framework, built on a Rust core with a Python wrapper for unmatched speed, security, and scalability. It enables reliable multi-agent workflowGraphbit_Python_v0.6.8

More in Frameworks

bamlThe AI framework that adds the engineering to prompt engineering (Python/TS/Ruby/Java/C#/Rust/Go compatible)
saas-builderAI-native SaaS framework that builds full-stack apps using autonomous AI agents
djangoA high-level Python web framework that encourages rapid development and clean, pragmatic design.
sglangSGLang is a fast serving framework for large language models and vision language models.