Agent Development Kit エージェントを Cloud Storage に接続する

Agent Development Kit(ADK)エージェントを Cloud Storage に接続できます。この接続により、エージェントは組み込みの ADK ツールセットを使用できます。

AI デベロッパーは、ADK を Cloud Storage と統合して、エージェントを保存されたデータに接続できます。この統合により、エージェント ワークロードをスケーリングできます。Cloud Storage を使用して、長時間実行タスクの状態、メモリ、チェックポイントを永続化できます。Cloud Storage を使用して、マルチエージェント ワークフロー全体で中間ファイルを共有することもできます。

このドキュメントでは、Cloud Storage と ADK を統合するメリットについて説明します。一般的なユースケースと、利用可能なツールセットの機能について説明します。セットアップの手順とコード例については、ADK 統合ガイドをご覧ください。

ADK との Cloud Storage 統合のメリット

Cloud Storage をエージェントと統合すると、エージェントは大きなファイルを処理し、会話履歴を維持し、既存のストレージ インフラストラクチャを再利用できます。

  • 動的コンテキスト拡張: LLM が一度に読み取れる量の上限に達することなく、エージェントに大規模なデータセット、マニュアル、メディア ファイルへのアクセス権を付与します。
  • 永続的なアーティファクトの永続性: 一時ファイル、ログ、生成されたアイテム(レポートや画像など)を会話履歴の外部に確実に保存します。
  • 任意のアーティファクト タイプをサポート: Cloud Storage を共有ストレージとして使用して、テキスト、画像、音声、動画など、さまざまな形式を処理して生成します。
  • きめ細かいアクセス制御: IAM ロールを使用して、Cloud Storage へのエージェント アクセスを正確に制御します。ADK は標準の Google Cloud 認証を使用して、エージェントがデータへのアクセスやタスクの実行に必要な最小限の権限のみを持つようにします。

ユースケース

エージェントに Cloud Storage の機能を装備することで、次のユースケースに対応できます。

  • 動的コンテキスト検索(検索拡張生成(RAG)とも呼ばれます)
  • アーティファクトの永続性とアーカイブ
  • 大規模なペイロードの処理
  • 自動リソース管理

RAG による動的コンテキスト取得

エージェントは、Cloud Storage 内のドキュメントを検出して読み取り、質問にリアルタイムで回答することで、リサーチャーとして機能できます。このアプローチは、社内ナレッジベースやサポートボットに役立ちます。

  • ポリシーのルックアップ: エージェントは、compliance-docs バケット内の最新の PDF マニュアルを一覧表示して読み取り、会社のポリシーに関するユーザーのクエリに回答できます。
  • マルチオブジェクト合成: 複数のストレージ オブジェクトから情報を取得して結合し、統合された要約を合成するエージェントを構築できます。

アーティファクトの永続性とアーカイブ

エージェントが生成した大量のデータを、人間による審査、他のシステム、監査のために確実に保存します。

  • 自動レポート: データベース指標を分析し、要約レポートを生成して reports-archive バケットにアップロードするエージェントを作成できます。
  • 生成されたメディアを保存する: 生成された画像や音声オブジェクトを Cloud Storage に保存し、ストレージ URI または署名付き URL のみを返すように、マルチエージェント システムを構成できます。

大規模なペイロードの処理

エージェントは、チャットにファイルの内容全体を貼り付けるのではなく、ストレージ URI(ファイルパス)を使用するように設計します。これにより、大規模な CSV やコードベースを LLM に送信する際の高コストと非効率性を回避できます。

  • データ パイプライン ハンドラ: エージェントで大きな CSV を使用する代わりに、ストレージ URI を受信できます。エージェントは、チャンクを処理するか、メタデータを検査して分析を実行し、概要ダッシュボードを返します。
  • 分離されたワークフロー: Cloud Storage の接頭辞、フォルダ、バケットのストレージ URI を受け取るスーパーバイザーとして機能するエージェントを設計できます。エージェントは、この URI をバックエンド ワーカーに渡して、オブジェクトを処理し、最終的な結果をストレージに書き込むことができます。このパターンは、Cloud Run functions や Cloud Run などのイベント ドリブン サービスと互換性があり、データを非同期で処理できます。

自動リソース管理

エージェントは、ストレージ使用量の最適化、管理タスクの自動化、複数のバケットにわたるガバナンスの適用に役立ちます。これは、大規模なストレージ インフラストラクチャを管理するチームにとって特に便利です。

  • インフラストラクチャ監査: エージェントを作成して、バケット構成(ロケーションやストレージ クラスなど)をスキャンし、最適化を提案したり、非準拠の設定を特定したりできます。
  • リソースのクリーンアップ: エージェントを構築して、空のバケットや古いバケットを特定し、保持ポリシーに基づいてクリーンアップ プロセスを自動化できます。

