ブログに戻る
リリースv0.2.0安定版グラフエージェントリアルタイムブラウザ評価スタジオ

ADK-Rust v0.2.0: 初の安定版リリース

ADK-Rust v0.2.0 の発表 - グラフエージェント、リアルタイム音声、ブラウザ自動化、評価フレームワーク、および ADK Studio ビジュアルビルダーを特徴とする初の安定版リリースです。

15 分 読了

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+ が必要)

移行ガイド

  1. Cargo.toml を更新:

    adk-rust = "0.2.0"
  2. RunnerConfig に run_config: None を追加:

    RunnerConfig {
        // ... existing fields ...
        run_config: None,
    }
  3. 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 はコミュニティによって、コミュニティのために構築されています。

リンク:

楽しく構築しましょう! 🦀🤖

ADK-Rust v0.5.0 を試す準備はできましたか?

AIエージェント構築のための最も強力な Rust フレームワークを始めましょう。