18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Private Agent Factory】Select AI(NL2SQL)をGUIでセットアップしてAIエージェントを作ろう

18
Last updated at Posted at 2026-04-02

Private Agent Factoryの新機能!Select AI連携を試す!

Oracle AI Database Private Agent Factory(PAF) に、2026年3月後半の 25.3.0.0.8 リリース でいくつか新機能が追加されました。

その中でも注目機能の一つが、Select AI との連携機能 です。

これまで Select AI は、Autonomous AI Database 側でプロファイルや資格情報を設定し、SQL や PL/SQL ベースで設定する必要があったのですが、今回のアップデートにより、Private Agent Factory から Select AI を GUI ベースで扱いやすくなった のが大きなポイントです。

本記事では、この Select AI 連携機能 を実際にどう設定して使うのか、Select AIエージェントの作り方をご紹介します。
一緒に試してみましょう!

今回のアップデートで何が増えたのか

Agent Factory 25.3 の公式ドキュメントでは、新機能として以下が案内されています。

  • Select AI Utility
  • Select AI Nodes

つまり今回のリリースでは、単に裏側で Select AI が使えるようになったのではなく、Select AI の設定用ユーティリティAgent Builder 上で使うためのノード群 が追加されました。

Select AI連携とは何か

一言でいうと、Oracle Database 側の Select AI 機能を、Private Agent Factory のワークフローから使いやすくする連携です。

Select AI は、自然言語から SQL を生成したり、RAG 用のプロファイルやベクトル索引を利用したりできる Oracle Database の AI 機能です。
今回のアップデートでは、その設定や呼び出しを Agent Factory の GUI にて扱える ようになりました。

これによって、

  • 構造化データに対する NL2SQL
  • ベクトル索引を使った RAG
  • データベース関数の呼び出し
  • Select AI Agent / Team を含むワークフロー化

といった流れを、Agent Builder の中で組み合わせやすくなっています。

何がうれしいのか

1. DBのAI機能を、Agent Factoryのフローに自然に組み込める

Private Agent Factory は、ドラッグ&ドロップでエージェントやワークフローを組めるのが魅力です。
そこに今回、Select AI 用のノードが追加されたことで、Oracle Database 側の AI 機能をフローの一部として扱える ようになりました。

たとえば、

  • ユーザーの質問を受け取る
  • Select AI で SQL を生成・実行する
  • 必要に応じて RAG で補足する
  • その結果を別の Agent に渡して要約する

といった流れが、かなりイメージしやすくなります。

2. Select AIの設定をGUIで整理しやすい

Select AI を使うには、事前に CredentialProfile、必要に応じて Vector Index の設定が必要です。
今回の Select AI Utility では、そのあたりを画面から設定できるようになっています。

特に Profile 作成時には、

  • どの LLM を使うか
  • どのリージョンを使うか
  • NL2SQL を有効にするか
  • RAG を有効にするか
  • どのテーブル・ビューに限定するか

といった設定を GUI でまとめて扱えます。
Select AI の入口がかなり分かりやすくなった と感じます。

3. Oracle Databaseらしいガードレールをかけやすい

Select AI の Profile では、NL2SQL を有効にする場合に、対象の schema ownertables/views を選べます。
さらに Enforce Object List を有効にすることで、SQL の対象を指定したオブジェクトに制限できます。

つまり、ただ自然言語でSQLを打たせるのではなく、

  • 参照対象を絞る
  • DBオブジェクトの範囲を制限する
  • RAG用の索引だけを使わせる

といった、業務利用を意識したスコープ制御 がしやすいのがよいところです。

手順

では早速、実際にやってみましょう!

Step 0. 事前準備

- ADBの作成

PAFで連携する、またSelect AIを実行するデータを挿入するADBを作成します。バージョンは26aiで作成します。

- ADBのセットアップ

Select AI 連携を使う前に、対象のデータベースには必要なパッケージや権限が入っている必要があります。

【Credentials / Profile 管理】
Credentials や Profile を設定・管理するには、次のいずれか 1 つ以上のパッケージが必要です。

  • DBMS_CLOUD
  • DBMS_CLOUD_ADMIN
  • DBMS_CLOUD_AI

