この記事はMatt AsayKumar RajamaniKarthik Bharathyによる”Unlocking Data Insights with the Oracle AI Database Agent in Gemini Enterprise – Part 1”の日本語翻訳版記事です。


Gemini Enterprise から自然言語でOracle AI Database に問い合わせたいユーザー向けのガイドです。

はじめに

エンタープライズデータが最も価値を発揮するのは、そのデータを必要とする人がSQL を書いたり、IT 部門に依頼したり、BI チームによるカスタムレポートを待ったりすることなく、必要なときにアクセスできる場合です。

Gemini Enterprise 向けの Oracle AI Database Agent は、権限を持つユーザーが Gemini Enterprise から平易な英語で、Oracle AI Database@Google Cloud として稼働する Oracle AI Database に安全に問い合わせるための仕組みを提供します。

内部では、Gemini Enterprise がユーザー体験とエージェント呼び出しを担い、Oracle が自然言語から SQL への変換と SQL 実行を処理します。クエリは OAuth を通じて各ユーザー自身のデータベース ID で実行され、結果は管理者が対象として設定したスキーマ、表、ポリシーの範囲内に制限されます。

この記事は、先日の発表に対応する技術的なハウツー記事です。マネージド統合をエンドツーエンドで実行するために必要な構成、OAuth 登録、Select AI の設定、Gemini Enterprise の権限設定を説明します。また開発者向けには、Part 2 でカスタム A2A や ADK ワークフローへ拡張する前提として、どのシステム境界の上に構築するのかを示します。

対象読者

  • マネージド統合を理解したうえで、カスタムオーケストレーションやマルチエージェントワークフローに拡張したい開発者
  • データベース、A2A サーバー、OAuth 登録、Select AI 構成を管理するデータベース管理者
  • Oracle AI Database Agent を Gemini Enterprise に追加し、ユーザーへアクセス権を付与する Gemini Enterprise アプリ管理者

Oracle AI Database Agent が行うこと

Oracle AI Database Agent の中核は、自然言語から SQL への変換を行う NL2SQL エージェントです。ユーザーが自然言語で入力した質問を受け取り、それに回答するための SQL を生成・実行し、Oracle AI Database に対してクエリを実行したうえで、Gemini Enterprise のチャット画面に結果を返します。

主なエンタープライズ向けの特徴は次のとおりです。

  • Database Identity による OAuth 認証
    すべてのクエリは、個々のユーザーのデータベース ID で実行されます。共有サービスアカウントや認証情報のプールは使用しません。
  • 制御されたデータ公開範囲
    DBA は、エージェントに公開するスキーマや表を定義します。エージェントは、その境界の外にあるデータへアクセスできません。
  • エンドユーザー向けの新しいツールは不要
    ユーザーは Gemini Enterprise のチャット画面内で作業します。別のアプリケーション、ブラウザ拡張機能、新しいツールを学ぶ必要はありません。

Agent-to-Agent(A2A)プロトコル

この統合では A2A が使用されています。つまり Oracle AI Database Agent は、単なるエンドユーザー向けチャットツールではありません。開発者は、より広範なマルチエージェントワークフローの中で、Oracle データアクセス用コンポーネントとしても利用できます。この内容は Part 2 で取り上げます。

開発者向けの補足として、たとえ自分がデータベースを有効化したり、エージェントを登録したりする担当者でなくても、この記事は有用です。ユーザー ID がどこで適用されるのか、SQL がどこで生成・実行されるのか、またカスタムオーケストレーション、追加ツール、マルチエージェント動作を追加する前に、マネージド統合がすでに何を提供しているのかを確認できます。

前提条件

Oracle Database Administrator

  • Google Cloud 上で稼働する Oracle Autonomous AI Database インスタンス(Oracle AI Database@Google Cloud)
  • Database リソースの更新とタグ管理を行う IAM 権限
  • データベース管理者アカウントの認証情報
  • クライアント登録用 URL
    https://dataaccess.adb.{region-identifier}/adb/auth/v1/connect/databases/{database-ocid}/register
  • Gemini Enterprise アプリ管理者から提供されるリダイレクト URI
    通常は https://vertexaisearch.cloud.google.com/oauth-redirect

Database User または Oracle DBA

  • DBMS_CLOUD_AI および DBMS_CLOUD_AI_AGENT に対する EXECUTE 権限を持つデータベースアカウント
  • エージェント経由で利用可能にするスキーマ、表、ビュー

