ADK-Rust v2: エージェントフレームワークからプロダクションランタイムへ。
ツール、ワークフロー、状態、リアルタイムメディア、コーディングエージェント、オープンプロトコル、および運用コントロールがどのようにして一つの構成可能なRustシステムになったかの物語。
3月、私たちはADK-Rust v0.5の物語を公開しました。このリリースにより、フレームワークはより多くのことが可能になりました:検索、コード実行、追加のモデルプロバイダー、永続的なグラフ、暗号化されたセッション、そして有用な開始プロジェクトを作成できるCLIです。
次の問いはより困難でした。これらの機能は、開発者が構成し、監視し、保護し、デプロイし、実行し続けることができる一つのプロダクションシステムになり得るでしょうか?v2への道のりがその答えです。ADK-Rustは、成長中のエージェントツールキットから、エージェントが対話し、ツールを使用し、作業を調整し、成果物を作成し、オープンプロトコルを介して協力する製品のためのRustランタイムへと変化しました。
前章を読む: ADK-Rust v0.5v2への道
エージェント機能をシステムへと変える6ヶ月間。
各リリースは、プロダクション問題の異なる部分を解決しました。それらが一体となって、開発者が一つのRustランタイムを中心に合理的に構築できるものを変えました。
フレームワークはより多くの種類の作業を学習しました
RAG、コード実行、プロバイダーの改善、永続的なグラフ、暗号化されたセッション、そしてcargo-adkにより、一つのRustエージェントができることが拡張されました。
エージェントは実際のシステム境界を越えました
A2Aは完全なリモートタスクフローを実現しました。AWPはウェブサイトにエージェントインターフェースを提供しました。MCPサーバーは管理されたライフサイクルを獲得し、メモリと共有状態はより大規模な製品にとって安全になりました。
コンポジションが開発者体験になりました
機能ティアにより、デフォルトの依存関係の表面が削減されました。ACPが登場し、スキーマは各モデルプロバイダーに適応し、テンプレートとアドオンにより、アーキテクチャはコピー作業ではなく選択肢となりました。
基盤が安定しました
39のクレートが、セマンティックバージョニングのコミットメント、より厳格なドキュメントゲート、セキュリティ作業、評価、管理されたランタイム、およびエンタープライズデプロイメントAPIとともに安定版ティアに到達しました。
ランタイムが製品のバックボーンになりました
CodingAgentとCodeActがエージェントファミリーに加わりました。ツール呼び出し、進捗、結果、キャンセル、リアルタイムメディア、ナレッジグラフメモリ、およびオープンプロトコルは、明示的なランタイム契約を介してやり取りされるようになりました。
転換点
プロダクションエージェントは、モデル呼び出し以上のものです。
初期のエージェントの例は、当然ながらプロンプト、モデル、応答を中心に据えていました。しかし、実際の製品はすぐに残りの作業を露呈させました:誰がツールを呼び出せるかを決定すること、状態を保持すること、進捗を表示すること、承認後に再開すること、生成されたファイルを移動すること、障害を追跡すること、そして別のチームに属するサービスと対話することです。
v2はこれらの責任をRust契約を持つフレームワークの懸念事項として扱います。モデルは依然として重要ですが、ツール、セッション、イベント、コールバック、境界、および運用ポリシーを伴う呼び出し内で実行されます。モデルを置き換えても、製品を再設計する必要はありません。
これがメジャーバージョンアップの背後にあるアーキテクチャの転換です:エージェントの振る舞いと製品インフラストラクチャが同じランタイム内で結合され、同時に構成とテストのために十分な分離を保っています。
v2アーキテクチャ
製品全体を通して一つの作業を追跡する。
リクエストは人間インターフェースまたはエージェントプロトコルを介して到着できます。Runnerはそれにコンテキストを与え、適切なエージェント形状を呼び出し、ツール、状態、および運用コントロールが作業をサポートする間、型付きイベントをストリームします。
人々とシステム
製品インターフェース
一つの実行契約
Runnerと型付きイベントストリーム
作業の形状を選択する
構成可能なエージェント
エージェントに有用な到達範囲を与える
ツール、知識、および状態
プロダクションを理解可能な状態に保つ
運用コントロール
プロセス内部
エージェント、ツール、セッション、コールバック、イベント、およびキャンセルはRustのトレイトと型を共有します。
境界を越えて
MCP、A2A、ACP、AWP、HTTP、およびリアルタイムトランスポートは、異なる所有者を持つシステムを接続します。
製品から可視
同じイベントストリームが、CLI、ウェブUI、APIクライアント、トレースビューア、またはリモートエージェントを駆動できます。
動作を見る
実行トレイルは製品インターフェースです。
有用なエージェントは、最終的な文以上のものを示す必要があります。v2はすべての意味のあるステップにイベントストリーム内の場所を与え、開発者が作業の進行に合わせてインターフェースを構築できるようにします。
リクエスト
人物、サービス、またはエージェントが作業を開始します。
決定
エージェントまたはワークフローが次の意味のあるアクションを選択します。
実行
ツール、スペシャリスト、モデル、またはリモートシステムがステップを実行します。
ストリーム
型付きイベントは、呼び出し、進捗、結果、および状態変更を伝達します。
続行
ランタイムは応答し、入力を待機し、リトライし、または後で再開します。
テストスイートを実行するコーディングエージェントを想像してください。UIは、ツール呼び出し、行ごとの標準出力と標準エラー、型付き結果、状態または成果物の変更、およびエージェントの次の決定を、一つの相関するストリームを通じて受け取ります。タスクに承認が必要な場合やプロセスが中断された場合、セッションとチェックポイントは明確な続行場所を提供します。
v2が開発者に提供するもの
エージェントライフサイクルのための単一フレームワーク。
一つの会話型エージェントから始め、製品が必要とする場合にのみ構造を追加できます。システムが成長しても、同じコア契約が維持されます。
エージェントはさまざまな方法で動作できます
柔軟な推論にはLLMエージェントを、既知のシーケンスには決定論的ワークフローエージェントを、分岐と永続的な作業にはグラフを、音声とビデオにはリアルタイムエージェントを、リポジトリ作業にはCodingAgentを、モデルが多段階アクションを実行可能なコードとして表現すべき場合にはCodeActを使用します。
進捗はAPIの一部です
ツール呼び出しとツール結果は型付きイベントです。長時間実行されるツールは、エージェント応答と同じストリームに進捗を出力でき、呼び出しIDがリクエスト、ライブ出力、最終結果をリンクします。UIはログをスクレイピングすることなく作業をレンダリングできます。
状態は単一のモデルターンを超えて存続できます
セッションは会話を保持し、成果物は生成されたファイルを保持し、グラフチェックポイントはワークフローを再開し、セマンティックまたはバイテンポラルなナレッジグラフメモリは、後のセッション全体で有用なコンテキストをエージェントに提供します。
オープンプロトコルには明確な役割があります
MCPはツールとリソースを接続し、A2Aは独立してデプロイされたエージェントを接続し、ACPはコーディングエージェントのクライアントとサーバーを接続し、AWPはウェブサイトに人間インターフェースと並行してエージェントのための構造化されたインターフェースを提供します。
自律性には運用上の境界があります
認可コールバック、スコープ付きツール、ガードレール、承認、サンドボックスポリシー、キャンセル、テレメトリ、評価、および監査証跡により、チームはエージェントが何を実行できるかを決定し、その後何が起こったかを検査できます。
必要な製品をコンパイルする
最小ティアは最初のエージェントを小さく保ちます。スタンダードは一般的なプロダクションスタックを追加し、エンタープライズはリアルタイム、ブラウザ、RAG、支払い、およびAWPを追加し、フルは最も重いオーディオと実行機能を追加します。プリセットが広すぎる場合でも、個々の機能は利用可能です。
開始体験
動作する形状を選択し、それを自分のものにする。
v2 CLIは実行形状を足場として構築し、周囲の機能を追加できます。生成されたプロジェクトは、あなたが自分で記述しレビューするRustのように見えます。
作成と検証
cargo install cargo-adk
cargo adk new support-agent \
--template tools \
--addon sessions \
--addon telemetry \
--addon guardrails
cd support-agent
cargo adk build
cargo runエージェントを構成する
let agent = LlmAgentBuilder::new("support")
.description("Resolves customer issues")
.instruction("Use the reviewed tools and cite evidence.")
.model(Arc::new(model))
.tool(Arc::new(LookUpOrder))
.before_tool(approval_gate)
.build()?;
Launcher::new(Arc::new(agent))
.run()
.await?;12のテンプレートが一般的な開始アーキテクチャをカバーします。9つのアドオンがセッション、テレメトリ、MCP、認証、ブラウザツール、ガードレールなどの機能を構成します。5つのエンタープライズパターンがより大規模なデプロイメント形状を提供します。 cargo adk build デプロイ前に生成されたプロジェクトをチェックします。
v2ソースに対して検証済み
物語の背後にある詳細。
次の章は実際のエージェントから始まります
最初のワークフローを構築する。プロダクションへの道をオープンに保つ。
一つのリクエスト、一つの可視的なツール呼び出し、そして理解できる一つのセッションから始めましょう。ADK-Rust v2は、製品が準備できたときに、その小さなエージェントにワークフロー、メモリ、オープンプロトコル、リアルタイムインターフェース、セキュリティ、およびデプロイメントへの直接的な道を提供します。