【Vector Index 管理】
Vector Index を管理するには、Credentials / Profile 管理に必要なパッケージに加えて、次のパッケージが必要です。

  • DBMS_CLOUD_PIPELINE

【Agent Builder】

Agent Builder を使った Agent のデプロイについても、Credentials / Profile 管理に必要なパッケージに加えて、次のパッケージが必要です。

  • DBMS_CLOUD_PIPELINE

今回は、adb_agentユーザーを作ってSelect AIを実行していくので、Adminユーザーで以下の内容を実行します。

GRANT DB_DEVELOPER_ROLE TO adb_agent IDENTIFIED BY <your password>;
GRANT DWROLE TO adb_agent;

GRANT CREATE DATABASE LINK TO adb_agent;

GRANT EXECUTE ON DBMS_CLOUD TO adb_agent;
GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO adb_agent;
GRANT EXECUTE ON DBMS_CLOUD_AI TO adb_agent;
GRANT EXECUTE ON DBMS_CLOUD_AI_AGENT TO adb_agent;
GRANT EXECUTE ON DBMS_CLOUD_PIPELINE TO adb_agent;

- Private Agent Factory(PAF)の作成

お手元にPAF環境がない場合は、以下の手順を参考に作成してください。

Agent Factoryの構築Agent Factoryのセットアップ までを実行し基本的なセットアップを完了しておきます。

- APIキーの取得

後程使用するAPIキーを取得しておきます。
手元にない場合は、こちらの記事の「APIキーの発行」を参考に作成します。

- 使用するデータの用意

今回は、以前Select AI Agentの機能を試した、売上分析のサンプルデータとシナリオをそのまま使っていきます。詳細は以下の記事を参考にしてください。

本記事では、まずSelect AIを使って自然言語で売上傾向を問い合わせるエージェントを作成し、
後編としてさらに複雑な、構造化データ(注文・売上データ) と 非構造化データ(商品カタログ) の両方を参照できるエージェントを作成していきます。

  • ADBへデータの挿入

こちらのデータをDBに挿入しておきます。

  • products / orders / order_items の 3 表を作る
  • 2015〜2025 年の 500 件のサンプルデータを入れる

products:製品ID、名称、カテゴリなどのマスタ情報
orders:注文日、顧客ID、店舗IDなどの注文情報
order_items:注文に紐づく購入製品と数量

  • バケットの作成とドキュメントのアップロード

後編で行うRAGの検索のために、商品カタログ(PDF)をObject Storageへアップロードしてください。
product_catalog.pdf をダウンロード

image.png

Step 1. プロファイルと索引の作成

Data sources」タブから「+ Add Data sources」をクリックして、Select AIを実行するADBを追加します。
image.png

項目を入力し、Walletをアップロードします。
image.png

Test connection」を行い、Successfulになることを核にして、「Add database source」をクリックします。
image.png

追加できました。
image.png

続いて、「Settings」から「Select AI Framework」タブを開きます。
Select AIから、先程追加したデータベース「ADB」を選択します。

image.png

青い枠内に、Select AIをセットアップする手順が書かれています。
こちらの手順を実行していきます。

image.png

② Credentialの作成

まずは、OCI GenAIサービス などのプロバイダと安全に通信するための Credential を作成します。

+ Create Credential」をクリックします。
image.png

取得してあるAPIキーから以下を入力します。

  • User OCID
  • Tenancy OCID
  • Fingerprint
  • Private Key (PEM)

ここで Validate して、問題なければ作成します。

image.png

② Profile を作成する

次に Profile を作成します。
Profile は、どのモデルを使うか、どのリージョンか、NL2SQL や RAG を有効にするか、といった Select AI の振る舞いを定義する設定 です。

+Create Profile」をクリックします。

image.png

