zavora-ai/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 with simplicity and power. Model-agnostic, deployment-agnostic, optimized for frontier AI models. Includes support for real-time voice agents.

647

stars

464

commits

Rust

primary language

Sep 11, 2026

updated

adk-rust.com/
adk
adk-agent
adk-artifact
adk-cli
adk-google
adk-memory
adk-model
adk-rust
adk-server
adk-tool
agent-developer-kit
google-adk
google-adk-rust
openai-adk
realtime
realtime-adk
realtime-audio

README

ADK-Rust

CI crates.io docs.rs Wiki License Rust GitHub Discussions Sponsors

A production-ready Rust framework for building AI agents. Model-agnostic, type-safe and async, across 43 publishable crates for agent orchestration.

v2.2.0 Released! This API-compatible minor release completes the Gemini Enterprise Agent Platform consumption path: the Gen AI Evaluation Service bridge, Vertex AI RAG Engine retrieval and grounding, an Agent Retrieval vector store, Agent Registry discovery and registration, Skill Registry consumption with remote skill loading, and remote ReasoningEngine agents you can call as sub-agents — every one opt-in and composable with any preset, and all appended to gemini-agent-platform. Graph workflows gain native tool confirmation pauses. Tracing is fixed so one invocation exports as one trace rather than several disconnected ones. All 43 crates are available on crates.io.

Milestone: ADK-Rust has crossed 500K total crates.io downloads across the workspace crates.

Coming from 1.x: six APIs changed shape and the fan-in default changed behaviour without an API change. See the migration guide and the CHANGELOG.

🎬 Rust & Beyond Podcast — Episode 3: Agents That Act

ADK-Rust v2.0.0 — Agents That Act. Eight chapters on agents that run on their own and finish what they start: a workflow that resumes exactly where it stopped, a graph that changes course when the problem does, and approvals you can trust down to the digest. 42 crates, 4,300+ tests, sub-millisecond loop overhead.

▶ Watch Episode 3: ADK-Rust v2.0.0 — Agents That Act

▶️ Watch on YouTube40 min 50 sec · Hosts: James (Fenrir) & Ada (Kore) · Video with slides

"Show me." — Ada, thirty seconds in, declining to be told about the visual builder

Episode highlights
  • The Numbers — 42 crates, 4,300+ tests, 104 runnable examples, 568 μs agent-loop overhead against LangGraph's 1,228 ms
  • Agents That Survive — SQLite checkpointers, delta checkpoints, and a pause that resumes in a fresh process that shares only the database file
  • Subgraphs — a graph as a node, nested three deep, with channel mismatches caught when the parent compiles rather than as an absent value at run time
  • Deciding At Run Timerun_node_with for work whose size comes from state, and with_goto for a node that picks its own successor with no edge declared
  • Built To Run Unattended — retries with capped backoff, concurrency bounds, node timeouts, and checkpoint retention that keeps a week-long thread steady
  • Governed Computer Use — approval interrupts bound to a digest, so what you approved is what runs
  • What It Costs — no automatic crash recovery, an unbounded child ledger, and why we kept two orchestration APIs when the other ADKs deprecated one
Previous episodes

🎧 Episode 2: v1.0.0 — The Stable Foundation

A deep-dive into what shipped, who built it, and where it was going. 39 crates. 130K downloads. Semver stable.

▶ Watch Episode 2: ADK-Rust v1.0.0 Launch

▶️ Watch on YouTube10 min 12 sec · Hosts: James (Fenrir) & Ada (Kore)

"We believe the next generation of software will be built by composing autonomous agents, not by writing every line of logic by hand. And we believe Rust is the right language for the runtime those agents live in." — James

🎧 Episode 1: What is ADK-Rust?

2 min 21 sec · Generated entirely by ADK-Rust using Gemini 3.1 Flash TTS

How are these made?

Episodes are generated using ADK-Rust's own audio capabilities — Chirp3-HD multi-speaker TTS synthesis via adk-audio. The script, slide deck (Marp), and synthesized audio segments are concatenated with ffmpeg into a video presentation. Zero manual voice recording.

# Episode 3 assets
docs/podcast/episode-3-script.md      # Full script, eight chapters
docs/podcast/episode-3-slides.md      # Marp slide deck
docs/podcast/adk-rust-episode-3.mp4   # Final video
docs/podcast/episode-3-narration.mp3  # Audio-only

The episode 3 video and slides are not in the repository: the video alone is about 900 MB, over GitHub's 100 MB per-file limit. The script and the deck source are.


Build and test an agent in five minutes

Scaffold an OpenAI agent with the HTTP runtime and embedded UI:

cargo install cargo-adk
cargo adk new quickstart_agent --template api --provider openai
cd quickstart_agent
cp .env.example .env
# Open .env and replace the OPENAI_API_KEY placeholder, then:
cargo run

Open http://127.0.0.1:8080/ui/, enter a prompt, and press Enter. The UI creates the session, streams the run, renders Markdown and tool results, animates the active agent or workflow edge, and keeps the event timeline, state, artifacts, and telemetry beside the conversation.

Prompting an ADK-Rust team, watching its handoff topology, and opening runtime telemetry

The animation uses the richer team showcase so the topology is visible; the single-agent project you just generated uses the same UI with a one-node graph. Confirm the server independently with:

