ADK-Rust v0.2.0: 初の安定版リリース
ADK-Rust v0.2.0 の発表 - グラフエージェント、リアルタイム音声、ブラウザ自動化、評価フレームワーク、および ADK Studio ビジュアルビルダーを特徴とする初の安定版リリースです。
ADK-Rust v0.2.0: 初の安定版リリース
本番環境対応のAIエージェントを構築するための Rust フレームワークの初の安定版リリースである ADK-Rust v0.2.0 を発表できることを大変嬉しく思います。このリリースは、重要な新機能、安定性の向上、そして今後のセマンティックバージョニングへのコミットメントを伴う大きな節目となります。
v0.2.0 の新機能
🔀 グラフエージェント (LangGraph スタイルのワークフロー)
新しい adk-graph クレートは、Rust に LangGraph スタイルのワークフローオーケストレーションをもたらします。
use adk_graph::{prelude::*, node::AgentNode}; let graph = GraphAgent::builder("support_router") .channels(&["input", "category", "response"]) .node(classifier_node) .node(billing_node) .node(technical_node) .edge(START, "classifier") .conditional_edges("classifier", Router::by_field("category", vec![ ("billing", "billing_agent"), ("technical", "technical_agent"), ])) .edge("billing_agent", END) .edge("technical_agent", END) .build()?;
主な機能:
- 状態管理: 自動マージ機能を備えた型付きステートチャネル
- 条件付きルーティング: 状態フィールドまたはカスタムロジックに基づいたルーティング
- チェックポイント: フォールトトレランスのための SQLite およびインメモリバックエンド
- ヒューマン・イン・ザ・ループ: 人間による承認のためにワークフローを中断
- 循環グラフ: 反復制限付きのReActパターンをサポート
🎙️ リアルタイム音声エージェント
双方向オーディオストリーミングで音声対応AIアシスタントを構築します。
use adk_realtime::{RealtimeAgent, openai::OpenAIRealtimeModel}; let agent = RealtimeAgent::builder("voice_assistant") .model(Arc::new(OpenAIRealtimeModel::new(&api_key, "gpt-4o-realtime-preview"))) .instruction("You are a helpful voice assistant.") .voice("alloy") .server_vad() // Voice Activity Detection .build()?;
サポートされているプロバイダー:
- OpenAI リアルタイム API (
gpt-4o-realtime-preview,gpt-realtime) - Google Gemini ライブ API (
gemini-2.0-flash-live-preview)
機能:
- 双方向オーディオストリーミング (PCM16, G711)
- サーバーサイド音声活動検出
- 音声会話中のツール呼び出し
- マルチエージェントハンドオフ
🌐 ブラウザ自動化
adk-browser クレートは、ウェブ自動化のための46のWebDriverツールを提供します。
use adk_browser::{BrowserSession, BrowserToolset, BrowserConfig}; let session = Arc::new(BrowserSession::new( BrowserConfig::new().webdriver_url("http://localhost:4444") )); let tools = BrowserToolset::new(session).all_tools(); let agent = LlmAgentBuilder::new("web_agent") .model(model) .instruction("Browse the web and extract information.") .tools(tools) .build()?;
ツールカテゴリ:
- ナビゲーション:
browser_navigate,browser_back,browser_forward - 抽出:
browser_extract_text,browser_extract_links,browser_extract_html - インタラクション:
browser_click,browser_type,browser_select - フォーム:
browser_fill_form,browser_submit - スクリーンショット:
browser_screenshot,browser_screenshot_element - JavaScript:
browser_evaluate,browser_evaluate_async
📊 エージェント評価フレームワーク
adk-eval クレートを使用してエージェントの動作をテストおよび検証します。
use adk_eval::{Evaluator, EvaluationConfig, EvaluationCriteria}; let config = EvaluationConfig::with_criteria( EvaluationCriteria::exact_tools() .with_response_similarity(0.8) ); let evaluator = Evaluator::new(config); let report = evaluator .evaluate_file(agent, "tests/my_agent.test.json") .await?; assert!(report.all_passed());
評価機能:
- 軌跡検証 (ツール呼び出しシーケンス)
- 応答類似性 (Jaccard, Levenshtein, ROUGE)
- LLM 判定による意味的マッチング
- カスタム基準によるルーブリックベースの採点
- 安全性および幻覚検出
🎨 ADK Studio: ビジュアルエージェントビルダー
AIエージェントを構築するためのドラッグ&ドロップインターフェース:
cargo install adk-studio adk-studio
機能:
- ビジュアルワークフロー設計のためのReactFlowキャンバス
- 完全なエージェントパレット: LLM、シーケンシャル、パラレル、ループ、ルーター
- ツール統合: 関数、MCP、ブラウザ、Google検索
- SSE ストリーミングによるリアルタイムチャットテスト
- 本番環境の Rust へのワンクリックコード生成
🛡️ ガードレール
adk-guardrail クレートによる入出力検証:
use adk_guardrail::{Guardrails, PiiRedactor, ContentFilter}; let guardrails = Guardrails::new() .add(PiiRedactor::default()) .add(ContentFilter::block_harmful()); let safe_input = guardrails.process_input(user_message)?; let safe_output = guardrails.process_output(agent_response)?;
組み込みガードレール:
- PII編集 (メールアドレス、電話番号、SSN、クレジットカード)
- コンテンツフィルタリング (有害、不適切)
- JSONスキーマ検証
- カスタム検証ルール
🖼️ 動的 UI 生成
adk-ui クレートにより、エージェントはリッチなインターフェースをレンダリングできます。
use adk_ui::{UiToolset, UI_AGENT_PROMPT}; let agent = LlmAgentBuilder::new("ui_assistant") .instruction(UI_AGENT_PROMPT) .tools(UiToolset::all_tools()) .build()?;
コンポーネント: カード、テーブル、チャート、フォームを含む28の UI コンポーネント
テンプレート: 一般的なパターンに対応する10の事前構築済みテンプレート
Reactクライアント: npm install @zavora-ai/adk-ui-react
破壊的変更
RunnerConfig の変更
RunnerConfig 構造体には、run_config フィールドが含まれるようになりました。
// Before (v0.1.x) let runner = Runner::new(RunnerConfig { app_name: "my_app".to_string(), agent: agent.clone(), session_service: session_service.clone(), artifact_service: None, memory_service: None, })?; // After (v0.2.0) let runner = Runner::new(RunnerConfig { app_name: "my_app".to_string(), agent: agent.clone(), session_service: session_service.clone(), artifact_service: None, memory_service: None, run_config: None, // NEW: Optional RunConfig for execution settings })?;
依存関係の更新
sqlxが 0.7 から 0.8 にアップグレードされました (SQLite との互換性のために必要)- Rust 2024 エディション (Rust 1.85+ が必要)
移行ガイド
-
Cargo.toml を更新:
adk-rust = "0.2.0" -
RunnerConfig に
run_config: Noneを追加:RunnerConfig { // ... existing fields ... run_config: None, } -
SQLite セッションを使用している場合は sqlx を更新:
sqlx = { version = "0.8", features = ["sqlite", "runtime-tokio"] }
パフォーマンスの改善
- ストリーミング最適化: イベントストリーミングにおけるメモリ割り当ての削減
- セッションキャッシュ: セッション検索パフォーマンスの向上
- ツール実行: 可能な場合の並列ツール実行
ドキュメント
すべてのドキュメントは v0.2.0 向けに更新されました。
ドキュメントは現在、英語、スペイン語、中国語、日本語、ポルトガル語、ドイツ語、フランス語、アラビア語、ヒンディー語、韓国語の10言語で利用可能です。
今後の予定
v0.3.0 に向けて、以下の機能を計画しており、すでに作業を進めています。
- クラウド統合 (AWS Bedrock, Azure OpenAI, GCP Vertex AI)
- より多くのベクトルデータベースバックエンドを備えた強化されたメモリシステム
- ワークフローテンプレートと事前構築済みエージェントパターン
- パフォーマンスプロファイリングおよび最適化ツール
はじめに
# Create a new project cargo new my_agent cd my_agent # Add ADK-Rust echo 'adk-rust = "0.2.0"' >> Cargo.toml echo 'tokio = { version = "1.40", features = ["full"] }' >> Cargo.toml # Set your API key export GOOGLE_API_KEY="your-api-key" # Run an example cargo run --example quickstart
感謝
コード、ドキュメント、バグ報告、フィードバックを通じてこのリリースに貢献してくださった皆様に心より感謝申し上げます。ADK-Rust はコミュニティによって、コミュニティのために構築されています。
リンク:
楽しく構築しましょう! 🦀🤖