Expand description
The kernel prelude — the names a typical application touches.
Deliberately a kernel, not an everything-glob. Anything not here lives in a focused submodule and is one import away:
| Need | Import |
|---|---|
| Full Live control plane (persistence, repair, steering, transcripts, contracts) | use gemini_adk_fluent_rs::live::*; |
| Text-agent runtime details | use gemini_adk_fluent_rs::text::*; |
| Toolsets, confirmation, frames | use gemini_adk_fluent_rs::tools::*; |
State prefixes / SlotEvidence | use gemini_adk_fluent_rs::state::*; |
Full flow vocabulary (CompiledFlow, StepAction, Violation, …) | use gemini_adk_fluent_rs::flow::*; |
Agent trait + operator/pattern internals | use gemini_adk_fluent_rs::agents::*; |
Conversation compiler internals (ResolverRegistry, StageSpec, OverlaySpec, …) | use gemini_adk_fluent_rs::conversation::*; (Conversation, ConversationSpec, CompiledConversation are in the prelude) |
Serializable scenarios (Scenario, SimStep) | use gemini_adk_fluent_rs::simulation::*; (Sim is in the prelude) |
| A2A, motifs, policy, testing, orchestration, credentials, run_config | the same-named module, e.g. use gemini_adk_fluent_rs::policy::*; |
| Raw L0 wire types | use gemini_adk_fluent_rs::wire::*; |
Re-exports§
pub use crate::voice::Talk;pub use crate::compose::A;pub use crate::compose::C;pub use crate::compose::Ctx;pub use crate::compose::E;pub use crate::compose::G;pub use crate::compose::M;pub use crate::compose::P;pub use crate::compose::S;pub use crate::compose::T;pub use crate::live::Live;pub use crate::testing::AgentHarness;pub use crate::testing::ContractViolation;pub use crate::testing::DataFlowEdge;pub use crate::testing::LiveViolation;pub use crate::testing::check_contracts;pub use crate::testing::check_live;pub use crate::testing::diagnose;pub use crate::testing::infer_data_flow;pub use crate::conversation::CompiledConversation;pub use crate::conversation::Conversation;pub use crate::conversation::ConversationSpec;pub use crate::simulation::Sim;pub use crate::builder::*;pub use crate::operators::*;pub use crate::patterns::*;
Modules§
- tool
- Tool dispatch — regular, streaming, and input-streaming tools.
- tool_
media - Tool media returns — the ADK pattern where a function response carries images or other media to the model alongside its JSON payload, so vision tools (screenshots, chart renderers, document croppers) feed the model something it can actually look at.
Structs§
- Audio
Transcription Config - Audio transcription settings, for the user’s audio
(
inputAudioTranscription) or the model’s (outputAudioTranscription). - Automatic
Activity Detection - Automatic activity detection (VAD) settings.
- Avatar
Config - Live Avatar video output (Gemini 3.8 Live): a prebuilt avatar by name, or a custom one generated from a reference image.
- Blob
- A blob of inline data (audio, image, etc.) sent to or received from Gemini.
- Callback
Context - Rich context for callbacks — provides access to state, artifacts, memory, and event actions for mutation.
- Chat
- A conversation with an agent: every
sendcarries the turns before it, and the conversation keeps its ownState. - Config
Error - A build-time configuration error: one or more problems found while
validating user-supplied configuration (a
Flow, aPhaseMachine, aComputedRegistry, …). - Content
- A content message containing a role and a sequence of parts.
- Dispatch
Text Agent - Fire-and-forget background task launcher with global task budget.
- Event
Callbacks - Typed callback registry for Live session events.
- Extract
- A declarative extraction record: typed fields filled by recognizers and/or async resolvers.
- Fallback
Text Agent - Tries each child agent in sequence. Returns the first successful result. If all fail, returns the last error.
- Flow
- A governed conversation/tool DAG.
- Flow
Monitor - Observes the session trace, maintains the
Marking, answers tool admissibility, and projects active postures. - FnText
Agent - Zero-cost state transform agent — executes a closure, no LLM call.
- FsPersistence
- File-system persistence (good for development and single-server deployments).
- Function
Call - A function call request from the model.
- Function
Declaration - Schema for a single function that the model can call.
- Function
Response - A function call response sent back to the model.
- Gemini
Llm - Concrete Gemini LLM implementation using gemini-live
Client. - Gemini
LlmParams - Parameters for constructing a
GeminiLlm. - Generation
Config - Generation config sent in the setup message.
- Join
Text Agent - Waits for dispatched background tasks and collects their results.
- Live
Handle - Handle for interacting with a running Live session.
- LlmExtractor
- LLM-backed turn extractor that sends transcript windows to an OOB LLM with a structured extraction prompt.
- LlmText
Agent - Core text agent — calls
BaseLlm::generate(), dispatches tools, loops until the model produces a final text response. - Loop
Text Agent - Runs a text agent repeatedly until max iterations or a state predicate.
- MapOver
Text Agent - Iterates a single agent over each item in a state list.
Reads
state[list_key], runs agent per item (settingstate[item_key]), collects results intostate[output_key]. - Memory
Persistence - In-memory persistence (good for tests).
- ModelId
- A Gemini model identifier, exactly as the API accepts it.
- Parallel
Text Agent - Runs text agents concurrently. All branches share state. Results are collected and joined with newlines.
- Race
Text Agent - Runs agents concurrently, returns the first to complete. Cancels the rest.
- Repair
Config - Configuration for the conversation repair system.
- Repair
Policy - A step’s repair policy for the weird paths (silence, no-match, the user
stalling). The stack sets
repair:{step}:repromptonce the step has been activereprompt_afterturns without completing, andrepair:{step}:escalateafterescalate_after. Whenescalate_tois set, the authoring layer lowers an extra edge gated on the escalate signal — a deterministic “give up and hand off”. - Route
Rule - A routing rule: predicate over state → target agent.
- Route
Text Agent - State-driven deterministic branching — evaluates predicates in order, dispatches to the first matching agent. Falls back to default if none match.
- RunRequest
- What to run: the new user turn, the conversation before it, and optionally the JSON shape the reply must take.
- RunResult
- The outcome of a run: the final text, and what it took to get there.
- Safety
Setting - Per-category safety configuration for content generation.
- Sequential
Text Agent - Runs text agents sequentially. Each agent sees state mutations from previous agents. The final agent’s output is the pipeline’s output.
- Session
Config - Complete session configuration — the builder entrypoint.
- Simple
Tool - Simple function tool that wraps an async closure.
- Soft
Turn Detector - Detects proactive silence — user stopped speaking but model didn’t respond.
- Speech
Config - Speech configuration for audio output.
- State
- A concurrent, type-safe state container that agents read from and write to.
- State
Key - A compile-time typed state key that eliminates typo bugs and type mismatches.
- TapText
Agent - Read-only observation agent. Calls a function with the state but cannot mutate it. Returns empty string. No LLM call.
- Task
Registry - Shared registry for dispatched background tasks.
- Template
Instruction - A full template-engine instruction (feature
templates) — minijinja (Jinja2 syntax: conditionals, loops, filters) over the session state, mirroring ADK’suse_jinja2instructions. The whole state is exposed asstate(subscript prefixed keys:{{ state["session:turn_count"] }}), and every key that is a bare identifier is also available at top level ({{ name }}). Falls back to the empty string for missing values under Jinja’s default undefined semantics. - Thinking
Config - Configuration for model thinking/reasoning (Gemini 2.5+).
- Timeout
Text Agent - Wraps an agent with a time limit. Returns
AgentError::Timeoutif exceeded. - Tool
- A tool declaration sent in the setup message. Each Tool object can contain one of: function declarations, urlContext, googleSearch, codeExecution, or googleSearchRetrieval.
- Tool
Context - The session a tool call runs in.
- Tool
Dispatcher - Routes function calls to the right tool implementation.
- Tool
Policy - Optional per-tool execution policy.
- Transcript
Buffer - Accumulates input/output transcripts and segments them by turn boundaries.
- Transcript
Turn - A single completed conversation turn with accumulated transcripts.
- Typed
Tool - Type-safe function tool with auto-generated JSON Schema.
- Usage
Metadata - Usage metadata returned by the server on messages.
- Voice
Timing - Voice pacing for one stage. Every field is optional; an unset field leaves the session’s own behaviour alone.
Enums§
- Activity
Handling - Controls how incoming audio interacts with model output.
- Agent
Error - Errors that can occur during agent execution.
- ApiEndpoint
- API endpoint selector — Google AI (direct), Google AI with OAuth token, or Vertex AI.
- Audio
Format - Audio encoding formats supported by the Gemini Live API.
- Context
Delivery - When to deliver model-role context turns to the wire.
- Enforcement
- How a
FlowMonitortreats off-path activity — enforcement vs observation. - Extraction
Trigger - Controls WHEN an extractor runs.
- Finish
Reason - Why the model stopped generating.
- Function
Calling Behavior - Whether tool calls block model output or run concurrently.
- Function
Response Scheduling - Scheduling mode for non-blocking function responses.
- Guard
- A boolean predicate over
(state, marking)— the only predicate type. - Harm
Block Threshold - Blocking threshold for safety settings.
- Harm
Category - Categories of potential harm in model output.
- LlmError
- Errors from LLM operations.
- Modality
- Output modalities the model can produce.
- Part
- A single part of a
Contentmessage. Parts are polymorphic — discriminated by field presence, not a type tag. - Persistence
Error - Error returned by a
SessionPersistencebackend. - Role
- Role in a conversation.
- RunEvent
- Something that happened during a streamed run; see
TextAgent::run_stream. - Sensitivity
- Voice activity detection sensitivity level.
- Server
Message - Unified server message enum — parsed from incoming WebSocket text frames.
- Session
Event - Events emitted by the session, consumed by application code.
- Steering
Mode - How the phase machine steers the model’s behavior.
- Tool
Error - Errors that can occur during tool execution.
- Turn
Coverage - Controls which input counts toward a user’s conversation turn.
- Verdict
- The conformance status of a step.
- Voice
- Available voice presets for Gemini Live audio output.
Traits§
- Agent
- The fundamental agent trait. Everything that can process a live session implements this — LLM agents, function agents, pipelines, routers.
- BaseLlm
- Trait for LLM providers — decouples agents from specific models.
- Frame
- A typed conversation frame. Implement via
#[derive(Frame)]. - Instruction
Provider - A dynamic instruction source — the ADK “instruction provider” pattern:
instead of a string fixed at build time, the instruction is produced
from live session state on every model request (persona switching,
risk-driven guardrails, multi-tenant instructions without rebuilding
the agent). Any
Fn(&State) -> Stringclosure is a provider. - Session
Persistence - Trait for persisting session state across process restarts.
- Stream
Ext - An extension trait for
Streams that provides a variety of convenient combinator functions. - Text
Agent - A text-based agent that runs via
BaseLlm::generate()(request/response). - Tool
Function - A regular tool — called once, returns a result.
- Turn
Extractor - Trait for between-turn extraction from transcript windows.
Type Aliases§
- Agent
Result - Convenience alias for fallible agent-runtime operations.
Attribute Macros§
- tool
- Turn a documented
async fninto a registrable Gemini tool.