curl -fsS http://127.0.0.1:8080/api/health

The five-minute quickstart explains the generated files and the console-only alternative. The runnable runtime_ui_showcase reproduces the UI above with tool, graph, and team agents.

Add ADK-Rust to an existing project

[dependencies]
adk-rust = "2.2.0"                                        # Gemini, agents, runner, sessions
# adk-rust = { version = "2.2.0", features = ["standard"] }  # + server, auth, graph, eval
TierIncludesUse case
minimal (default)Gemini provider, agents, runner, sessionsFast starter agents
standardminimal + OpenAI, Anthropic, tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skillsServing an agent over HTTP
enterprisestandard + realtime, browser, RAG, payments, AWPVoice, retrieval and payments
fullenterprise + audio, code execution, sandboxEverything

A tier is a starting point, not a ceiling. Add any single capability on top of one without moving to the next tier, so features = ["minimal", "audio"] gives you the minimal build plus audio. AGENTS.md lists every feature you can add this way.

One agent, end to end

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

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

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

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

Swap the provider by swapping the client. The agent, runner and tools are unchanged:

ProviderClientFeatureKey
GeminiGeminiModel::new(key, model)defaultGOOGLE_API_KEY
OpenAIOpenAIClient::new(OpenAIConfig::new(key, model))openaiOPENAI_API_KEY
OpenAI ResponsesOpenAIResponsesClient::new(OpenAIResponsesConfig::new(key, model))openaiOPENAI_API_KEY
AnthropicAnthropicClient::new(AnthropicConfig::new(key, model))anthropicANTHROPIC_API_KEY
DeepSeekDeepSeekClient::chat(key)deepseekDEEPSEEK_API_KEY
GroqGroqClient::new(GroqConfig::gpt_oss_120b(key))groqGROQ_API_KEY
OllamaOllamaModel::new(OllamaConfig::new(model))ollamanone
BedrockBedrockClient::new(BedrockConfig::new(region, model_id)).await?bedrockAWS credential chain
mistral.rsMistralRsModel::new(config)adk-mistralrsnone, local

Or let it choose: adk_rust::run(instructions, input) picks a provider from the environment, among those you compiled in.

Models

ProviderModel ExamplesFeature Flag
Geminigemini-3.7-flash (default), gemini-3.6-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview(default)
OpenAIgpt-5.6-terra (default), gpt-5.6-sol, gpt-5.6-lunaopenai
OpenAI Responses APIgpt-5.6-terra, gpt-5.6-sol, gpt-5.6-lunaopenai
Anthropicclaude-sonnet-5 (default), claude-opus-5, claude-fable-5anthropic
DeepSeekdeepseek-v4-flash, deepseek-v4-prodeepseek
Groqopenai/gpt-oss-120b, openai/gpt-oss-20bgroq
Ollamaqwen3.6:35b-a3b, qwen3.5, llama3.2:3bollama
Fireworks AIaccounts/fireworks/models/kimi-k2p6openai (preset)
Together AIMiniMaxAI/MiniMax-M2.7openai (preset)
Mistral AImistral-medium-latestopenai (preset)
Perplexitysonar-proopenai (preset)
Cerebrasgpt-oss-120bopenai (preset)
SambaNovagpt-oss-120bopenai (preset)
xAI (Grok)grok-4.6openai (preset)
Amazon Bedrockanthropic.claude-sonnet-4-20250514-v1:0bedrock
Azure AI Inference(endpoint-specific)azure-ai
mistral.rsGemma 4, Phi-3, Llama, Qwen 3.5, Voxtral, FLUXadk-mistralrs

Defaults are curated in adk_model::catalog and were checked on 23 August 2026. Deployment-scoped providers such as Bedrock and Azure AI still require the model or deployment identifier available in your own account and region.

Use adk_model::catalog::recommended_model(provider) for ADK's portable default, MODEL_CATALOG for user-facing pickers, and validate_model_selection when accepting configuration. Unknown IDs remain valid for private deployments and new releases; known retired IDs include an actionable replacement.

What you can build

Each row links to its guide and a runnable example.

CapabilityGuideExample
Embedded runtime UI — conversations, Markdown, tools, workflow/team topology, realtime playback, protocols, state and telemetrydeploymentexamples/advanced_agents
Tools — #[tool] derives the JSON schema from your argument typetoolsexamples/coding_agent
MCP clients and servers on rmcp 3.1 — tools, resources, prompts, elicitation, tasksmcpexamples/mcp_protocol_revisions
Workflow agents — sequential, parallel, loopagentsexamples/multi_perspective_analysis
Portable teams — validated handoff, delegation, policies, receipts and shared statemulti-agentexamples/team_architectures
Graph workflows — checkpoints, durable resume, human-in-the-loop, subgraphsgraph-agentsexamples/graph_subgraph_claims
Coding agents — read, edit and run code in a confined workspacecoding-agentexamples/coding_goal
Realtime voice and video — OpenAI Realtime, Gemini Live, Vertex, LiveKit, WebRTCrealtimeexamples/realtime_voice
Governed computer use — approval interrupts bound to a digestcomputer-use
RAG — chunking, embeddings, vector search, 6 backendsrag
Memory — semantic search, project isolation, a bi-temporal knowledge graphmemoryexamples/skill_memory_improvements
Servers — REST with SSE, A2A v1.0.0, background runs, crondeploymentexamples/ambient_cron_agent
Gemini Enterprise Agent Platform — Agent Engine BYOC, managed state, memory, artifacts, telemetry and sandboxagent-engineexamples/vertex_sandbox
Agentic Web Protocol — discovery, manifests, trust levels, consentawpexamples/awp_agent
Agentic commerce — ACP and AP2 with durable journalspaymentsexamples/payments
Editor interop — use an ACP coding agent as a tool, or expose yoursacp
Browser automation — 46 WebDriver toolsbrowser-tools
Evaluation — trajectory, rubric, LLM-judge, A/B, CI outputevaluationexamples/eval_showcase
Guardrails, RBAC, SSO, audit loggingsecurity
Observability — OpenTelemetry tracing, structured loggingobservabilityexamples/advanced_agents

