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
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.
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 on YouTube — 40 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
run_node_with for work whose size comes from state, and
with_goto for a node that picks its own successor with no edge declaredA deep-dive into what shipped, who built it, and where it was going. 39 crates. 130K downloads. Semver stable.
▶️ Watch on YouTube — 10 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
2 min 21 sec · Generated entirely by ADK-Rust using Gemini 3.1 Flash TTS
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.
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.

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.
[dependencies]
adk-rust = "2.2.0" # Gemini, agents, runner, sessions
# adk-rust = { version = "2.2.0", features = ["standard"] } # + server, auth, graph, eval
| Tier | Includes | Use case |
|---|---|---|
minimal (default) | Gemini provider, agents, runner, sessions | Fast starter agents |
standard | minimal + OpenAI, Anthropic, tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills | Serving an agent over HTTP |
enterprise | standard + realtime, browser, RAG, payments, AWP | Voice, retrieval and payments |
full | enterprise + audio, code execution, sandbox | Everything |
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.
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:
| Provider | Client | Feature | Key |
|---|---|---|---|
| Gemini | GeminiModel::new(key, model) | default | GOOGLE_API_KEY |
| OpenAI | OpenAIClient::new(OpenAIConfig::new(key, model)) | openai | OPENAI_API_KEY |
| OpenAI Responses | OpenAIResponsesClient::new(OpenAIResponsesConfig::new(key, model)) | openai | OPENAI_API_KEY |
| Anthropic | AnthropicClient::new(AnthropicConfig::new(key, model)) | anthropic | ANTHROPIC_API_KEY |
| DeepSeek | DeepSeekClient::chat(key) | deepseek | DEEPSEEK_API_KEY |
| Groq | GroqClient::new(GroqConfig::gpt_oss_120b(key)) | groq | GROQ_API_KEY |
| Ollama | OllamaModel::new(OllamaConfig::new(model)) | ollama | none |
| Bedrock | BedrockClient::new(BedrockConfig::new(region, model_id)).await? | bedrock | AWS credential chain |
| mistral.rs | MistralRsModel::new(config) | adk-mistralrs | none, local |
Or let it choose: adk_rust::run(instructions, input) picks a provider from the
environment, among those you compiled in.
| Provider | Model Examples | Feature Flag |
|---|---|---|
| Gemini | gemini-3.7-flash (default), gemini-3.6-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview | (default) |
| OpenAI | gpt-5.6-terra (default), gpt-5.6-sol, gpt-5.6-luna | openai |
| OpenAI Responses API | gpt-5.6-terra, gpt-5.6-sol, gpt-5.6-luna | openai |
| Anthropic | claude-sonnet-5 (default), claude-opus-5, claude-fable-5 | anthropic |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | deepseek |
| Groq | openai/gpt-oss-120b, openai/gpt-oss-20b | groq |
| Ollama | qwen3.6:35b-a3b, qwen3.5, llama3.2:3b | ollama |
| Fireworks AI | accounts/fireworks/models/kimi-k2p6 | openai (preset) |
| Together AI | MiniMaxAI/MiniMax-M2.7 | openai (preset) |
| Mistral AI | mistral-medium-latest | openai (preset) |
| Perplexity | sonar-pro | openai (preset) |
| Cerebras | gpt-oss-120b | openai (preset) |
| SambaNova | gpt-oss-120b | openai (preset) |
| xAI (Grok) | grok-4.6 | openai (preset) |
| Amazon Bedrock | anthropic.claude-sonnet-4-20250514-v1:0 | bedrock |
| Azure AI Inference | (endpoint-specific) | azure-ai |
| mistral.rs | Gemma 4, Phi-3, Llama, Qwen 3.5, Voxtral, FLUX | adk-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.
Each row links to its guide and a runnable example.
| Capability | Guide | Example |
|---|---|---|
| Embedded runtime UI — conversations, Markdown, tools, workflow/team topology, realtime playback, protocols, state and telemetry | deployment | examples/advanced_agents |
Tools — #[tool] derives the JSON schema from your argument type | tools | examples/coding_agent |
MCP clients and servers on rmcp 3.1 — tools, resources, prompts, elicitation, tasks | mcp | examples/mcp_protocol_revisions |
| Workflow agents — sequential, parallel, loop | agents | examples/multi_perspective_analysis |
| Portable teams — validated handoff, delegation, policies, receipts and shared state | multi-agent | examples/team_architectures |
| Graph workflows — checkpoints, durable resume, human-in-the-loop, subgraphs | graph-agents | examples/graph_subgraph_claims |
| Coding agents — read, edit and run code in a confined workspace | coding-agent | examples/coding_goal |
| Realtime voice and video — OpenAI Realtime, Gemini Live, Vertex, LiveKit, WebRTC | realtime | examples/realtime_voice |
| Governed computer use — approval interrupts bound to a digest | computer-use | — |
| RAG — chunking, embeddings, vector search, 6 backends | rag | — |
| Memory — semantic search, project isolation, a bi-temporal knowledge graph | memory | examples/skill_memory_improvements |
| Servers — REST with SSE, A2A v1.0.0, background runs, cron | deployment | examples/ambient_cron_agent |
| Gemini Enterprise Agent Platform — Agent Engine BYOC, managed state, memory, artifacts, telemetry and sandbox | agent-engine | examples/vertex_sandbox |
| Agentic Web Protocol — discovery, manifests, trust levels, consent | awp | examples/awp_agent |
| Agentic commerce — ACP and AP2 with durable journals | payments | examples/payments |
| Editor interop — use an ACP coding agent as a tool, or expose yours | acp | — |
| Browser automation — 46 WebDriver tools | browser-tools | — |
| Evaluation — trajectory, rubric, LLM-judge, A/B, CI output | evaluation | examples/eval_showcase |
| Guardrails, RBAC, SSO, audit logging | security | — |
| Observability — OpenTelemetry tracing, structured logging | observability | examples/advanced_agents |
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.
| Template | What you get |
|---|---|
llm (alias basic) | Single LLM agent with tool calling |
tools | LLM agent with #[tool] custom tools |
sequential | Multi-agent pipeline executing in order |
parallel | Parallel execution with result aggregation |
loop | Iterates until a condition is met |
conditional | Routes based on LLM decisions |
graph | Graph workflow with checkpoints and durable execution |
realtime | Bidirectional audio and video streaming |
rag | Vector search over a knowledge base |
api | REST server exposing the agent over HTTP |
agent-engine | Gemini Enterprise Agent Engine BYOC container and Terraform deployment |
openai | OpenAI-powered agent |
custom | Manual Agent trait implementation |
Enterprise patterns — pre-composed, several capabilities already wired together.
| Template | What you get |
|---|---|
production | LLM agent with server, auth, sessions and telemetry |
multi-agent | Supervisor over sub-agents, with telemetry |
pipeline | Sequential data processing with session state |
chatbot | Conversational agent with memory and an HTTP interface |
a2a-server (alias a2a) | A2A protocol server with session management |
managed-agents | Anthropic Managed Agents API session with SSE streaming |
Addons — composable with any template, and with each other.
| Addon | Adds |
|---|---|
telemetry | OpenTelemetry tracing |
auth | API key and JWT authentication |
sessions | Session state management |
memory | Semantic memory and RAG |
mcp | MCP tool integration |
guardrails | Input and output validation |
eval | Evaluation framework |
browser | Browser automation |
server | HTTP 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.
| Crate | Purpose | Key Features |
|---|---|---|
adk-core | Foundational traits and types | Agent trait, Content, Part, error types, streaming primitives |
adk-agent | Agent implementations | LlmAgent, workflow agents, and portable TeamSpec / CompiledTeam composition |
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-gcp | Shared Google Cloud plumbing | ADC credential caching, bounded REST transport, Vertex resource names, and LRO polling |
adk-anthropic | Anthropic client | Dedicated Anthropic API client with streaming, thinking, caching, citations, vision, PDF, pricing |
adk-mistralrs | Native local inference | mistral.rs v0.8 — Gemma 4, Qwen 3.5, Voxtral, ISQ/MXFP4 quantization, LoRA adapters |
adk-tool | Tool system and extensibility | Typed Rust tools, provider-native tools, MCP clients and server SDK, and Vertex AI Example Store |
adk-devtools | Coding-agent dev tools | read_file/write_file/edit_file/glob/grep/bash as a DevToolset, scoped to a sandboxed Workspace |
adk-session | Session and state management | In-memory, SQL, Redis, MongoDB, Firestore, Neo4j, and Vertex AI backends |
adk-artifact | Binary artifacts for agents | In-memory and GCS storage, versioning, MIME types, and image/PDF/video support |
adk-memory | Long-term memory | Semantic stores, Vertex AI Memory Bank, project isolation, and bi-temporal knowledge graphs |
adk-payments | Agentic commerce orchestration | ACP/AP2 adapters, canonical transaction kernel, durable journals, evidence-backed payment flows |
awp-types | AWP protocol types | Trust levels, requester types, discovery documents, capability manifests, payment intents, typed A2A messages — zero adk-* deps |
adk-awp | Agentic Web Protocol implementation | Business context loading, discovery/manifest generation, rate limiting, consent, events, health state machine, AWP routes |
adk-acp | Agent Client Protocol integration | Official 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-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, A2A v1.0.0, and Gemini Enterprise Agent Engine runtime dispatch |
adk-cli | Run and inspect agents from a terminal | Interactive REPL, session management, MCP server integration |
adk-realtime | Real-time voice & multimodal agents | OpenAI Realtime + Gemini Live, bidirectional audio, video frames, VAD, affective dialogue, server-side tools via IntegratedRealtimeRunner |
adk-graph | Graph-based workflows | LangGraph-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-browser | Browser automation | 46 WebDriver tools, navigation, forms, screenshots, PDF generation |
adk-computer-use | Governed desktop automation | Deterministic graph over computer-use-mcp: parallel observation, digest-bound approval interrupts, single-executor mutation, verification; wire contracts + tamper-evident evaluation receipts |
adk-eval | Agent evaluation | Test definitions, trajectory validation, LLM-judged scoring, rubrics |
adk-guardrail | Runtime validation | Input/output checks, PII redaction, and argument-level tool allow/deny/revision |
adk-auth | Access control | Role-based permissions, declarative scope-based security, SSO/OAuth, audit logging |
adk-sandbox | Sandboxed code execution | Process/WASM backends, OS-level sandbox profiles (Seatbelt on macOS, bubblewrap on Linux; Windows AppContainer not implemented) |
adk-telemetry | Observability | OpenTelemetry tracing, structured logging, and Google Cloud export |
adk-managed | Managed agent runtime (Experimental) | Provider-neutral agent execution, in-process checkpointing and event replay (state does not survive process loss) |
adk-enterprise | Enterprise client SDK (Experimental) | HTTP/SSE client for managed agent service, zero runtime deps |
adk-plugin | Lifecycle hooks | EnhancedPlugin trait, tool and model interception, priority pipeline, shared PluginContext |
adk-retry-reflect | Retry and reflect plugin | Intercepts tool failures, injects reflection prompts, exponential backoff, circuit breaker |
adk-action | Action node types | 14 deterministic node types, StandardProperties, variable interpolation — the shared types behind adk-graph's ActionNodeExecutor |
adk-code | Code execution substrate | Process, Docker, embedded runtimes, and Vertex AI Agent Engine managed sandboxes |
adk-codeact-monty | Python runtime for CodeAct (Experimental) | Pydantic Monty interpreter, sandboxed OS access, suspend and resume snapshots |
adk-audio | Audio processing | STT and TTS providers, Deepgram streaming, desktop capture and playback, VAD, ONNX models (Whisper, Moonshine, Kokoro) |
adk-bench | Benchmarking | Framework runtime performance against real LLM APIs, and cross-framework comparison with Python ADK |
adk-deploy | Deployment utilities | Targets, manifests, and Gemini Enterprise Agent Engine BYOC deployment |
adk-rust-macros | Procedural macros | #[tool] with read_only/concurrency_safe/long_running metadata, #[entrypoint] and #[task] for the functional API |
cargo-adk | Cargo subcommand | Project templates including Agent Engine BYOC, composable addons, benchmarks, and deployment |
adk-rust | Umbrella crate | Re-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).
Measured with cargo adk bench against gemini-2.5-flash, same workload and prompt
for every framework.
| Framework | Cold Start | Agent Loop Overhead (mean) | Agent Loop Overhead (P95) | Peak RSS |
|---|---|---|---|---|
| ADK-Rust | 109 ms | 568 μs | 615 μs | ~15 MB |
| Gemini Python SDK | 501 ms | 253 μs | 334 μs | 69.7 MB |
| LangGraph | 502 ms | 1,228 ms | 1,228 ms | 92.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.
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.
| Project | What it is |
|---|---|
| adk-studio | Visual agent builder — canvas, code generation, live testing |
| adk-ui | Dynamic UI generation — 28 components, React client, streaming |
| adk-playground | 120+ working examples, and a hosted playground |
Related: Google's ADK · MCP · Gemini API
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:
Become a sponsor — monthly tiers from $5, or a one-off contribution. Sponsors are listed here and on the sponsors page.
Apache 2.0. See LICENSE.
Rust
99.0%
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
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.
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 on YouTube — 40 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
run_node_with for work whose size comes from state, and
with_goto for a node that picks its own successor with no edge declaredA deep-dive into what shipped, who built it, and where it was going. 39 crates. 130K downloads. Semver stable.
▶️ Watch on YouTube — 10 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
2 min 21 sec · Generated entirely by ADK-Rust using Gemini 3.1 Flash TTS
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.
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.

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.
[dependencies]
adk-rust = "2.2.0" # Gemini, agents, runner, sessions
# adk-rust = { version = "2.2.0", features = ["standard"] } # + server, auth, graph, eval
| Tier | Includes | Use case |
|---|---|---|
minimal (default) | Gemini provider, agents, runner, sessions | Fast starter agents |
standard | minimal + OpenAI, Anthropic, tools, memory, telemetry, server, auth, graph, eval, guardrail, plugins, artifacts, skills | Serving an agent over HTTP |
enterprise | standard + realtime, browser, RAG, payments, AWP | Voice, retrieval and payments |
full | enterprise + audio, code execution, sandbox | Everything |
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.
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:
| Provider | Client | Feature | Key |
|---|---|---|---|
| Gemini | GeminiModel::new(key, model) | default | GOOGLE_API_KEY |
| OpenAI | OpenAIClient::new(OpenAIConfig::new(key, model)) | openai | OPENAI_API_KEY |
| OpenAI Responses | OpenAIResponsesClient::new(OpenAIResponsesConfig::new(key, model)) | openai | OPENAI_API_KEY |
| Anthropic | AnthropicClient::new(AnthropicConfig::new(key, model)) | anthropic | ANTHROPIC_API_KEY |
| DeepSeek | DeepSeekClient::chat(key) | deepseek | DEEPSEEK_API_KEY |
| Groq | GroqClient::new(GroqConfig::gpt_oss_120b(key)) | groq | GROQ_API_KEY |
| Ollama | OllamaModel::new(OllamaConfig::new(model)) | ollama | none |
| Bedrock | BedrockClient::new(BedrockConfig::new(region, model_id)).await? | bedrock | AWS credential chain |
| mistral.rs | MistralRsModel::new(config) | adk-mistralrs | none, local |
Or let it choose: adk_rust::run(instructions, input) picks a provider from the
environment, among those you compiled in.
| Provider | Model Examples | Feature Flag |
|---|---|---|
| Gemini | gemini-3.7-flash (default), gemini-3.6-flash, gemini-3.5-flash-lite, gemini-3.1-pro-preview | (default) |
| OpenAI | gpt-5.6-terra (default), gpt-5.6-sol, gpt-5.6-luna | openai |
| OpenAI Responses API | gpt-5.6-terra, gpt-5.6-sol, gpt-5.6-luna | openai |
| Anthropic | claude-sonnet-5 (default), claude-opus-5, claude-fable-5 | anthropic |
| DeepSeek | deepseek-v4-flash, deepseek-v4-pro | deepseek |
| Groq | openai/gpt-oss-120b, openai/gpt-oss-20b | groq |
| Ollama | qwen3.6:35b-a3b, qwen3.5, llama3.2:3b | ollama |
| Fireworks AI | accounts/fireworks/models/kimi-k2p6 | openai (preset) |
| Together AI | MiniMaxAI/MiniMax-M2.7 | openai (preset) |
| Mistral AI | mistral-medium-latest | openai (preset) |
| Perplexity | sonar-pro | openai (preset) |
| Cerebras | gpt-oss-120b | openai (preset) |
| SambaNova | gpt-oss-120b | openai (preset) |
| xAI (Grok) | grok-4.6 | openai (preset) |
| Amazon Bedrock | anthropic.claude-sonnet-4-20250514-v1:0 | bedrock |
| Azure AI Inference | (endpoint-specific) | azure-ai |
| mistral.rs | Gemma 4, Phi-3, Llama, Qwen 3.5, Voxtral, FLUX | adk-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.
Each row links to its guide and a runnable example.
| Capability | Guide | Example |
|---|---|---|
| Embedded runtime UI — conversations, Markdown, tools, workflow/team topology, realtime playback, protocols, state and telemetry | deployment | examples/advanced_agents |
Tools — #[tool] derives the JSON schema from your argument type | tools | examples/coding_agent |
MCP clients and servers on rmcp 3.1 — tools, resources, prompts, elicitation, tasks | mcp | examples/mcp_protocol_revisions |
| Workflow agents — sequential, parallel, loop | agents | examples/multi_perspective_analysis |
| Portable teams — validated handoff, delegation, policies, receipts and shared state | multi-agent | examples/team_architectures |
| Graph workflows — checkpoints, durable resume, human-in-the-loop, subgraphs | graph-agents | examples/graph_subgraph_claims |
| Coding agents — read, edit and run code in a confined workspace | coding-agent | examples/coding_goal |
| Realtime voice and video — OpenAI Realtime, Gemini Live, Vertex, LiveKit, WebRTC | realtime | examples/realtime_voice |
| Governed computer use — approval interrupts bound to a digest | computer-use | — |
| RAG — chunking, embeddings, vector search, 6 backends | rag | — |
| Memory — semantic search, project isolation, a bi-temporal knowledge graph | memory | examples/skill_memory_improvements |
| Servers — REST with SSE, A2A v1.0.0, background runs, cron | deployment | examples/ambient_cron_agent |
| Gemini Enterprise Agent Platform — Agent Engine BYOC, managed state, memory, artifacts, telemetry and sandbox | agent-engine | examples/vertex_sandbox |
| Agentic Web Protocol — discovery, manifests, trust levels, consent | awp | examples/awp_agent |
| Agentic commerce — ACP and AP2 with durable journals | payments | examples/payments |
| Editor interop — use an ACP coding agent as a tool, or expose yours | acp | — |
| Browser automation — 46 WebDriver tools | browser-tools | — |
| Evaluation — trajectory, rubric, LLM-judge, A/B, CI output | evaluation | examples/eval_showcase |
| Guardrails, RBAC, SSO, audit logging | security | — |
| Observability — OpenTelemetry tracing, structured logging | observability | examples/advanced_agents |
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.
| Template | What you get |
|---|---|
llm (alias basic) | Single LLM agent with tool calling |
tools | LLM agent with #[tool] custom tools |
sequential | Multi-agent pipeline executing in order |
parallel | Parallel execution with result aggregation |
loop | Iterates until a condition is met |
conditional | Routes based on LLM decisions |
graph | Graph workflow with checkpoints and durable execution |
realtime | Bidirectional audio and video streaming |
rag | Vector search over a knowledge base |
api | REST server exposing the agent over HTTP |
agent-engine | Gemini Enterprise Agent Engine BYOC container and Terraform deployment |
openai | OpenAI-powered agent |
custom | Manual Agent trait implementation |
Enterprise patterns — pre-composed, several capabilities already wired together.
| Template | What you get |
|---|---|
production | LLM agent with server, auth, sessions and telemetry |
multi-agent | Supervisor over sub-agents, with telemetry |
pipeline | Sequential data processing with session state |
chatbot | Conversational agent with memory and an HTTP interface |
a2a-server (alias a2a) | A2A protocol server with session management |
managed-agents | Anthropic Managed Agents API session with SSE streaming |
Addons — composable with any template, and with each other.
| Addon | Adds |
|---|---|
telemetry | OpenTelemetry tracing |
auth | API key and JWT authentication |
sessions | Session state management |
memory | Semantic memory and RAG |
mcp | MCP tool integration |
guardrails | Input and output validation |
eval | Evaluation framework |
browser | Browser automation |
server | HTTP 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.
| Crate | Purpose | Key Features |
|---|---|---|
adk-core | Foundational traits and types | Agent trait, Content, Part, error types, streaming primitives |
adk-agent | Agent implementations | LlmAgent, workflow agents, and portable TeamSpec / CompiledTeam composition |
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-gcp | Shared Google Cloud plumbing | ADC credential caching, bounded REST transport, Vertex resource names, and LRO polling |
adk-anthropic | Anthropic client | Dedicated Anthropic API client with streaming, thinking, caching, citations, vision, PDF, pricing |
adk-mistralrs | Native local inference | mistral.rs v0.8 — Gemma 4, Qwen 3.5, Voxtral, ISQ/MXFP4 quantization, LoRA adapters |
adk-tool | Tool system and extensibility | Typed Rust tools, provider-native tools, MCP clients and server SDK, and Vertex AI Example Store |
adk-devtools | Coding-agent dev tools | read_file/write_file/edit_file/glob/grep/bash as a DevToolset, scoped to a sandboxed Workspace |
adk-session | Session and state management | In-memory, SQL, Redis, MongoDB, Firestore, Neo4j, and Vertex AI backends |
adk-artifact | Binary artifacts for agents | In-memory and GCS storage, versioning, MIME types, and image/PDF/video support |
adk-memory | Long-term memory | Semantic stores, Vertex AI Memory Bank, project isolation, and bi-temporal knowledge graphs |
adk-payments | Agentic commerce orchestration | ACP/AP2 adapters, canonical transaction kernel, durable journals, evidence-backed payment flows |
awp-types | AWP protocol types | Trust levels, requester types, discovery documents, capability manifests, payment intents, typed A2A messages — zero adk-* deps |
adk-awp | Agentic Web Protocol implementation | Business context loading, discovery/manifest generation, rate limiting, consent, events, health state machine, AWP routes |
adk-acp | Agent Client Protocol integration | Official 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-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, A2A v1.0.0, and Gemini Enterprise Agent Engine runtime dispatch |
adk-cli | Run and inspect agents from a terminal | Interactive REPL, session management, MCP server integration |
adk-realtime | Real-time voice & multimodal agents | OpenAI Realtime + Gemini Live, bidirectional audio, video frames, VAD, affective dialogue, server-side tools via IntegratedRealtimeRunner |
adk-graph | Graph-based workflows | LangGraph-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-browser | Browser automation | 46 WebDriver tools, navigation, forms, screenshots, PDF generation |
adk-computer-use | Governed desktop automation | Deterministic graph over computer-use-mcp: parallel observation, digest-bound approval interrupts, single-executor mutation, verification; wire contracts + tamper-evident evaluation receipts |
adk-eval | Agent evaluation | Test definitions, trajectory validation, LLM-judged scoring, rubrics |
adk-guardrail | Runtime validation | Input/output checks, PII redaction, and argument-level tool allow/deny/revision |
adk-auth | Access control | Role-based permissions, declarative scope-based security, SSO/OAuth, audit logging |
adk-sandbox | Sandboxed code execution | Process/WASM backends, OS-level sandbox profiles (Seatbelt on macOS, bubblewrap on Linux; Windows AppContainer not implemented) |
adk-telemetry | Observability | OpenTelemetry tracing, structured logging, and Google Cloud export |
adk-managed | Managed agent runtime (Experimental) | Provider-neutral agent execution, in-process checkpointing and event replay (state does not survive process loss) |
adk-enterprise | Enterprise client SDK (Experimental) | HTTP/SSE client for managed agent service, zero runtime deps |
adk-plugin | Lifecycle hooks | EnhancedPlugin trait, tool and model interception, priority pipeline, shared PluginContext |
adk-retry-reflect | Retry and reflect plugin | Intercepts tool failures, injects reflection prompts, exponential backoff, circuit breaker |
adk-action | Action node types | 14 deterministic node types, StandardProperties, variable interpolation — the shared types behind adk-graph's ActionNodeExecutor |
adk-code | Code execution substrate | Process, Docker, embedded runtimes, and Vertex AI Agent Engine managed sandboxes |
adk-codeact-monty | Python runtime for CodeAct (Experimental) | Pydantic Monty interpreter, sandboxed OS access, suspend and resume snapshots |
adk-audio | Audio processing | STT and TTS providers, Deepgram streaming, desktop capture and playback, VAD, ONNX models (Whisper, Moonshine, Kokoro) |
adk-bench | Benchmarking | Framework runtime performance against real LLM APIs, and cross-framework comparison with Python ADK |
adk-deploy | Deployment utilities | Targets, manifests, and Gemini Enterprise Agent Engine BYOC deployment |
adk-rust-macros | Procedural macros | #[tool] with read_only/concurrency_safe/long_running metadata, #[entrypoint] and #[task] for the functional API |
cargo-adk | Cargo subcommand | Project templates including Agent Engine BYOC, composable addons, benchmarks, and deployment |
adk-rust | Umbrella crate | Re-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).
Measured with cargo adk bench against gemini-2.5-flash, same workload and prompt
for every framework.
| Framework | Cold Start | Agent Loop Overhead (mean) | Agent Loop Overhead (P95) | Peak RSS |
|---|---|---|---|---|
| ADK-Rust | 109 ms | 568 μs | 615 μs | ~15 MB |
| Gemini Python SDK | 501 ms | 253 μs | 334 μs | 69.7 MB |
| LangGraph | 502 ms | 1,228 ms | 1,228 ms | 92.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.
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.
| Project | What it is |
|---|---|
| adk-studio | Visual agent builder — canvas, code generation, live testing |
| adk-ui | Dynamic UI generation — 28 components, React client, streaming |
| adk-playground | 120+ working examples, and a hosted playground |
Related: Google's ADK · MCP · Gemini API
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:
Become a sponsor — monthly tiers from $5, or a one-off contribution. Sponsors are listed here and on the sponsors page.
Apache 2.0. See LICENSE.
Rust
99.0%