rs-adk 0.4.0

Agent runtime for Gemini Live — tools, streaming, agent transfer, middleware
Documentation

rs-adk

Agent runtime for Gemini Live — tools, streaming, agent transfer, middleware. This is the L1 (runtime) crate that builds on rs-genai to provide agent lifecycle, tool dispatch, state management, and the three-lane processor architecture.

Features

  • Agent trait with lifecycle hooks for text and live (voice) sessions
  • Tool systemToolFunction, StreamingTool, TypedTool with JSON Schema generation
  • State management — prefixed key-value store with atomic modify(), delta tracking
  • Three-lane processor — fast (audio), control (tools/phases), telemetry (signals)
  • LLM extractors — structured data extraction from conversation transcripts
  • Phase system — instruction-scoped conversation phases with tool filtering
  • Middleware chain — composable request/response processing pipeline
  • Text agents — 15+ combinators (sequential, parallel, race, route, loop, etc.)

Quick Start

use rs_adk::*;

let tool = SimpleTool::new("get_weather", "Get current weather", |args| async {
    Ok(serde_json::json!({"temp": 72, "unit": "F"}))
});

let session = LiveSessionBuilder::new()
    .model(rs_genai::prelude::GeminiModel::Gemini2_0Flash)
    .instruction("You are a weather assistant.")
    .tool(tool)
    .build()
    .await?;

Documentation

API Reference (docs.rs)

License

Apache-2.0