Scaffold a project

cargo install cargo-adk

cargo adk new my-agent                       # basic Gemini agent (alias for --template llm)
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 graph      # graph workflow with checkpoints
cargo adk new my-agent --template realtime   # realtime voice agent
cargo adk new my-agent --template agent-engine # Gemini Enterprise Agent Engine BYOC

# Compose addons with any template
cargo adk new my-agent --template tools --addon telemetry --addon sessions
cargo adk new my-agent --addon mcp --addon guardrails

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

Agent types — the core agent structure.

TemplateWhat you get
llm (alias basic)Single LLM agent with tool calling
toolsLLM agent with #[tool] custom tools
sequentialMulti-agent pipeline executing in order
parallelParallel execution with result aggregation
loopIterates until a condition is met
conditionalRoutes based on LLM decisions
graphGraph workflow with checkpoints and durable execution
realtimeBidirectional audio and video streaming
ragVector search over a knowledge base
apiREST server exposing the agent over HTTP
agent-engineGemini Enterprise Agent Engine BYOC container and Terraform deployment
openaiOpenAI-powered agent
customManual Agent trait implementation

Enterprise patterns — pre-composed, several capabilities already wired together.

TemplateWhat you get
productionLLM agent with server, auth, sessions and telemetry
multi-agentSupervisor over sub-agents, with telemetry
pipelineSequential data processing with session state
chatbotConversational agent with memory and an HTTP interface
a2a-server (alias a2a)A2A protocol server with session management
managed-agentsAnthropic Managed Agents API session with SSE streaming

Addons — composable with any template, and with each other.

AddonAdds
telemetryOpenTelemetry tracing
authAPI key and JWT authentication
sessionsSession state management
memorySemantic memory and RAG
mcpMCP tool integration
guardrailsInput and output validation
evalEvaluation framework
browserBrowser automation
serverHTTP server with A2A

cargo adk build compiles the project without deploying, and cargo adk validate checks an agent definition without building. cargo adk templates and cargo adk addons print these lists.

Crates