Cloud Storage 用の ADK ツールセット

ADK は、Cloud Storage 用の次のツールセットを Python で提供します。両方を理解することで、エージェントのロールを定義し、権限を制限できます。

GCSToolset(データ管理)

GCSToolset ツールセットを使用すると、エージェントは既存のバケット内のファイルを操作できます。ドキュメントの読み取り、結果のアップロード、一時オブジェクトの削除などのタスクに使用します。

  • オブジェクトの読み取り: get_object_data を使用してコンテンツを直接取得します。
  • コンテンツを検出する: list_objects を使用して、使用可能なオブジェクトを一覧表示します。
  • オブジェクトのプロパティを検査する: get_object_metadata を使用して、オブジェクトのサイズまたは Content-Type メタデータを確認します。
  • アップロードして永続化: create_object を使用して新しいオブジェクトを作成します。
  • オブジェクトを削除: delete_objects を使用して一時オブジェクトを削除します。

インフラストラクチャの GCSAdminToolset

GCSAdminToolset ツールセットを使用して、バケットの作成や管理タスクの自動化などのストレージ インフラストラクチャを管理します。

  • インフラストラクチャを検出する: list_buckets を使用してプロジェクト内のバケットを一覧表示します。
  • ストレージをプロビジョニングする: create_bucket を使用して新しいバケットを作成します。
  • ストレージを再構成する: update_bucket を使用して構成を変更します。
  • ストレージのプロビジョニング解除: delete_bucket を使用してバケットを削除します。
  • バケット コンテキストを検査する: get_bucket を使用してバケット メタデータを取得し、バケットのロケーション、ストレージ クラス、アクセス制御を確認します。

ベスト プラクティス

Cloud Storage との統合時にエージェントのパフォーマンスとセキュリティを最適化するには、次のベスト プラクティスを検討してください。

  • 大きなペイロードを会話履歴から切り離す: 大きなファイルをエージェントに直接渡さないようにします。Cloud Storage に保存し、代わりにファイル参照(URI)を送信します。これにより、トークン費用が削減され、コンテキストの上限に達するのを防ぐことができます。
  • 最小権限の原則を適用する: エージェントに、タスクの実行に必要な最小限の権限のみを付与します。インフラストラクチャを管理する場合を除き、roles/storage.admin などの広範なロールは避けてください。標準のファイル オペレーションには、特定のバケットに制限された roles/storage.objectUserroles/storage.objectViewer などのターゲット ロールを使用します。
  • 構成を一元管理する: エージェント ロジックでバケット名やオブジェクト名パスをハードコードしないようにします。環境変数または構成マネージャーを使用して、開発、テスト、本番環境のストレージ環境を切り替えます。
  • 効率的な取得戦略を実装する: Cloud Storage をナレッジ取得のレイヤとして使用する場合は、大きなドキュメント全体をエージェントのコンテキストに読み込まないでください。ドキュメントを前処理してチャンク化するか、専用の検索ツールを使用して関連するセグメントのみを取得します。

制限事項

Cloud Storage を ADK と統合する場合は、次の制限事項に注意してください。

  • 変更不可オブジェクト: Cloud Storage オブジェクトは変更できません。既存のオブジェクトにデータを追加することはできません。エージェントがイベントを 1 つのファイルに継続的に記録する必要がある場合は、オブジェクトを完全に上書きするか、複数の小さなオブジェクトを作成して後でオブジェクトを構成する必要があります。
  • 高頻度の状態管理におけるレイテンシ: Cloud Storage は、耐久性のあるアーティファクト ストレージと大きなペイロードに適しています。ただし、高頻度で低レイテンシの状態更新に Cloud Storage を使用すると、レイテンシが発生する可能性があります。たとえば、高速な会話のやり取りのすべてのターンを追跡すると、インメモリ キャッシュやデータベースを使用するよりも遅くなる可能性があります。
  • 複数オブジェクトのアトミック性の欠如: Cloud Storage オペレーションは個々のオブジェクトに適用されます。エージェントが複数のファイルにわたるアトミック更新を同時に必要とする場合は、アプリケーション内に調整ロジックを実装する必要があります。

次のステップ

Python アプリケーションで Cloud Storage ツールセットを初期化するための詳細なコードサンプル、設定手順、パラメータ リファレンスについては、ADK 統合ガイドをご覧ください。