ここで設定内容としては、次のようなものがあります。

  • Provider Name:AI プロファイルを識別するための、一意の Profile Name を入力します。これはプロファイルの識別子となり、Agent Builder でも使用されます。
  • Description(任意)
  • Credential Name:先程作成したCredentialを選択します。API 呼び出しに使用されます。
  • Region:モデルが利用可能なリージョンと一致していることを確認してください。
  • Model:使用するLLMモデルを指定します。
  • Compartment OCID
  • OCI API Format(任意):プロバイダーのインターフェース形式(例: GENERIC や COHERE)を設定します。これにより、API リクエストの形式が制御されます。
  • Provider Endpoint(任意)を指定して、プロバイダーのベース URL を上書きできます。たとえば、プライベートエンドポイント用の URL を入力します。
  • Embedding Model(任意):RAGで使用する埋め込み生成用のモデルを設定します。
  • Temperature(任意):モデル応答のランダム性を制御します。より決定論的な出力にしたい場合は低い値を使用します。
  • Max Tokens(任意):応答長の上限をトークン数で定義します。省略した場合はシステムのデフォルト値が適用されます。
  • Seed(任意):応答の再現性を制御します。プロバイダーのサポート状況に応じて、文字列または整数を指定できます。
  • NL2SQL の有効化
  • RAG の有効化

※NL2SQLとRAGはそれぞれ別のプロファイルを作成する必要があります。今回は両方のプロファイルをそれぞれ作成していきます。

image.png

* NL2SQL を有効にする場合

Select AIを実行する場合、NL2SQL の有効化して以下の設定を行います。
今回はSelect AIのエージェントを作るので、設定をしていきます。

  • 対象 schema owner:SQL クエリ生成時に参照対象とするスキーマ所有者を選択します。利用可能な所有者の一覧は動的に表示されます。
  • 対象 tables / views:自然言語から SQL へのクエリで利用を許可するテーブルやビューを選択します。これにより、NL2SQL が参照できるデータベースオブジェクトの一覧が定義されます。
  • Enforce Object List(推奨):有効にすると、SQL クエリを Tables/Views List で指定したオブジェクトのみに制限できます。これはセキュリティとクエリ範囲制御のための重要なガードレールです。
  • Object List Mode:メタデータ選択の挙動を制御します。選択肢は次のとおりです。
    • All:オブジェクトリストに登録されている、利用可能なすべてのオブジェクトを対象にします。
    • Automated:メタデータに対してRAGを使用して、ユーザーのプロンプトに最も適用可能なテーブルを特定します。特に多くのテーブルが必要な場合に有効で、対象データごとに複数のAIプロファイルを定義したりする必要がなくなります。

image.png

Validate して、問題なければ作成します。

数秒経って、こちらのAIプロファイルが作成できました。

image.png

* RAG を有効にする場合

今回は後編(次回の記事)でRAGを使ったエージェントも作るので、RAG用のAIプロファイルも作成していきます。
(Select AIのみ実行する場合は、この手順と次の③ Vector Index を作成する は不要です。)

image.png

まずはここまで入力して、Validateし、作成します。

image.png

出来ました。
後程、③ にてVector Indexを作成する際に、こちらのAIプロファイルを紐づけます。
image.png

③ Vector Index を作成する(RAG を使う場合)

RAG 用のベクトル索引を作成します。

image.png

以下の値を入力します。

  • Vector Index Name:ベクトルインデックスを識別するための一意の名前を入力します。この名前は RAG プロファイルから参照されます。
  • Profile Name:先程作成したAIプロファイル「RAG」を選択します。埋め込み生成に利用します。
  • Vector DB Provider:保存先バックエンドを指定します。
  • Object Storage Location:ドキュメントの保存元パスとして、通常はオブジェクトストレージ上のバケットまたはフォルダを示す URL またはプレフィックスを指定します。
  • Storage Credential Name:そのオブジェクトストレージへアクセスするためのCredentialを選択します。認証情報には読み取り権限が必要です。

image.png

Chunking attributesの値は任意で調整します。
各パラメーターの詳細は以下をクリックして確認にしてください。