CratePurposeKey Features
adk-coreFoundational traits and typesAgent trait, Content, Part, error types, streaming primitives
adk-agentAgent implementationsLlmAgent, workflow agents, and portable TeamSpec / CompiledTeam composition
adk-skillAgentSkills parsing and selectionSkill markdown parser, .skills discovery/indexing, lexical matching, prompt injection helpers
adk-modelLLM integrationsGemini, OpenAI, Anthropic, DeepSeek, Groq, Ollama, Bedrock, Azure AI + OpenAI-compatible presets (Fireworks, Together, Mistral, Perplexity, Cerebras, SambaNova, xAI)
adk-geminiGemini clientGoogle Gemini API client with streaming and multimodal support
adk-gcpShared Google Cloud plumbingADC credential caching, bounded REST transport, Vertex resource names, and LRO polling
adk-anthropicAnthropic clientDedicated Anthropic API client with streaming, thinking, caching, citations, vision, PDF, pricing
adk-mistralrsNative local inferencemistral.rs v0.8 — Gemma 4, Qwen 3.5, Voxtral, ISQ/MXFP4 quantization, LoRA adapters
adk-toolTool system and extensibilityTyped Rust tools, provider-native tools, MCP clients and server SDK, and Vertex AI Example Store
adk-devtoolsCoding-agent dev toolsread_file/write_file/edit_file/glob/grep/bash as a DevToolset, scoped to a sandboxed Workspace
adk-sessionSession and state managementIn-memory, SQL, Redis, MongoDB, Firestore, Neo4j, and Vertex AI backends
adk-artifactBinary artifacts for agentsIn-memory and GCS storage, versioning, MIME types, and image/PDF/video support
adk-memoryLong-term memorySemantic stores, Vertex AI Memory Bank, project isolation, and bi-temporal knowledge graphs
adk-paymentsAgentic commerce orchestrationACP/AP2 adapters, canonical transaction kernel, durable journals, evidence-backed payment flows
awp-typesAWP protocol typesTrust levels, requester types, discovery documents, capability manifests, payment intents, typed A2A messages — zero adk-* deps
adk-awpAgentic Web Protocol implementationBusiness context loading, discovery/manifest generation, rate limiting, consent, events, health state machine, AWP routes
adk-acpAgent Client Protocol integrationOfficial stable v1 client and server, one-shot and persistent sessions, streaming, cancellation, async permissions, client files and terminals, per-session MCP, and editor-facing ADK agents
adk-ragRAG pipelineDocument chunking, embeddings, vector search, reranking, 6 backends
adk-runnerAgent execution runtimeContext management, event streaming, session lifecycle, callbacks
adk-serverProduction API serversREST, A2A v1.0.0, and Gemini Enterprise Agent Engine runtime dispatch
adk-cliRun and inspect agents from a terminalInteractive REPL, session management, MCP server integration
adk-realtimeReal-time voice & multimodal agentsOpenAI Realtime + Gemini Live, bidirectional audio, video frames, VAD, affective dialogue, server-side tools via IntegratedRealtimeRunner
adk-graphGraph-based workflowsLangGraph-style orchestration, state reducers, checkpointing (memory, SQLite, delta), durable resume, human-in-the-loop interrupts, subgraphs, with_goto routing, per-node retry and timeouts, time travel
adk-browserBrowser automation46 WebDriver tools, navigation, forms, screenshots, PDF generation
adk-computer-useGoverned desktop automationDeterministic graph over computer-use-mcp: parallel observation, digest-bound approval interrupts, single-executor mutation, verification; wire contracts + tamper-evident evaluation receipts
adk-evalAgent evaluationTest definitions, trajectory validation, LLM-judged scoring, rubrics
adk-guardrailRuntime validationInput/output checks, PII redaction, and argument-level tool allow/deny/revision
adk-authAccess controlRole-based permissions, declarative scope-based security, SSO/OAuth, audit logging
adk-sandboxSandboxed code executionProcess/WASM backends, OS-level sandbox profiles (Seatbelt on macOS, bubblewrap on Linux; Windows AppContainer not implemented)
adk-telemetryObservabilityOpenTelemetry tracing, structured logging, and Google Cloud export
adk-managedManaged agent runtime (Experimental)Provider-neutral agent execution, in-process checkpointing and event replay (state does not survive process loss)
adk-enterpriseEnterprise client SDK (Experimental)HTTP/SSE client for managed agent service, zero runtime deps
adk-pluginLifecycle hooksEnhancedPlugin trait, tool and model interception, priority pipeline, shared PluginContext
adk-retry-reflectRetry and reflect pluginIntercepts tool failures, injects reflection prompts, exponential backoff, circuit breaker
adk-actionAction node types14 deterministic node types, StandardProperties, variable interpolation — the shared types behind adk-graph's ActionNodeExecutor
adk-codeCode execution substrateProcess, Docker, embedded runtimes, and Vertex AI Agent Engine managed sandboxes
adk-codeact-montyPython runtime for CodeAct (Experimental)Pydantic Monty interpreter, sandboxed OS access, suspend and resume snapshots
adk-audioAudio processingSTT and TTS providers, Deepgram streaming, desktop capture and playback, VAD, ONNX models (Whisper, Moonshine, Kokoro)
adk-benchBenchmarkingFramework runtime performance against real LLM APIs, and cross-framework comparison with Python ADK
adk-deployDeployment utilitiesTargets, manifests, and Gemini Enterprise Agent Engine BYOC deployment
adk-rust-macrosProcedural macros#[tool] with read_only/concurrency_safe/long_running metadata, #[entrypoint] and #[task] for the functional API
cargo-adkCargo subcommandProject templates including Agent Engine BYOC, composable addons, benchmarks, and deployment
adk-rustUmbrella crateRe-exports every crate above behind tiered feature presets — the one dependency most projects need

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

Performance

Measured with cargo adk bench against gemini-2.5-flash, same workload and prompt for every framework.

FrameworkCold StartAgent Loop Overhead (mean)Agent Loop Overhead (P95)Peak RSS
ADK-Rust109 ms568 μs615 μs~15 MB
Gemini Python SDK501 ms253 μs334 μs69.7 MB
LangGraph502 ms1,228 ms1,228 ms92.7 MB

Cold start is process launch to first API call. Overhead is turn time minus the LLM round trip. Apple M-series, macOS, June 2026. Run it yourself with cargo adk bench --dry-run to see the cost estimate first.

Develop

devenv shell            # reproducible toolchain, or ./scripts/setup-dev.sh
make build              # cargo build --workspace
make test               # cargo nextest run --workspace
make clippy             # -D warnings

AGENTS.md documents the conventions CI enforces, including the per-platform tool matrix and the CI cost tiers. CONTRIBUTING.md covers the workflow and the required checks.

Documentation

Companion projects

ProjectWhat it is
adk-studioVisual agent builder — canvas, code generation, live testing
adk-uiDynamic UI generation — 28 components, React client, streaming
adk-playground120+ working examples, and a hosted playground

Project

Related: Google's ADK · MCP · Gemini API

Sponsors

ADK-Rust is Apache 2.0 and developed in the open. Sponsorship pays for the CI minutes, model-provider credits, and benchmark hardware the project runs on.

Thank you to our sponsors:

JohnsGain

Become a sponsor — monthly tiers from $5, or a one-off contribution. Sponsors are listed here and on the sponsors page.

Star History

Star History Chart

License

Apache 2.0. See LICENSE.

Contributors

jkmaina

347 commits

joseph-wortmann

50 commits

mikefaille

30 commits

dependabot[bot]

13 commits

