ADK Studio

ドラッグ&ドロップでAIエージェントを構築するためのビジュアル開発環境。

概要

ADK Studioは、adk-rustで構築されたAIエージェントの設計、テスト、デプロイのためのローコードインターフェースを提供します。複雑なマルチエージェントワークフローを視覚的に作成し、本番環境向けのRustコードにコンパイルします。

ADK Studioのメインインターフェース

インストール

# Install from crates.io (self-contained binary)
cargo install adk-studio

# Or build from source
cargo build --release -p adk-studio

クイックスタート

# Start the studio server
adk-studio

# Open in browser
open http://localhost:3000

CLIオプション

オプション説明デフォルト
--port, -pサーバーポート3000
--host, -hバインドアドレス127.0.0.1
--dir, -dプロジェクトディレクトリ~/.local/share/adk-studio/projects
--static, -s静的ファイルディレクトリを上書き(埋め込み)
# Bind to all interfaces for remote access
adk-studio --host 0.0.0.0 --port 8080

# Custom projects directory
adk-studio --dir ./my-projects

ステップバイステップチュートリアル

このウォークスルーに従って、ADK Studioで最初のAIエージェントを構築しましょう。

ステップ1: 新しいプロジェクトの作成

右上隅にある + New Project ボタンをクリックします。

新しいプロジェクトの作成

プロジェクト名(例:「Demo Project」)を入力し、Create をクリックします。

ステップ2: エージェントをキャンバスに追加する

左側のサイドバーには、利用可能なエージェントタイプを含む Agent Palette があります。

  • LLM Agent - 言語モデルを搭載した単一のAIエージェント
  • Sequential - サブエージェントを順番に実行
  • Parallel - サブエージェントを並行して実行
  • Loop - 終了条件が満たされるまで繰り返し
  • Router - 入力に基づいてサブエージェントにルーティング

LLM Agent をクリックしてキャンバスに追加します。

キャンバス上のエージェント

ステップ3: エージェントの設定

エージェントを選択すると、右側に Properties Panel が表示されます。ここで設定できます。

  • Name - エージェントの識別子
  • Model - LLMプロバイダーとモデル(Gemini、OpenAIなど)
  • Instructions - エージェントのシステムプロンプト

プロパティパネル

ステップ4: エージェントにツールを追加する

左側のサイドバーを下にスクロールして、Tool Palette を見つけます。

  • Function - コードエディター付きのカスタムRust関数
  • MCP - Model Context Protocolサーバー
  • Browser - 46のWebDriver自動化アクション
  • Google Search - 地に足の着いたウェブ検索
  • Load Artifact - ファイルをコンテキストにロード

ツールをクリックしてエージェントに追加します。

Google Search Toolを備えたエージェント

ステップ5: ビルドとテスト

Build Project をクリックしてエージェントをコンパイルします。ビルドが完了したら、下部にある Chat Panel を使用して、実際に対話しながらエージェントをテストします。

チャットパネル

チャットは以下をサポートしています。

  • ライブSSEストリーミング応答
  • Agent実行アニメーション
  • デバッグ用のイベントトレースパネル

ステップ6: 生成されたコードの表示

View Code をクリックして、ビジュアルデザインから生成された本番環境対応のRustコードを表示します。

生成されたコードの表示

このコードをコピーするか、Compile を使用して完全なRustプロジェクトを生成できます。


機能

エージェントの種類

エージェント説明
LLM AgentLLM を利用した単一エージェント
Sequentialサブエージェントを順番に実行
Parallelサブエージェントを並行して実行
Loop終了条件が満たされるまで反復
Router入力に基づいてサブエージェントにルーティング

ツールの種類

ツール説明
Functionコードエディター付きのカスタム Rust 関数
MCPModel Context Protocol サーバー
Browser46 の WebDriver 自動化アクション
Google Search根拠のあるウェブ検索
Load Artifactファイルをコンテキストにロード

リアルタイムチャット

スタジオでエージェントを直接テストできます:

  • ライブ SSE ストリーミング応答
  • エージェント実行アニメーション
  • デバッグ用イベントトレースパネル
  • セッションメモリの永続化

コード生成

視覚的なデザインを本番コードに変換します:

  1. View Code - 構文ハイライト付きで生成された Rust をプレビュー
  2. Compile - 完全な Rust プロジェクトを生成
  3. Build - リアルタイム出力で実行可能ファイルにコンパイル
  4. Run - ビルドされたエージェントを実行

アーキテクチャ

┌─────────────────────────────────────────────────────────────┐
│                     ADK Studio UI                           │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Palette   │  │   Canvas    │  │   Properties        │ │
│  │  - Agents   │  │  ReactFlow  │  │  - Name             │ │
│  │  - Tools    │  │  Workflow   │  │  - Model            │ │
│  │             │  │  Designer   │  │  - Instructions     │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ HTTP/SSE
┌─────────────────────────────────────────────────────────────┐
│                    ADK Studio Server                        │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐ │
│  │   Routes    │  │   Codegen   │  │   Storage           │ │
│  │  /api/*     │  │  Rust code  │  │  Projects           │ │
│  │  /chat      │  │  generation │  │  File-based         │ │
│  └─────────────┘  └─────────────┘  └─────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼ Build
┌─────────────────────────────────────────────────────────────┐
│                   Generated Rust Project                    │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  Cargo.toml + src/main.rs                           │   │
│  │  Uses: adk-rust, adk-agent, adk-model, etc.        │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

APIエンドポイント

プロジェクト

エンドポイントメソッド説明
/api/projectsGET全てのプロジェクトを一覧表示
/api/projectsPOST新しいプロジェクトを作成
/api/projects/:idGETプロジェクトの詳細を取得
/api/projects/:idPUTプロジェクトを更新
/api/projects/:idDELETEプロジェクトを削除

コード生成

エンドポイントメソッド説明
/api/projects/:id/codegenPOSTRustコードを生成
/api/projects/:id/buildPOSTプロジェクトをコンパイル
/api/projects/:id/runPOSTビルドされた実行可能ファイルを実行

チャット

エンドポイントメソッド説明
/api/chatPOSTメッセージを送信(SSEストリーム)

環境変数

変数説明必須
GOOGLE_API_KEYGemini APIキーはい(Geminiの場合)
OPENAI_API_KEYOpenAI APIキーはい(OpenAIの場合)
ADK_DEV_MODEローカルワークスペースの依存関係を使用いいえ
RUST_LOGログレベルいいえ(デフォルト: info)

生成されるコード構造

my-project/
├── Cargo.toml
└── src/
    └── main.rs

main.rsの生成例:

use adk_rust::prelude::*;
use adk_rust::Launcher;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    dotenvy::dotenv().ok();
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.0-flash")?;

    let agent = LlmAgentBuilder::new("assistant")
        .description("Helpful AI assistant")
        .instruction("You are a helpful assistant.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

テンプレート

Studioには、事前に構築されたテンプレートが含まれています。

  • Basic Assistant - シンプルなLLMエージェント
  • Research Agent - Google検索機能を持つエージェント
  • Support Router - マルチエージェントルーティング
  • Code Assistant - コードツールを持つエージェント

ベストプラクティス

プラクティス説明
シンプルに始める単一のLLMエージェントから始め、徐々に複雑さを追加する
頻繁にテストするチャットパネルを使用して動作を検証する
コードを確認するデプロイする前に生成されたコードを確認する
プロジェクトをバージョン管理するプロジェクトのJSONをエクスポートしてバージョン管理する
テンプレートを使用する一般的なパターンにはテンプレートから始める

前へ: ← Memory | 次へ: Development Guidelines →