Gemini Enterprise App Administrator

  • Gemini Enterprise を含む Google Workspace サブスクリプション
  • Oracle Database AI Agent を有効化するための Billing Admin 権限
  • Oracle AI Database Agent オファーを取得するための Google Cloud Marketplace へのアクセス
  • Oracle DB 管理者から提供される client_id と client_secret

Gemini Enterprise End User

  • 有効な Gemini Enterprise ライセンスと、Gemini Enterprise チャット画面へのアクセス
  • 対象スキーマに対する読み取り権限を持つ Oracle データベース認証情報
  • セッショントークンの有効期限が切れた場合に OAuth 認可で使用する、データベースのユーザー名とパスワード

ソリューション概要

以下の流れは、初期のクライアント登録からエンドユーザーによる実際のクエリ実行までを示しています。

エンドツーエンドの流れは、担当者が異なる4つの段階に分かれます。

  1. Oracle AI Database のセットアップ(DBA)
    データベース管理者が Oracle AI Database@Google Cloud をプロビジョニングし、A2A を有効化します。次に REST API を使って、データベース用の OAuth クライアントを登録します。これにより、Gemini Enterprise が OAuth フローを開始するために使用する OAuth 認証情報、つまり client_id と client_secret が生成されます。登録エンドポイントは、データベース管理者の認証情報を使った HTTP Basic 認証で保護されているため、OAuth クライアントを登録できるのはデータベース管理者だけです。
  2. Oracle Select AI NL2SQL のセットアップ(Oracle DBA またはデータベースユーザー)
    データベース上で NL2SQL をセットアップするには、DBA が2つのスクリプトをダウンロードしてインストールします。公式 Oracle リポジトリ https://github.com/oracle-devrel/oracle-autonomous-database-samples をクローンします。Oracle AI Database Agent は google-gemini-marketplace-agents ディレクトリ配下にあります。oracle_ai_database_agent_tool.sql と oracle_ai_database_agent.sql を実行すると、Select AI Profile が作成されます。各プロファイルでは、エージェントが問い合わせ可能なスキーマと表を定義します。これは、AI が参照できる範囲の境界として機能します。このデータベースユーザーには、DBMS_CLOUD_AI_AGENT PL/SQL パッケージに対する EXECUTE 権限が必要です。
  3. Agent Card と A2A クライアント構成(Gemini Enterprise アプリ管理者)
    Gemini Enterprise アプリ管理者は、Google Cloud Marketplace から Oracle AI Database Agent を取得します。Oracle チームは、請求先アカウントを使って Gemini Enterprise 管理者を許可リストに登録します。DBA が生成した OAuth クライアント認証情報をここで指定し、Gemini Enterprise アプリと Oracle AI Database 間の認証フローを接続します。Gemini Enterprise アプリ管理者は、ビジネスユーザーが利用する Gemini Enterprise アプリを作成し、そのアプリにエージェントへのアクセスを付与します。
  4. エンドユーザーによるクエリ実行(エンドユーザー)
    エンドユーザーは Gemini Enterprise チャットで Oracle AI Database Agent を選択します。データベース認証情報を使って OAuth プロンプトから認可を行います。その後は、平易な英語で質問できるようになります。Gemini Enterprise は各クエリを Oracle AI Database Agent にルーティングし、エージェントがクエリを実行して結果をチャットに返します。

セットアップ

Step 1: Google Cloud Marketplace から Oracle AI Database Agent を取得する

Gemini Enterprise で構成する前に、Oracle AI Database Agent を Google Cloud Marketplace から取得する必要があります。Google Cloud Marketplace に移動し、Oracle AI Database Agent を検索します。

フォームから Oracle にリクエストを送信し、メールアドレスと請求先アカウントの詳細を共有します。組織の設定によっては、オファーが解除される前に調達チームの承認が必要になる場合があります。

Oracle からオファーが承認されると、オファー承認リンクを含むメールが届きます。メール内のリンク、または Google Cloud Marketplace の「Private offers」からプライベートオファーを承認し、画面の手順に従ってインストールします。承認後、数分で利用権限が有効になり、使用できるようになります。

Step 2: A2A サーバーを有効化する

A2A サーバーは、Oracle AI Database ではデフォルトで無効になっています。Autonomous Database リソースにフリーフォームタグを追加することで有効化します。Google Cloud Console から Oracle Autonomous AI DB インスタンスに移動し、「Manage in OCI」を選択します。