zavora-ai/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 with simplicity and power. Model-agnostic, deployment-agnostic, optimized for frontier AI models. Includes support for real-time voice agents.

647

stars

464

commits

Rust

primary language

Sep 11, 2026

updated

adk-rust.com/
adk
adk-agent
adk-artifact
adk-cli
adk-google
adk-memory
adk-model
adk-rust
adk-server
adk-tool
agent-developer-kit
google-adk
google-adk-rust
openai-adk
realtime
realtime-adk
realtime-audio

README

ADK-Rust

CI crates.io docs.rs Wiki License Rust GitHub Discussions Sponsors

A production-ready Rust framework for building AI agents. Model-agnostic, type-safe and async, across 43 publishable crates for agent orchestration.

v2.2.0 Released! This API-compatible minor release completes the Gemini Enterprise Agent Platform consumption path: the Gen AI Evaluation Service bridge, Vertex AI RAG Engine retrieval and grounding, an Agent Retrieval vector store, Agent Registry discovery and registration, Skill Registry consumption with remote skill loading, and remote ReasoningEngine agents you can call as sub-agents — every one opt-in and composable with any preset, and all appended to gemini-agent-platform. Graph workflows gain native tool confirmation pauses. Tracing is fixed so one invocation exports as one trace rather than several disconnected ones. All 43 crates are available on crates.io.

Milestone: ADK-Rust has crossed 500K total crates.io downloads across the workspace crates.

Coming from 1.x: six APIs changed shape and the fan-in default changed behaviour without an API change. See the migration guide and the CHANGELOG.

🎬 Rust & Beyond Podcast — Episode 3: Agents That Act

ADK-Rust v2.0.0 — Agents That Act. Eight chapters on agents that run on their own and finish what they start: a workflow that resumes exactly where it stopped, a graph that changes course when the problem does, and approvals you can trust down to the digest. 42 crates, 4,300+ tests, sub-millisecond loop overhead.

▶ Watch Episode 3: ADK-Rust v2.0.0 — Agents That Act

▶️ Watch on YouTube40 min 50 sec · Hosts: James (Fenrir) & Ada (Kore) · Video with slides

"Show me." — Ada, thirty seconds in, declining to be told about the visual builder

Episode highlights
  • The Numbers — 42 crates, 4,300+ tests, 104 runnable examples, 568 μs agent-loop overhead against LangGraph's 1,228 ms
  • Agents That Survive — SQLite checkpointers, delta checkpoints, and a pause that resumes in a fresh process that shares only the database file
  • Subgraphs — a graph as a node, nested three deep, with channel mismatches caught when the parent compiles rather than as an absent value at run time
  • Deciding At Run Timerun_node_with for work whose size comes from state, and with_goto for a node that picks its own successor with no edge declared
  • Built To Run Unattended — retries with capped backoff, concurrency bounds, node timeouts, and checkpoint retention that keeps a week-long thread steady
  • Governed Computer Use — approval interrupts bound to a digest, so what you approved is what runs
  • What It Costs — no automatic crash recovery, an unbounded child ledger, and why we kept two orchestration APIs when the other ADKs deprecated one
Previous episodes

🎧 Episode 2: v1.0.0 — The Stable Foundation

A deep-dive into what shipped, who built it, and where it was going. 39 crates. 130K downloads. Semver stable.

▶ Watch Episode 2: ADK-Rust v1.0.0 Launch

▶️ Watch on YouTube10 min 12 sec · Hosts: James (Fenrir) & Ada (Kore)

"We believe the next generation of software will be built by composing autonomous agents, not by writing every line of logic by hand. And we believe Rust is the right language for the runtime those agents live in." — James

🎧 Episode 1: What is ADK-Rust?

2 min 21 sec · Generated entirely by ADK-Rust using Gemini 3.1 Flash TTS

How are these made?

Episodes are generated using ADK-Rust's own audio capabilities — Chirp3-HD multi-speaker TTS synthesis via adk-audio. The script, slide deck (Marp), and synthesized audio segments are concatenated with ffmpeg into a video presentation. Zero manual voice recording.

# Episode 3 assets
docs/podcast/episode-3-script.md      # Full script, eight chapters
docs/podcast/episode-3-slides.md      # Marp slide deck
docs/podcast/adk-rust-episode-3.mp4   # Final video
docs/podcast/episode-3-narration.mp3  # Audio-only

The episode 3 video and slides are not in the repository: the video alone is about 900 MB, over GitHub's 100 MB per-file limit. The script and the deck source are.


Build and test an agent in five minutes

Scaffold an OpenAI agent with the HTTP runtime and embedded UI:

cargo install cargo-adk
cargo adk new quickstart_agent --template api --provider openai
cd quickstart_agent
cp .env.example .env
# Open .env and replace the OPENAI_API_KEY placeholder, then:
cargo run

Open http://127.0.0.1:8080/ui/, enter a prompt, and press Enter. The UI creates the session, streams the run, renders Markdown and tool results, animates the active agent or workflow edge, and keeps the event timeline, state, artifacts, and telemetry beside the conversation.

Prompting an ADK-Rust team, watching its handoff topology, and opening runtime telemetry

The animation uses the richer team showcase so the topology is visible; the single-agent project you just generated uses the same UI with a one-node graph. Confirm the server independently with:

