Getting started
Setup, authentication, the three-layer architecture and its contract, migrating from raw WebSockets.
v4.0 · Rust SDK
| Goal | Start here | Check before expanding |
|---|---|---|
| A text agent | Text agents | One request, tool result and returned answer |
| A voice conversation | Live sessions | Connection, audio output and interruption handling |
| A constrained tool workflow | Governed flows | Allowed transitions and denied actions |
| A conversation test suite | Conversation CI | Scripted scenarios, independent of model calls |
| A custom transport | Architecture | Wire events and the layer you need to replace |
The fluent crate supplies application builders. The runtime owns state, callbacks and tool dispatch. The wire crate owns protocol and transport. The independent memory crate adds session memory.
A declared flow can constrain tool dispatch. Its instruction text does not make every model utterance correct. Test control-plane behavior offline, then measure the live model and transport separately.
use gemini_adk_fluent_rs::prelude::*;
Live::builder() .instruction("You are a helpful concierge.") .greeting("Greet the caller.") .connect_from_env().await? // Google AI or Vertex — resolved from env .talk().await?; // microphone in, speakers out, barge-in handledOr with explicit callbacks:
use gemini_adk_fluent_rs::prelude::*;
let handle = Live::builder() .voice(Voice::Kore) .instruction("You are a helpful voice assistant.") .on_audio(|pcm| { /* play audio */ }) .on_text(|text| print!("{text}")) .connect_from_env() .await?;
handle.send_text("What's the weather like?").await?;handle.disconnect().await?;New here? Start with Setup and Running and Authentication & Connecting, then browse the cookbook (Crawl → Walk → Run → Governed).
A whole governed session can be one JSON document (SessionSpec): the
conversation or flow, tools, extraction, phases, watchers, computed state,
memory, runtime tuning, and its tests. It validates, simulates and generates
Rust, Python or Go projects offline. It is stored as versioned bundles that a
runtime serves by label. The Studio is the
editor for that document:

See Flows as JSON for the format and the Studio tour for the editor.
Getting started
Setup, authentication, the three-layer architecture and its contract, migrating from raw WebSockets.
Voice & Live sessions
Live sessions and callbacks, voice I/O, telephony, phases, state, persistence.
Tools & extraction
The tool system, per-tool policies, MCP interop, and the extraction pipeline.
Composition & patterns
Memory
The durable memory engine — async-prepare, sync-consume — and its declarative binding into governed state.
Reference
The API reference (every feature, every crate), the glossary, and troubleshooting.