Tags の下に、次の値でフリーフォームタグを追加します。

Tag Name: adb$feature Tag Value: {"name":"a2a_server","enable":true}

Autonomous Database リソースに対して少なくとも use IAM 権限を持つ OCI ユーザーだけが、フリーフォームタグを追加または更新できます。タグが保存されない場合は、先に IAM ポリシーを確認してください。保存後、変更が反映されるまで最大5分ほど待ちます。

Step 3: OAuth クライアント認証情報を生成する

A2A サーバーが稼働したら、データベース用の OAuth クライアントを登録します。これにより、Gemini Enterprise が OAuth 2.0 認可フローを開始するために使用する client_id と client_secret が返されます。

例:

curl -X POST 'https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/auth/v1/connect/databases/{database-ocid}/register' \
-u 'db-admin-username:password' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"redirect_uris": [
    "{customer-provided-redirect-url}"
    ],
    "client_name": "{customer-provided-client name}"
}'

レスポンス例:

{
"client_name": "{customer-provided-client-name}",
"client_id": "{generated-client-id}",
"client_secret": "{generated-client-secret}",
"client_id_issued_at": {issue-timestamp},
"client_secret_expires_at": {expiration-timestamp},
"redirect_uris": ["{customer-provided-redirect-url}"],
"grant_types": ["authorization_code", "refresh_token"],
"token_endpoint_auth_method": "client_secret_post"
}

注意点:

  • 登録エンドポイントは、データベース管理者の認証情報を使った HTTP Basic 認証で保護されています。
  • redirect_uris の値は、Gemini Enterprise が想定する値と一致している必要があります。登録前に Gemini アプリ管理者へリダイレクト URI を確認してください。
  • この時点以降、クライアントシークレットは再取得できないため、レスポンスは必ず保存してください。

生成した client_id と client_secret を Gemini Enterprise アプリ管理者に渡します。次の情報は Agent Card から自動的に取得されます。

  • OAuth Authorization URL: …/adb/auth/v1/databases/{database-ocid}/authorize
  • OAuth Token URL: …/adb/auth/v1/databases/{database-ocid}/token

Step 4: Select AI を使って NL2SQL エージェントをセットアップする

公式 Oracle リポジトリ https://github.com/oracle-devrel/oracle-autonomous-database-samples をクローンします。Oracle AI Database Agent は google-gemini-marketplace-agents ディレクトリ配下にあります。

スキーマ名と AI Profile 名を指定して、oracle_ai_database_agent_tool.sql と oracle_ai_database_agent.sql を実行します。これにより Select AI プロファイルが定義され、エージェントが参照および問い合わせを許可されるデータベースオブジェクトが決まります。この操作には DBMS_CLOUD_AI_AGENT に対する EXECUTE 権限が必要です。

最初は、初期ユーザーグループに必要なスキーマだけを含む、範囲の狭い AI プロファイルから始めることをおすすめします。必要に応じて段階的にアクセス範囲を広げられますし、エージェントが何にアクセスできるのかを監査しやすくなります。

Step 5: Oracle Agent を Gemini Enterprise に追加する

Gemini Enterprise アプリ管理者は、Google Cloud Marketplace で取得済みのエージェントを構成し、ユーザーにアクセス権を付与します。

Google Cloud Console から Gemini Enterprise インターフェースを開きます。「Add agent」に移動し、Oracle AI Database Agent を選択します。

先ほど取得した OAuth 認証情報の入力を求められます。Add agent ダイアログで、Oracle DB 管理者から提供された値を入力します。

  • Client ID: 登録レスポンスの client_id
  • Client Secret: 登録レスポンスの client_secret

エージェント構成を保存したら、Permissions パネルに移動し、Oracle AI Database Agent へのアクセスを許可するユーザー、グループ、または組織部門を追加します。ユーザーは次回セッションを更新した後、Gemini Enterprise の画面でエージェントを確認できるようになります。

Step 6: 接続してクエリを開始する

Gemini Enterprise Chat を開きます。エージェントパネルまたはサイドバーで Oracle AI Database Agent を探して選択します。表示されない場合は、Gemini Enterprise アプリ管理者に、自分のアカウントへ権限が付与されているか確認してください。