curl -fsS http://127.0.0.1:8080/api/health

The five-minute quickstart explains the generated files and the console-only alternative. The runnable runtime_ui_showcase reproduces the UI above with tool, graph, and team agents.

Add ADK-Rust to an existing project

[dependencies]
adk-rust = "2.2.0"                                        # Gemini, agents, runner, sessions
# adk-rust = { version = "2.2.0", features = ["standard"] }  # + server, auth, graph, eval
TierIncludesUse case
minimal (default)Gemini provider, agents, runner, sessionsFast starter agents
standardminimal + OpenAI, Anthropic, tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skillsServing an agent over HTTP
enterprisestandard + realtime, browser, RAG, payments, AWPVoice, retrieval and payments
fullenterprise + audio, code execution, sandboxEverything

A tier is a starting point, not a ceiling. Add any single capability on top of one without moving to the next tier, so features = ["minimal", "audio"] gives you the minimal build plus audio. AGENTS.md lists every feature you can add this way.

One agent, end to end

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

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

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

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

Swap the provider by swapping the client. The agent, runner and tools are unchanged:

ProviderClientFeatureKey
GeminiGeminiModel::new(key, model)defaultGOOGLE_API_KEY
OpenAIOpenAIClient::new(OpenAIConfig::new(key, model))openaiOPENAI_API_KEY
OpenAI ResponsesOpenAIResponsesClient::new(OpenAIResponsesConfig::new(key, model))openaiOPENAI_API_KEY
AnthropicAnthropicClient::new(AnthropicConfig::new(key, model))anthropicANTHROPIC_API_KEY
DeepSeekDeepSeekClient::chat(key)deepseekDEEPSEEK_API_KEY
GroqGroqClient::new(GroqConfig::gpt_oss_120b(key))groqGROQ_API_KEY
OllamaOllamaModel::new(OllamaConfig::new(model))ollamanone
BedrockBedrockClient::new(BedrockConfig::new(region, model_id)).await?bedrockAWS credential chain
mistral.rsMistralRsModel::new(config)adk-mistralrsnone, local

Or let it choose: adk_rust::run(instructions, input) picks a provider from the environment, among those you compiled in.

Models

ProviderModel ExamplesFeature Flag
Geminigemini-3.7-flash (default), gemini-3.6-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview(default)
OpenAIgpt-5.6-terra (default), gpt-5.6-sol, gpt-5.6-lunaopenai
OpenAI Responses APIgpt-5.6-terra, gpt-5.6-sol, gpt-5.6-lunaopenai
Anthropicclaude-sonnet-5 (default), claude-opus-5, claude-fable-5anthropic
DeepSeekdeepseek-v4-flash, deepseek-v4-prodeepseek
Groqopenai/gpt-oss-120b, openai/gpt-oss-20bgroq
Ollamaqwen3.6:35b-a3b, qwen3.5, llama3.2:3bollama
Fireworks AIaccounts/fireworks/models/kimi-k2p6openai (preset)
Together AIMiniMaxAI/MiniMax-M2.7openai (preset)
Mistral AImistral-medium-latestopenai (preset)
Perplexitysonar-proopenai (preset)
Cerebrasgpt-oss-120bopenai (preset)
SambaNovagpt-oss-120bopenai (preset)
xAI (Grok)grok-4.6openai (preset)
Amazon Bedrockanthropic.claude-sonnet-4-20250514-v1:0bedrock
Azure AI Inference(endpoint-specific)azure-ai
mistral.rsGemma 4, Phi-3, Llama, Qwen 3.5, Voxtral, FLUXadk-mistralrs

Defaults are curated in adk_model::catalog and were checked on 23 August 2026. Deployment-scoped providers such as Bedrock and Azure AI still require the model or deployment identifier available in your own account and region.

Use adk_model::catalog::recommended_model(provider) for ADK's portable default, MODEL_CATALOG for user-facing pickers, and validate_model_selection when accepting configuration. Unknown IDs remain valid for private deployments and new releases; known retired IDs include an actionable replacement.

What you can build

Each row links to its guide and a runnable example.

CapabilityGuideExample
Embedded runtime UI — conversations, Markdown, tools, workflow/team topology, realtime playback, protocols, state and telemetrydeploymentexamples/advanced_agents
Tools — #[tool] derives the JSON schema from your argument typetoolsexamples/coding_agent
MCP clients and servers on rmcp 3.1 — tools, resources, prompts, elicitation, tasksmcpexamples/mcp_protocol_revisions
Workflow agents — sequential, parallel, loopagentsexamples/multi_perspective_analysis
Portable teams — validated handoff, delegation, policies, receipts and shared statemulti-agentexamples/team_architectures
Graph workflows — checkpoints, durable resume, human-in-the-loop, subgraphsgraph-agentsexamples/graph_subgraph_claims
Coding agents — read, edit and run code in a confined workspacecoding-agentexamples/coding_goal
Realtime voice and video — OpenAI Realtime, Gemini Live, Vertex, LiveKit, WebRTCrealtimeexamples/realtime_voice
Governed computer use — approval interrupts bound to a digestcomputer-use
RAG — chunking, embeddings, vector search, 6 backendsrag
Memory — semantic search, project isolation, a bi-temporal knowledge graphmemoryexamples/skill_memory_improvements
Servers — REST with SSE, A2A v1.0.0, background runs, crondeploymentexamples/ambient_cron_agent
Gemini Enterprise Agent Platform — Agent Engine BYOC, managed state, memory, artifacts, telemetry and sandboxagent-engineexamples/vertex_sandbox
Agentic Web Protocol — discovery, manifests, trust levels, consentawpexamples/awp_agent
Agentic commerce — ACP and AP2 with durable journalspaymentsexamples/payments
Editor interop — use an ACP coding agent as a tool, or expose yoursacp
Browser automation — 46 WebDriver toolsbrowser-tools
Evaluation — trajectory, rubric, LLM-judge, A/B, CI outputevaluationexamples/eval_showcase
Guardrails, RBAC, SSO, audit loggingsecurity
Observability — OpenTelemetry tracing, structured loggingobservabilityexamples/advanced_agents

