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

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

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

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

Cloud Storage と ADK を統合するメリット

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(ファイルパス)を使用するようにエージェントを設計します。これにより、LLM に大きな CSV やコードベースを送信する際のコストと非効率性を回避できます。

  • データ パイプライン ハンドラ: エージェントが大きな 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_metadataContent-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 統合ガイドをご覧ください。