初めてエージェントを使用する際、Gemini Enterprise は、ユーザーに代わって Oracle Database に接続することを認可するよう求めます。プロンプトで「Authorize」をクリックします。Google アカウントや OCI アカウントの認証情報ではなく、Oracle データベースのユーザー名とパスワードを入力してください。

認証に成功すると、エージェントが接続を確認します。これでクエリを実行する準備が整いました。

OAuth フローでは、個々のデータベースユーザーとして認証されます。エージェントがアクセスできるのは、そのデータベースアカウントに参照権限が付与されているスキーマと表だけです。これは SQL Developer や他のツールで自分自身がクエリを実行する場合とまったく同じです。権限が昇格されることはありません。

ウォークスルー: 最初の自然言語クエリを実行する

エージェントの認可と接続が完了したら、一般的なビジネスクエリがどのように結果やチャートにつながるのかを見てみましょう。以下の例では、Oracle Autonomous AI Database で利用でき、2025年までデータを拡張した Sales History(SH)スキーマを使用します。

1. 自然言語で質問を入力する

Gemini Enterprise のチャットウィンドウに、データに対するビジネス上の質問を入力します。SQL や正確な表名を知っている必要はありません。質問の例は次のとおりです。

2025年度第3四半期について、国別および販売チャネル別に売上と販売数量を比較してください。また、2024年度の同じ四半期と比較した前年比の増減率も表示してください。

Oracle AI Database Agent は質問を解釈し、認可されたスキーマに対して適切な SQL クエリを生成し、Oracle Autonomous AI Database に対して実行します。この処理中は短い処理中インジケーターが表示されます。実行された内容を確認したい場合は、生成された SQL を参照できます。

2. 結果を確認する

結果は Gemini Enterprise チャット内に構造化されたデータテーブルとして返され、生のクエリ出力を確認できます。

レスポンスにチャート構成が含まれている場合、Gemini Enterprise は返されたテーブルと並べて、インラインで可視化を表示できます。

多くのチームにとっては、このマネージドな経路で十分です。ユーザーは平易な英語でビジネス上の質問を行い、ガバナンスの効いた結果を Gemini Enterprise 内で直接受け取れます。

さらに踏み込んで、Oracle の結果を Web コンテキスト、可視化、生成ドキュメント、追加エージェントと組み合わせたい開発者向けには、Part 2 で ADK と A2A を使ってこの基盤を拡張する方法を紹介します。

よくある問題と対処方法

問題対処方法
A2A サーバーのタグが有効にならないタグ保存後、最大5分待ってください。インスタンス詳細ページを更新し、正しく保存されているか確認します。タグを適用したユーザーの IAM 権限も確認してください。
Gemini Enterprise のセットアップ中にクライアント認証情報が拒否されるclient_id と client_secret が正しくコピーされているか確認してください。登録した redirect_uri が Gemini Enterprise の想定する URI と一致していることも確認します。
エージェントがエンドユーザーに表示されないGemini Enterprise アプリ管理者が権限付与を保存したか確認してください。権限を反映するには、ユーザーが Gemini Enterprise から一度サインアウトし、再度サインインする必要がある場合があります。
エンドユーザーの OAuth サインインに失敗するユーザーの Oracle データベースアカウントが存在し、有効であることを確認してください。そのアカウントが Select AI Agent Team 内の少なくとも1つのスキーマに対して SELECT 権限を持っているか確認します。データベースのトークン URL にユーザーのネットワークから到達できることも確認してください。
クエリ結果が空、または想定外のデータが返るSelect AI Agent Team に関連するスキーマと表が含まれているか確認してください。エージェントに直接「どの SQL クエリを実行しましたか?」と尋ねることで、意図が正しく解釈されたか確認できます。

関連リンク

  • Unlocking Data Insights with the Oracle AI Database Agent in Gemini Enterprise: Part 2
  • Oracle Autonomous AI Database Select AI
    データベース内の生成 AI およびエージェントフレームワーク。自然言語でデータを分析してインサイトを提供し、自動化された RAG、合成データ生成などの機能も備えています。
  • Gemini Enterprise Agents
    Gemini Enterprise における AI エージェントの概要。
  • Explore AI Agents in Google Marketplace
    Google Cloud Marketplace からエージェントを参照、インストールする方法。
  • Requesting Procurement
    Marketplace オファーを調達するためのガバナンスプロセス。
  • Accepting a Private Offer
    Oracle から提供される Oracle AI Database Agent の Marketplace プライベートオファーを承認する手順。