Scaffold a project

cargo install cargo-adk

cargo adk new my-agent                       # basic Gemini agent (alias for --template llm)
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 graph      # graph workflow with checkpoints
cargo adk new my-agent --template realtime   # realtime voice agent
cargo adk new my-agent --template agent-engine # Gemini Enterprise Agent Engine BYOC

# Compose addons with any template
cargo adk new my-agent --template tools --addon telemetry --addon sessions
cargo adk new my-agent --addon mcp --addon guardrails

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

Agent types — the core agent structure.

TemplateWhat you get
llm (alias basic)Single LLM agent with tool calling
toolsLLM agent with #[tool] custom tools
sequentialMulti-agent pipeline executing in order
parallelParallel execution with result aggregation
loopIterates until a condition is met
conditionalRoutes based on LLM decisions
graphGraph workflow with checkpoints and durable execution
realtimeBidirectional audio and video streaming
ragVector search over a knowledge base
apiREST server exposing the agent over HTTP
agent-engineGemini Enterprise Agent Engine BYOC container and Terraform deployment
openaiOpenAI-powered agent
customManual Agent trait implementation

Enterprise patterns — pre-composed, several capabilities already wired together.

TemplateWhat you get
productionLLM agent with server, auth, sessions and telemetry
multi-agentSupervisor over sub-agents, with telemetry
pipelineSequential data processing with session state
chatbotConversational agent with memory and an HTTP interface
a2a-server (alias a2a)A2A protocol server with session management
managed-agentsAnthropic Managed Agents API session with SSE streaming

Addons — composable with any template, and with each other.

AddonAdds
telemetryOpenTelemetry tracing
authAPI key and JWT authentication
sessionsSession state management
memorySemantic memory and RAG
mcpMCP tool integration
guardrailsInput and output validation
evalEvaluation framework
browserBrowser automation
serverHTTP server with A2A

cargo adk build compiles the project without deploying, and cargo adk validate checks an agent definition without building. cargo adk templates and cargo adk addons print these lists.

Crates

