ADK-Rustの紹介
Agent Development Kit (ADK) は、AIエージェントの開発とデプロイのための柔軟でモジュール式のフレームワークです。ADKはGeminiとGoogleエコシステム向けに最適化されていますが、モデルに依存せず、デプロイメントに依存せず、他のフレームワークとの互換性を持つように構築されています。ADKは、エージェント開発がよりソフトウェア開発のように感じられるように設計されており、開発者がシンプルなタスクから複雑なワークフローまで幅広いエージェントアーキテクチャを簡単に作成、デプロイ、オーケストレーションできるようにします。
注: 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 │
├─────────────────────────────────────────────────────────────┤
│ サービス層 │
│ モデル • Tools • Sessions • アーティファクト • メモリ │
└─────────────────────────────────────────────────────────────┘
コアコンセプト
ADK-Rustは、強力なAI Agentを作成するために連携するいくつかの重要なプリミティブを中心に構築されています。
Agent
特定のタスクのために設計された基本的な作業単位です。ADK-RustはいくつかのAgentタイプを提供します。
- LlmAgent: 大規模言語モデルを使用して推論と意思決定を行います。これはほとんどのユースケースで主要なAgentタイプです。
- RealtimeAgent: OpenAI Realtime APIまたはGemini Live APIを使用して双方向オーディオストリーミングを行う音声対応Agentです。
- GraphAgent: 状態管理、チェックポイント作成、ヒューマン・イン・ザ・ループサポートを備えたLangGraphスタイルのワークフローオーケストレーション。
- CustomAgent: Agentの動作を完全に制御しながらカスタムロジックを実装できます。
- Workflow Agents: 事前定義された実行パスに従う決定論的Agentです。
SequentialAgent: サブAgentを順番に実行しますParallelAgent: サブAgentを並行して実行しますLoopAgent: 条件が満たされるまでサブAgentを繰り返し実行します
Tool
ToolはAgentに会話能力を超えた能力を与え、外部APIとの対話、情報の検索、カスタム操作の実行を可能にします。
- FunctionTool: 任意 のasync Rust関数をToolとしてラップします
- GoogleSearchTool: 組み込みのウェブ検索機能
- BrowserToolset: ウェブ自動化のための46のWebDriver Tool (ナビゲーション、フォーム、スクリーンショットなど)
- ExitLoopTool: LoopAgentでのループ終了を制御します
- McpToolset: Model Context Protocolサーバーとの統合
Session
Sessionは単一の会話のコンテキストを処理します。これには以下が含まれます。
- Session ID: 会話の一意な識別子
- Events: 会話履歴 (ユーザーメッセージ、Agent応答、Tool呼び出し)
- State: スコープ付きプレフィックス (
app:,user:,temp:) を持つ会話のワーキングメモリ
Callback
Agentの実行の特定の時点で実行されるカスタムコードです。
before_agent/after_agent: Agentの呼び出しを傍受しますbefore_model/after_model: LLMの呼び出しを傍受しますbefore_tool/after_tool: Toolの実行を傍受します
Callbackは、ロギング、ガードレール、キャッシング、および動作変更を可能にします。
Artifact
ファイル、画像、その他の非テキストコンテンツのためのバイナリデータストレージです。
- バージョン管理付きのArtifactの保存と読み込み
- 名前空間スコープ (セッションレベルまたはユーザーレベル)
- プラグ可能なストレージバックエンド
Event
Session中に発生する事柄を表す、通信の基本単位です。
- ユーザーメッセージ
- Agentの応答
- Toolの呼び出しと結果
- Stateの変更
Eventは会話履歴を形成し、リプレイとデバッグを可能にします。
Model
LlmAgentを動かす基盤となる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
実行フローを管理し、Agentの相互作用をオーケストレーションし、バックエンドサービスと連携するエンジンです。Runnerは以下を処理します。
- Agentの呼び出しと応答処理
- Toolの実行
- SessionとStateの管理
- Eventストリーミング
フィーチャーフラグ
adk-rustは、モジュール性のためCargo featuresを使用します。
# 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, ワークフローAgent)models: Modelの統合 (Gemini)openai: OpenAIモデル (GPT-5, GPT-4o)anthropic: Anthropicモデル (Claude 4.5, Claude 4)deepseek: DeepSeekモデル (chat, reasoner)groq: Groq超高速推論ollama: ローカルのOllamaモデルtools: Toolシステムと組み込みToolsessions: Session管理artifacts: Artifactストレージmemory: 意味検索を備えたMemoryシステムrunner: Agent実行ランタイムserver: HTTPサーバー (REST + A2A)telemetry: OpenTelemetry統合cli: CLIランチャー
その他の言語
ADKは複数の言語で利用できます:
- Python:
pip install google-adk- ドキュメント - Go:
go get google.golang.org/adk- ドキュメント - Java: Maven/Gradle - ドキュメント
次へ: クイックスタート →