LlmAgent
集中的な推論
モデル、命令、ツール、コールバック、ストリーミング出力は、ほとんどのシステムの小さくて便利な中心です。
ADK-Rust は、型指定されたエージェント、ツール、永続状態、リアルタイム メディア、およびオープン プロトコルを 1 つの非同期ランタイムに統合するため、集中的なエージェントから自信を持って運用できるシステムに移行できます。
作業単位から始める
エージェントは非同期 Rust コンポーネントです。呼び出しコンテキストを受け取り、モデルまたはツールを使用して作業を実行し、進行に応じて型指定されたイベントを発行します。 LLM エージェント、ワークフロー、リアルタイム エージェント、コーディング エージェント、およびカスタム Rust エージェントはすべて、この共有コントラクトを使用します。
ADK-Rust を魅力的なものにしているのは、エージェントがユーザーが理解して制御できるソフトウェア システムの一部であることです。モデル呼び出し、ツール入力、状態変更、承認、およびストリーミング イベントには、明示的な Rust コントラクトがあります。同じランタイムで、Rust チームが期待するパフォーマンス、同時実行性、移植性、運用規律を維持しながら、集中的なアシスタント、耐久性のあるマルチエージェント ワークフロー、リアルタイムの音声エクスペリエンス、または複数のサービスにわたって機能するエージェントをサポートできます。
LangGraph、Google ADK、OpenAI Agents SDK、または CrewAI を知っている場合は、ツール、ハンドオフ、ワークフロー、メモリ、ガードレール、およびトレースを認識できるでしょう。 ADK-Rust は、これらのアイデアを Rust ネイティブ ランタイムに取り入れ、リアルタイム メディア、コード実行、RAG、アーティファクト、および MCP、A2A、ACP、AWP などのオープン プロトコルと接続します。バージョン 2 では、グラフ、リアルタイム、コーディング、および CodeAct エージェントによってその基盤が拡張されています。プロバイダー対応ツールのスキーマ。構成可能なプロジェクト テンプレートと カーゴADKビルド;より強力な状態および運用管理。そして、最初のモデル呼び出しから本番環境までの一貫した型付きイベント追跡。
アーキテクチャの読み方
図の左から右へ進みます。製品サーフェスは Runner にリクエストを送信します。 Runner はセッション状態と呼び出しコンテキストをアタッチし、選択したエージェントを呼び出します。モデル、ツール、状態は作業をサポートし、型指定されたイベントは進行状況と結果を返します。
Runner、エージェント、型付きイベント、モデル/ツール ループ、セッション、コールバック、転送、キャンセル。
MCP、A2A、ACP、AWP、HTTP、SSE、およびリアルタイム トランスポートは、別個のシステムと信頼ゾーンに接続します。
Studio、UI、プレイグラウンド、およびコントロール プレーンは ADK-Rust を消費します。 Runner 内では実行されません。
フレームワークの表面
ADK-Rust は、エージェントのライフサイクル全体を 1 つのフレームワークにまとめます。つまり、エージェントの動作を構成し、ツールを提供し、コンテキストを保持し、他のシステムに接続し、運用環境で安全に操作します。以下のグループは、これらの機能がどのように連携するかを示しています。
LLM、ワークフロー、グラフ、リアルタイム、コーディング エージェントを構築します。入力されたツール、MCP、RAG、メモリ、セッション、アーティファクトを装備します。 REST、A2A、ACP、および AWP を介して接続します。次に、実稼働用の承認、ガードレール、テレメトリ、および評価を追加します。
作曲する capability
The main model-driven agent. Give it instructions, an LLM, tools, callbacks, and optional sub-agents; the Runner streams its work as typed events.
行為 capability
Turns a typed async Rust function into a model-callable tool and derives the argument schema from Rust types.
覚えておいてください capability
Keep conversation events and application state together so a user can continue the same interaction over multiple turns.
接続する capability
Exposes familiar HTTP endpoints for clients that send a request and receive a structured response.
操作する capability
Establishes who is calling the system through API keys, OAuth, OIDC, SSO, and application identity.
ビルドする capability
Generate working starting shapes for focused agents, tools, retrieval, APIs, workflows, realtime sessions, and custom logic.
どのように機能するか見てみましょう
Runner は、セッションを解決し、呼び出しコンテキストを構築し、エージェントを実行し、モデルとツールの作業をストリーミングし、状態の変更を適用し、永続的なイベントを保持し、発生時に呼び出し元に進行状況を返します。
同じトレイルを、端末、Web UI、API クライアント、評価、またはリアルタイムの会話にフィードできます。
実際のリクエストに従う
顧客が「なぜ支払いが失敗したのですか?」と尋ねました。 Runner は、正しいセッションを開き、モデル出力とツール アクティビティをストリーミングし、状態変化を記録し、有用な各イベントをインターフェイスに返します。ユーザーは進行状況を確認し、オペレーターは完全な実行記録を取得します。
動作を構成する
ルーターは、実行する必要がある作業を識別します。専門家は自分が最もよく理解している部分を扱います。シーケンシャルおよびパラレル ワークフローは実行順序を制御し、グラフ チェックポイントは同じジョブに関連付けられた証拠、承認、および進行状況を保持します。
LlmAgent
モデル、命令、ツール、コールバック、ストリーミング出力は、ほとんどのシステムの小さくて便利な中心です。
Sequential · Parallel · Loop
順序、同時実行性、繰り返し、および終了条件を Rust プログラムで直接表現します。
GraphAgent
分岐、チェックポイント、人のために中断し、プロセスまたは会話が進んだ後に再開します。
CodingAgent · CodeActAgent
エージェントは、管理するワークスペースとサンドボックスの境界内でコードを検査、編集、実行できます。
RealtimeAgent
1 つのライブ セッションを通じて、オーディオ、トランスクリプト、ビデオ フレーム、中断、サーバー側ツールを伝送します。
CustomAgent
Rust で直接記述された製品固有の動作のエージェント コントラクトを実装します。
エージェント周りのシステム
有用なエージェントには、ツール、状態、インターフェース、境界、証拠が必要です。 ADK-Rust は、所有する構成可能な Rust インターフェイスを通じて各部分を公開します。
1 つの製品に複数の責任
カスタマー サポート製品では、モデルが応答を作成し、ツールが注文を検査し、セッションが顧客コンテキストを伝達し、承認が返金を制御し、アーティファクトが受領書を保存し、テレメトリが結果を記録します。各責任は実行時に表示されたままになります。
ホストされたフロンティア モデル、高速ルーティング モデル、ローカル Ollama、およびネイティブの mistral.rs 推論は、共通の Llm コントラクトの背後にあります。
Gemini · OpenAI · Anthropic · OpenRouter · DeepSeek · Groq · Ollama · Bedrock · Azure AI · 互換性のあるエンドポイント
型指定された Rust 関数、MCP サーバー、スキル、ブラウザー セッション、コーディング エージェント、またはサンドボックス プロセスを、ランタイムが検査して呼び出すことができる機能に変換します。
#[tool] · FunctionTool · MCP · ACP · スキル · ブラウザ · コード
セッションはイベント履歴を保持します。記憶は有用な知識を引き出します。アーティファクトはファイルを保存します。グラフ チェックポイントにより、長時間の作業を再開できるようになります。
SQLite · PostgreSQL · Redis · MongoDB · Firestore · Neo4j · 暗号化セッション
ADK-Rust は、Rust が所有するセッション内のオーディオ、トランスクリプト、ビデオ フレーム、ツール呼び出し、中断、およびコンテキストの変更を保持します。
OpenAI Realtime · Gemini Live · Vertex Live · LiveKit · オプションの WebRTC
モデルが応答する前に、ドキュメントをチャンク化して埋め込み、ベクター ストアを検索し、結果を再ランク付けし、プロジェクトごとにメモリを分離します。
RAG パイプライン · セマンティック メモリ · ナレッジ グラフ · 5 つのベクトル ストア実装
承認、コールバック、ガードレール、サンドボックス プロファイル、キャンセル、テレメトリ、および評価は、実稼働環境の実行境界を形成します。
RBAC · OAuth/OIDC · ツール確認 · PII ガードレール · OpenTelemetry · 評価
境界を選択してください
機能が実行される場所から始めます。
サブエージェントが展開、状態、信頼を共有する場合、サブエージェントを 1 つの ADK-Rust ランタイム内に保持します。機能、エージェント、コーディング ワークスペース、または Web サイトに独自のデプロイメント、プロセス、所有権、または信頼境界がある場合は、プロトコルを導入します。
同じRustプロセス
エージェント、サブエージェント、またはツール
外部ツールまたはリソース
MCP
独立して導入されたエージェント
A2A
コーディングプロセスまたはIDE
ACP
エージェントが読み取り可能な Web サイト
AWP
モデルコンテキストプロトコル
What is MCP?
エージェントが呼び出すことができるツールと読み取りができるリソースを外部サーバーが公開するための標準的な方法。
エージェント間プロトコル
What is A2A?
リモート エージェントを検出し、その作業を送信し、進行状況を追跡し、HTTP 境界を越えて結果を受信するためのネットワーク プロトコル。
エージェントクライアントプロトコル
What is ACP?
コーディング エージェントと、それをホストするクライアント (エディタ、CLI、オーケストレーション システムなど) との間のセッションを標準化するプロトコル。
エージェント Web プロトコル
What is AWP?
サイトがそのサイトの正体、エージェントができること、適用されるポリシー、およびエージェント向けサービスが正常かどうかを公開する Web プロトコル。
開発者クイックスタート
小さくて動作する Rust プロジェクトから始めます。以下のガイド付き手順では、ジェネレーターが追加する内容、プロジェクトをローカルでコンパイルする方法、製品の成長に応じてプロジェクトを拡張する場所について説明します。
最後に得られるもの
型付きツールを備えたコンパイル済み Rust エージェント、インタラクティブな Launcher セッション、テレメトリ セットアップ、セッションとガードレールの統合ポイント、ターミナル内の実際のモデル応答。生成されたプロジェクトは、読み取り、変更、拡張できる通常の Rust ソースです。
始める前に
マシンには 2 つのものが必要です
Rust 1.95 以降。
Rustup を使用してインストールするか、安定したツールチェーンを更新します。
モデル API キー。
このパスでは、 GOOGLE_API_KEY;後で別のプロバイダーを選択できます。
カーゴ-adk は、エージェント プロジェクトの作成、検査、構築、およびデプロイに使用されるカーゴ adk コマンドを追加します。
cargo install cargo-adk入力された Rust ツールを呼び出すことができるエージェントから始めます。プロジェクトの生成中に、可観測性、セッション状態、およびガードレール フックを追加します。
cargo adk new support-agent --template tools \
--addon telemetry --addon sessions --addon guardrails生成された例では、デフォルトで Gemini が使用されます。安全なサンプル ファイルをコピーし、追跡されていない .env ファイルにキーを配置します。
cd support-agent
cp .env.example .env
# set GOOGLE_API_KEY in .envカーゴ ADK ビルドは、生成された依存関係、機能の組み合わせ、Rust タイプをチェックし、何もデプロイせずにバイナリをリリースします。
cargo adk build生成されたコンソールを起動し、メッセージを入力し、後で API、ワークフロー、またはリアルタイム製品を強化できる同じ型指定されたランタイムを監視します。
cargo run一度インストールする
$ cargo install cargo-adkプロジェクトを生成する
$ cargo adk new support-agent \
+ --template tools \
+ --addon telemetry \
+ --addon sessions \
+ --addon guardrailsモデルを構成する
$ cd support-agent
cp .env.example .env
# Add GOOGLE_API_KEY to .env確認してから実行する
$ cargo adk build
cargo run ADK-Rust — support-agent
Type a message to chat. Type 'exit' to quit.
You > Greet Ada casually.
[tool] greet({"name":"Ada","style":"casual"})
Hey Ada! What's up?
You > exit
Goodbye.足場を理解する
テンプレートは、動作するエージェントの形状を提供します。各アドオンは、必要なクレート機能、インポート、構成、および統合を完了するための明示的な場所に貢献します。
テンプレート
型指定された #[tool] 関数とモデル ツール呼び出しに必要なスキーマ ワイヤリングを備えた LLM エージェントを生成します。
Add-on
OpenTelemetry の統合を有効にして、モデル、ツール、ランタイムの作業を追跡できるようにします。
Add-on
セッション サービス ワイヤリングを追加して、会話状態が 1 つのモデル呼び出しを超えて存続できるようにします。
Add-on
入力検証、出力チェック、コンテンツ フィルタリングのための機能とクリア フックを追加します。
別の開始形状を選択してください
有用な作品の最初の部分に一致する形状を選択してください。テンプレートは、編集可能な Rust ソース、依存関係、プロバイダー構成、および実行可能なエントリ ポイントを生成します。
llmエージェントテンプレートLlmAgentBuilder、Gemini モデルのセットアップ、手順、セッションベースの Launcher、および対話型ターミナルを生成します。
こんなときはこれを選んでください
アシスタント、抽出、分類、または焦点を絞ったモデルとツールのループに選択してください。
生成された開始点
1 つの LLM エージェント、ストリーミング コンソール、プロバイダー構成
cargo adk new my-agent --template llmtoolsエージェントテンプレート動作する #[tool] 関数、型付き引数、JSON スキーマ生成、および LLM エージェントへの登録を含む src/tools.rs を追加します。
こんなときはこれを選んでください
エージェントが計算、データの取得、ビジネス ロジックの呼び出し、またはアクションの実行を行う必要がある場合に選択します。
生成された開始点
LlmAgent · 挨拶ツール · serde · schemars · adk-tool
cargo adk new my-agent --template toolsragエージェントテンプレートドキュメント チャンキング、Gemini 埋め込み、メモリ内ベクトル ストア、サンプル ドキュメント、RagTool を含む RAG パイプラインを作成します。
こんなときはこれを選んでください
製品ドキュメント、ポリシー、研究コレクション、または個人的な資料に基づいた回答として選択してください。
生成された開始点
RagPipeline · チャンカー · 埋め込み · ベクトル検索 · RagTool
cargo adk new my-agent --template ragapiエージェントテンプレートLLM エージェントの周囲にヘルス、セッション作成、ストリーミング実行エンドポイントを備えた Axum サーバーを生成します。
こんなときはこれを選んでください
Web アプリケーション、モバイル クライアント、バックエンド サービス、または自動化プラットフォームがエージェントを呼び出すときに選択します。
生成された開始点
Axum · REST ルート · SSE 応答 · インメモリセッション
cargo adk new my-agent --template apia2aパターンエイリアスa2a サーバー パターンに解決され、LLM エージェントとサーバーおよびセッション機能を組み合わせて、エージェント間アクセスを実現します。
こんなときはこれを選んでください
別のエージェントが展開または所有権の境界を越えてこのエージェントを検出して呼び出す必要がある場合に選択します。
生成された開始点
A2A サーバー · エージェント ID · タスク処理 · セッション
cargo adk new my-agent --template a2agraphエージェントテンプレートグラフ機能を有効にし、ノード、エッジ、チェックポイント、中断、再開のインポートとエージェントの開始点を作成します。
こんなときはこれを選んでください
ブランチ、承認ステップ、リカバリ、または永続的な実行状態を伴う長時間にわたる作業には、これを選択してください。
生成された開始点
グラフ機能・ワークフローエージェント・トポロジ開始点
cargo adk new my-agent --template graphrealtimeエージェントテンプレートリアルタイム サポートを有効にし、リアルタイム インポートとプロバイダー構成を使用して簡潔な音声エージェントの開始点を作成します。
こんなときはこれを選んでください
自然な会話、中断、ライブ翻訳、オーディオ ツール、または受信ビデオ フレームの場合に選択してください。
生成された開始点
リアルタイム機能・音声指示・トランスポートスタートポイント
cargo adk new my-agent --template realtimesequentialワークフローテンプレートSequentialAgent 内にリサーチャーエージェントとライターエージェントを生成し、各ステージが前のステージで生成された作業を受け取るようにします。
こんなときはこれを選んでください
プロセスに収集、分析、下書き、レビュー、公開などの明確なフェーズがある場合に選択します。
生成された開始点
2 つの LLM エージェント · 順序付けられた実行 · 共有された呼び出し証跡
cargo adk new my-agent --template sequentialparallelワークフローテンプレートParallelAgent 内に 2 つの専門エージェントを生成し、1 つの親ワークフローを通じてその作業を収集します。
こんなときはこれを選んでください
複数の調査が同じ入力から開始され、個別に完了できる場合に選択します。
生成された開始点
2 つの LLM エージェント · 同時実行 · 集計結果
cargo adk new my-agent --template parallelloopワークフローテンプレート明示的な完了シグナルと 5 回の反復の安全制限を備えたワーカーを LoopAgent 内に作成します。
こんなときはこれを選んでください
ドラフト、批評、修復、検証、または繰り返しのパスを通じて改善する検索プロセスに選択してください。
生成された開始点
LoopAgent ビルダー · ワーカー エージェント · 完了命令 · 最大反復数
cargo adk new my-agent --template loopconditionalワークフローテンプレート受信リクエストからパスを選択する ConditionalAgent 内に技術エージェントと一般エージェントを生成します。
こんなときはこれを選んでください
作業のカテゴリに異なる指示、ツール、モデル、またはドメイン スペシャリストが必要な場合に選択してください。
生成された開始点
ConditionalAgent · 2 つのルート · LLM ベースの選択
cargo adk new my-agent --template conditionalcustomエージェントテンプレート独自の Rust 実行ロジックとイベント ストリームに対応するエージェント特性メソッドと実行関数を備えた MyAgent タイプを作成します。
こんなときはこれを選んでください
決定論的なオーケストレーション、既存のステート マシン、ドメイン ランタイム、または完全な Rust 制御を必要とする動作の場合に選択してください。
生成された開始点
エージェント特性スケルトン · InvocationContext · EventStream エントリ ポイント
cargo adk new my-agent --template customCLI レジストリには、プロバイダー固有の openai テンプレート、5 つのエンタープライズ パターン、 basic そして a2a エイリアス、およびコンポーザブル機能アドオン。
cargo adk templatescargo adk addons必要なものをコンパイルする
まず、プロジェクトの実行形態のテンプレートを選択します。次に、バイナリにコンパイルされる機能の機能層を選択します。
機能層は、依存関係、コンパイル時間、バイナリ サーフェス、および利用可能なフレームワーク API を制御します。永続データベース、MCP、クラウド シークレット マネージャー、および特定のリアルタイム トランスポートは、引き続き明示的な選択肢です。
エージェント · Gemini · Runner · セッション
最小のデフォルト サーフェスを持つ集中エージェント。
ツール、メモリ、グラフ、サーバー、認証、評価、テレメトリ
ほとんどの API、ワークフロー システム、および内部エージェント製品。
リアルタイムベース · ブラウザ · RAG · 支払い · AWP
より充実したインタラクションと相互運用性を必要とする製品。
オーディオ · コード実行 · サンドボックス
最も重いローカル機能と実行機能をオプトインします。
adk-rust = { version = "2.0.0", features = ["standard"] }ADK-Rust でビルドする
最初の有用なマイルストーンは、1 つのリクエスト、1 つの可視ツール呼び出し、および 1 つのセッションを理解することです。ガイド付きクイックスタートはそのパスを構築します。そこから、製品に必要なワークフロー、状態、プロトコル、および操作制御を追加します。