CratePurposeKey Features
adk-coreFoundational traits and typesAgent trait, Content, Part, error types, streaming primitives
adk-agentAgent implementationsLlmAgent, workflow agents, and portable TeamSpec / CompiledTeam composition
adk-skillAgentSkills parsing and selectionSkill markdown parser, .skills discovery/indexing, lexical matching, prompt injection helpers
adk-modelLLM integrationsGemini, OpenAI, Anthropic, DeepSeek, Groq, Ollama, Bedrock, Azure AI + OpenAI-compatible presets (Fireworks, Together, Mistral, Perplexity, Cerebras, SambaNova, xAI)
adk-geminiGemini clientGoogle Gemini API client with streaming and multimodal support
adk-gcpShared Google Cloud plumbingADC credential caching, bounded REST transport, Vertex resource names, and LRO polling
adk-anthropicAnthropic clientDedicated Anthropic API client with streaming, thinking, caching, citations, vision, PDF, pricing
adk-mistralrsNative local inferencemistral.rs v0.8 — Gemma 4, Qwen 3.5, Voxtral, ISQ/MXFP4 quantization, LoRA adapters
adk-toolTool system and extensibilityTyped Rust tools, provider-native tools, MCP clients and server SDK, and Vertex AI Example Store
adk-devtoolsCoding-agent dev toolsread_file/write_file/edit_file/glob/grep/bash as a DevToolset, scoped to a sandboxed Workspace
adk-sessionSession and state managementIn-memory, SQL, Redis, MongoDB, Firestore, Neo4j, and Vertex AI backends
adk-artifactBinary artifacts for agentsIn-memory and GCS storage, versioning, MIME types, and image/PDF/video support
adk-memoryLong-term memorySemantic stores, Vertex AI Memory Bank, project isolation, and bi-temporal knowledge graphs
adk-paymentsAgentic commerce orchestrationACP/AP2 adapters, canonical transaction kernel, durable journals, evidence-backed payment flows
awp-typesAWP protocol typesTrust levels, requester types, discovery documents, capability manifests, payment intents, typed A2A messages — zero adk-* deps
adk-awpAgentic Web Protocol implementationBusiness context loading, discovery/manifest generation, rate limiting, consent, events, health state machine, AWP routes
adk-acpAgent Client Protocol integrationOfficial stable v1 client and server, one-shot and persistent sessions, streaming, cancellation, async permissions, client files and terminals, per-session MCP, and editor-facing ADK agents
adk-ragRAG pipelineDocument chunking, embeddings, vector search, reranking, 6 backends
adk-runnerAgent execution runtimeContext management, event streaming, session lifecycle, callbacks
adk-serverProduction API serversREST, A2A v1.0.0, and Gemini Enterprise Agent Engine runtime dispatch
adk-cliRun and inspect agents from a terminalInteractive REPL, session management, MCP server integration
adk-realtimeReal-time voice & multimodal agentsOpenAI Realtime + Gemini Live, bidirectional audio, video frames, VAD, affective dialogue, server-side tools via IntegratedRealtimeRunner
adk-graphGraph-based workflowsLangGraph-style orchestration, state reducers, checkpointing (memory, SQLite, delta), durable resume, human-in-the-loop interrupts, subgraphs, with_goto routing, per-node retry and timeouts, time travel
adk-browserBrowser automation46 WebDriver tools, navigation, forms, screenshots, PDF generation
adk-computer-useGoverned desktop automationDeterministic graph over computer-use-mcp: parallel observation, digest-bound approval interrupts, single-executor mutation, verification; wire contracts + tamper-evident evaluation receipts
adk-evalAgent evaluationTest definitions, trajectory validation, LLM-judged scoring, rubrics
adk-guardrailRuntime validationInput/output checks, PII redaction, and argument-level tool allow/deny/revision
adk-authAccess controlRole-based permissions, declarative scope-based security, SSO/OAuth, audit logging
adk-sandboxSandboxed code executionProcess/WASM backends, OS-level sandbox profiles (Seatbelt on macOS, bubblewrap on Linux; Windows AppContainer not implemented)
adk-telemetryObservabilityOpenTelemetry tracing, structured logging, and Google Cloud export
adk-managedManaged agent runtime (Experimental)Provider-neutral agent execution, in-process checkpointing and event replay (state does not survive process loss)
adk-enterpriseEnterprise client SDK (Experimental)HTTP/SSE client for managed agent service, zero runtime deps
adk-pluginLifecycle hooksEnhancedPlugin trait, tool and model interception, priority pipeline, shared PluginContext
adk-retry-reflectRetry and reflect pluginIntercepts tool failures, injects reflection prompts, exponential backoff, circuit breaker
adk-actionAction node types14 deterministic node types, StandardProperties, variable interpolation — the shared types behind adk-graph's ActionNodeExecutor
adk-codeCode execution substrateProcess, Docker, embedded runtimes, and Vertex AI Agent Engine managed sandboxes
adk-codeact-montyPython runtime for CodeAct (Experimental)Pydantic Monty interpreter, sandboxed OS access, suspend and resume snapshots
adk-audioAudio processingSTT and TTS providers, Deepgram streaming, desktop capture and playback, VAD, ONNX models (Whisper, Moonshine, Kokoro)
adk-benchBenchmarkingFramework runtime performance against real LLM APIs, and cross-framework comparison with Python ADK
adk-deployDeployment utilitiesTargets, manifests, and Gemini Enterprise Agent Engine BYOC deployment
adk-rust-macrosProcedural macros#[tool] with read_only/concurrency_safe/long_running metadata, #[entrypoint] and #[task] for the functional API
cargo-adkCargo subcommandProject templates including Agent Engine BYOC, composable addons, benchmarks, and deployment
adk-rustUmbrella crateRe-exports every crate above behind tiered feature presets — the one dependency most projects need

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

Performance

Measured with cargo adk bench against gemini-2.5-flash, same workload and prompt for every framework.

FrameworkCold StartAgent Loop Overhead (mean)Agent Loop Overhead (P95)Peak RSS
ADK-Rust109 ms568 μs615 μs~15 MB
Gemini Python SDK501 ms253 μs334 μs69.7 MB
LangGraph502 ms1,228 ms1,228 ms92.7 MB

Cold start is process launch to first API call. Overhead is turn time minus the LLM round trip. Apple M-series, macOS, June 2026. Run it yourself with cargo adk bench --dry-run to see the cost estimate first.

Develop

devenv shell            # reproducible toolchain, or ./scripts/setup-dev.sh
make build              # cargo build --workspace
make test               # cargo nextest run --workspace
make clippy             # -D warnings

AGENTS.md documents the conventions CI enforces, including the per-platform tool matrix and the CI cost tiers. CONTRIBUTING.md covers the workflow and the required checks.

Documentation

Companion projects

ProjectWhat it is
adk-studioVisual agent builder — canvas, code generation, live testing
adk-uiDynamic UI generation — 28 components, React client, streaming
adk-playground120+ working examples, and a hosted playground

Project

Related: Google's ADK · MCP · Gemini API

Sponsors

ADK-Rust is Apache 2.0 and developed in the open. Sponsorship pays for the CI minutes, model-provider credits, and benchmark hardware the project runs on.

Thank you to our sponsors:

JohnsGain

Become a sponsor — monthly tiers from $5, or a one-off contribution. Sponsors are listed here and on the sponsors page.

Star History

Star History Chart

License

Apache 2.0. See LICENSE.

Contributors

jkmaina

347 commits

joseph-wortmann

50 commits

mikefaille

30 commits

dependabot[bot]

13 commits

Languages

Rust

99.0%