Chunking attributesの設定パラメーター
  • Chunk Size:ドキュメントを分割する単位を定義します。この値を調整することで、インデックス作成時の粒度を制御できます。
  • Chunk Overlap:分割したチャンク同士で重ねるトークン数を定義します。チャンク間の文脈を保ちやすくし、検索時の取りこぼしを減らすのに役立ちます。
  • Match Limit:1回の検索で返す結果件数を定義します。値を大きくすると多くの候補を取得できますが、ノイズも増えやすくなります。
  • Vector Distance Metric:ベクトル同士の近さをどのように測るかを定義します。類似度の計算方法を決める項目です。
  • Similarity Threshold:検索結果として採用する類似度のしきい値を定義します。値を高くすると、より関連性の高い結果だけを返すようになります。
  • Refresh Rate (minutes):ベクトルインデックスの更新頻度を分単位で定義します。新しいデータや変更内容をどの程度の間隔で反映するかを制御します。
  • Vector Dimension:埋め込みベクトルの次元数を定義します。通常は利用する埋め込みモデルに合わせて設定する項目です。

Validateし問題ない場合は、Vector Indexを作成します。

プロファイルに戻って、「RAG」を確認すると、Vector Indexに今作成したインデックスが設定されていました。

image.png

ここまでできると、Select AI の Profile / RAG の索引Agent Builder から利用可能になります。
今まではPL/SQLで作成していたProfileやVector IndexがGUIで作成できるようになり、とても分かりやすくなりましたね!

Step.2 エージェントを構築する

Agent Builderを使って、Select AI(NL2SQL) を使ったエージェントを作りましょう。

全体像はこんな形になります。
image.png

必要なノードは、

  • Chat input
  • Select AI Bridge
  • Agent
  • Chat output
    の4つだけです!

Agent builder」クリックして新しいフローを作成します。
Componentsから必要な4つのノードをキャンバスにドラッグアンドドロップで配置していきます。

image.png

自分の作成をしたフローは「My custom flows」から確認できます。

image.png

入力や選択が必要な部分を設定していきます。

* Select AI Bridgeノード

  • Profile
  • Choose databaseADB
  • Choose ProfileSELECTAI
  • Choose AI ActionRun SQL

* Agentノード

  • Select LLM to use:設定したLLM
  • Custom instructions
あなたは売上データ分析を支援するエージェントです。
ユーザーからの質問に対して、Select AI Bridgeのツールを使って必要な情報を取得し、注文データ、注文明細、商品情報をもとに回答してください。
回答は日本語で、簡潔かつ分かりやすくまとめてください。
  • Agent description
売上データと商品情報をもとに、販売傾向や売れ筋製品を分析して回答するエージェントです。

画像と同じように、それぞれのノードを線でつなぎます。

エージェントの準備ができました!
Save」を押して保存した後、「Playground」をクリックして実際にエージェントを動かしてみます。
image.png

年ごとの売り上げ件数をまとめて

と聞いてみると、実際のデータベースを検索して結果を出してくれました。

image.png

2025年に売れている上位2つの商品と商品IDを特定して。

こちらも指示通りの回答を返してくれます。

image.png

まとめ

Private Agent Factory 25.3 では、Select AIの連携機能が追加され、コマンドラインベースの設定を最小限に、Select AI を Agent Builder のワークフローの中で自然に利用できるようになりました。

今回のアップデートによって、

  • Select AI の資格情報・プロファイル・ベクトル索引を GUI で設定しやすくなった
  • SQL / RAG / DB Functions を Agent Builder のノードとして扱えるようになった
  • Select AI Agent / Team に発展できる形でワークフロー化しやすくなった

という点が大きな変化だと思います。

特に、Oracle Database の AI 機能をすでに活用している方にとっても、これからSelect AIを試してみる方にとっても、
「DB機能としての Select AI」から「ノーコードのエージェントフローで使う Select AI」へ広がった と見ると、とても大きなアップデートです。

次回は、今回設定したRAGも活用しながら、複数のエージェントを連携させて動かし、データベース内のデータとドキュメントなどの非構造化データをまとめて検索できるエージェントを作っていきます!

イメージ👇

image.png

参考

18
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?