ADK-Rust 简介

Agent Development Kit (ADK) 是一个灵活、模块化的框架,用于开发和部署 AI agents。虽然 ADK 为 Gemini 和 Google 生态系统进行了优化,但它与模型无关、与部署无关,并为与其他框架的兼容性而构建。ADK 旨在使 agent 开发更像软件开发,让开发者更容易创建、部署和编排从简单任务到复杂工作流的 agentic architectures。

注意: ADK-Rust v0.2.0 需要 Rust 1.85.0 或更高版本

安装

adk-rust 添加到您的项目中:

cargo add adk-rust

或者将其添加到您的 Cargo.toml

[dependencies]
adk-rust = "0.2.0"
tokio = { version = "1.40", features = ["full"] }

快速示例

use adk_rust::prelude::*;
use std::sync::Arc;

#[tokio::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.5-flash")?;
    
    let agent = LlmAgentBuilder::new("assistant")
        .description("A helpful AI assistant")
        .model(Arc::new(model))
        .build()?;
    
    println!("Agent '{}' ready!", agent.name());
    Ok(())
}

架构概览

ADK-Rust 采用分层架构,旨在实现模块化和可扩展性:

┌─────────────────────────────────────────────────────────────┐
│                    应用层                                  │
│              CLI • REST 服务器 • Web UI                      │
├─────────────────────────────────────────────────────────────┤
│                      Runner 层                               │
│           Agent 执行 • 上下文管理                            │
├─────────────────────────────────────────────────────────────┤
│                      Agent 层                                │
│    LlmAgent • CustomAgent • 工作流 Agent                     │
├─────────────────────────────────────────────────────────────┤
│                     服务层                                   │
│      Models • Tools • Sessions • Artifacts • Memory          │
└─────────────────────────────────────────────────────────────┘

核心概念

ADK-Rust 围绕几个关键原语构建,这些原语协同工作以创建强大的 AI 代理:

代理

为特定任务设计的T基本工作单元。ADK-Rust 提供了多种代理类型:

  • LlmAgent: 使用大型语言模型进行推理和决策。这是大多数用例的主要代理类型。
  • RealtimeAgent: 启用语音的代理,使用 OpenAI Realtime API 或 Gemini Live API 进行双向音频流传输。
  • GraphAgent: LangGraph 风格的工作流编排,支持状态管理、检查点和人工干预。
  • CustomAgent: 允许您实现自定义逻辑,完全控制代理行为。
  • 工作流代理: 遵循预定义执行路径的确定性代理:
    • SequentialAgent: 按顺序执行子代理
    • ParallelAgent: 并发执行子代理
    • LoopAgent: 迭代执行子代理直到满足条件

工具

工具赋予代理超越对话的能力,让他们能够与外部 API 交互、搜索信息或执行自定义操作:

  • FunctionTool: 将任何 async Rust 函数封装为工具
  • GoogleSearchTool: 内置网页搜索功能
  • BrowserToolset: 46 种 WebDriver 工具,用于网络自动化(导航、表单、截图等)
  • ExitLoopTool: 控制 LoopAgent 中的循环终止
  • McpToolset: 与 Model Context Protocol 服务器集成

会话

会话处理单个对话的上下文,包括:

  • 会话 ID: 对话的唯一标识符
  • 事件: 对话历史(用户消息、代理响应、工具调用)
  • 状态: 对话的工作内存,带有作用域前缀 (app:, user:, temp:)

回调

在代理执行的特定点运行的自定义代码:

  • before_agent / after_agent: 拦截代理调用
  • before_model / after_model: 拦截 LLM 调用
  • before_tool / after_tool: 拦截工具执行

回调支持日志记录、防护措施、缓存和行为修改。

工件

用于文件、图像或其他非文本内容的二进制数据存储:

  • 保存和加载带版本控制的工件
  • 命名空间范围(会话级别或用户级别)
  • 可插拔存储后端

事件

表示会话期间发生事件的基本通信单元:

  • 用户消息
  • 代理响应
  • 工具调用和结果
  • 状态变更

事件构成对话历史,并支持重放和调试。

模型

驱动 LlmAgents 的底层 LLM。ADK-Rust 针对 Gemini 进行了优化,但通过 Llm trait 支持多个提供商:

  • Gemini: Google 的 Gemini 模型 (gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-pro)
  • OpenAI: gpt-5.2, gpt-4o, gpt-4o-mini, Azure OpenAI
  • Anthropic: claude-sonnet-4-5, claude-opus-4-5, claude-sonnet-4
  • DeepSeek: deepseek-chat, deepseek-reasoner 带有思维模式
  • Groq: 使用 llama-3.3-70b-versatile, mixtral-8x7b-32768 实现超高速推理
  • Ollama: 使用 llama3.2, qwen2.5, mistral, phi4 进行本地推理
  • mistral.rs: 具有硬件加速的高性能本地推理

所有提供商都实现了相同的 trait,可互换使用:

pub trait Llm: Send + Sync {
    async fn generate(&self, request: LlmRequest) -> Result<LlmResponse>;
    async fn generate_stream(&self, request: LlmRequest) -> Result<LlmResponseStream>;
}

运行器

管理执行流、编排代理交互并与后端服务协调的引擎。Runner 处理:

  • 代理调用和响应处理
  • 工具执行
  • 会话和状态管理
  • 事件流

功能标志

adk-rust 使用 Cargo 功能来实现模块化:

# Full installation (default)
adk-rust = "0.2.0"

# Minimal: Only agents + Gemini
adk-rust = { version = "0.2.0", default-features = false, features = ["minimal"] }

# Custom: Pick what you need
adk-rust = { version = "0.2.0", default-features = false, features = ["agents", "gemini", "tools"] }

可用功能:

  • agents: Agent 实现 (LlmAgent, CustomAgent, workflow agents)
  • models: 模型集成 (Gemini)
  • openai: OpenAI models (GPT-5, GPT-4o)
  • anthropic: Anthropic models (Claude 4.5, Claude 4)
  • deepseek: DeepSeek models (chat, reasoner)
  • groq: Groq 超高速推理
  • ollama: 本地 Ollama models
  • tools: Tool 系统和内置 tools
  • sessions: Session 管理
  • artifacts: Artifact 存储
  • memory: 带有语义搜索的 Memory 系统
  • runner: Agent 执行运行时
  • server: HTTP server (REST + A2A)
  • telemetry: OpenTelemetry 集成
  • cli: CLI 启动器

其他语言

ADK 提供多种语言版本:

  • Python: pip install google-adk - 文档
  • Go: go get google.golang.org/adk - 文档
  • Java: Maven/Gradle - 文档

下一步快速入门 →