Oracle Cloud Infrastructure (OCI) Enterprise AI は、Oracle Cloud Infrastructure 上で AI アプリケーションや AI エージェントを構築・導入・統制するためのエンタープライズ向け基盤です。

単に LLM を呼び出すだけではなく、フロンティアモデル、エージェント開発ツール、Vector Store、データコネクタ、メモリー、ホスト型ランタイム、さらに IAM・ガードレール・可観測性・監査性といった運用統制まで含めて提供されているのが特徴です。
企業データを活用した RAG や AI エージェントを本番環境で使うには、モデル呼び出しだけでなく、認証、データ接続、検索基盤、運用管理まで一体で考える必要があります。OCI Enterprise AI は、そうした要件を前提に、AI エージェント開発に必要な機能を OCI 上でまとめて利用できるサービスだと理解すると分かりやすいです。
今回は、「OCI Enterprise AI をどう使い始めればよいのか」を確認するために、Oracle Database 26ai のドキュメントを Object Storage から Vector Store へ同期し、file search を利用した RAG 検索アプリを作成してみます。
■ 今回のアーキテクチャ

今回の構成では、まず OCI Generative AI 上で Project を作成し、この RAG アプリに関連するワークロードや設定を管理します。次に API Key を作成し、アプリケーションから OCI Generative AI の API を安全に呼び出せるようにします。
そのうえで、非構造化データ用の Vector Store を用意し、OCI Object Storage に保存した Oracle Database 26ai の PDF ドキュメントをデータ同期コネクタで取り込みます。ユーザーからの質問に対しては、file search が Vector Store から関連文書を検索し、その検索結果をコンテキストとして Responses API に渡すことで、製品ドキュメントに基づく回答を返す RAG 構成を実現します。
つまり、Object Storage を元ドキュメントの保管場所、Vector Store を検索用の知識基盤、file search を検索処理、LLM を応答生成として役割分担している形です。
■ Enterprise AI Agent 構築
ここでは、OCI Generative AI によるエンタープライズ AI エージェント構築の流れを確認していきます。
OCI Generative AI におけるエンタープライズ AI エージェントは、LLM を中心に各種ツールや外部データを組み合わせて、実用的な AI アプリケーションを構築するための仕組みです。単純なプロンプト入力と応答生成だけではなく、file search による文書検索、関数呼出し、メモリー、Vector Store などを組み合わせることで、外部知識を参照しながら応答するエージェントを実装できます。
今回のユースケースでは、この仕組みを使って Oracle Database 26ai の PDF ドキュメントを検索対象にし、ユーザーの質問に対して関連文書を取得しながら回答する RAG アプリを構築します。
■ IAM 権限の設定
Project を作成する前に、適切なユーザー・グループが OCI Generative AI 関連リソースへアクセスできることを確認してください。これらの権限がないと、Project および関連アセットを作成・管理できません。
今回は、特定のコンパートメントへのアクセスにスコープを限定して設定します。テナンシ全体のすべての Generative AI リソースを管理できるようにする場合は、in tenancy を使用します。
⚫︎ Generative AI Policy 追加
OCI Generative AI の API Key を使用するには、テナンシ・レベルまたはコンパートメント・レベルの IAM ポリシーで権限を付与します。
allow group <your-group-name> to manage generative-ai-family in compartment <your-compartment-name>
⚫︎ API Key Policy 追加
最初に API Key を生成し、その OCID(ocid1.generativeaiapikey.<region-realm>.<region-name> で始まる)を取得してから、ポリシーを適用します。
allow group <your-group-name> to use generative-ai-response in tenancy where ALL { request.principal.type = 'generativeaiapikey', request.principal.id='<your-api-key-OCID:ocid1.generativeaiapikey.oc1.xxxx>'}
⚫︎ Vector Store コネクタ API に必要な IAM ポリシー
1) Dynamic Group 追加
Dynamic Groupを使用して設定します。これは、Object Storage 上のファイルを読む主体がユーザーではなく、OCI の Vector Store コネクタ自身だからです。 OCI では、このようなクラウド・リソース自身に権限を与えるときに Dynamic Group を使います。今回は、人に広い権限を渡すのではなく、Vector Store コネクタに対して必要最小限の Object Storage 読み取り権限だけを安全に付与するために利用しています。
ALL {resource.type='generativeaivectorconnector', resource.compartment.id='<compartment-name>'}
2) Policy 追加
Allow dynamic-group <your-dynamic-group-name> to read object-family in compartment <your-compartment-name>
allow any-user to read object-family in compartment <your-compartment-name> where ALL{request.principal.type='generativeaivectorconnector'}
Vector Store コネクタを使って Object Storage 上のファイルを取り込むには、ここまでの権限設定が土台になります。
今回いちばん難しかったポイント
今回実際に進めてみると、環境作成やアプリ作成そのものは比較的スムーズに進みました。一方で、最も手間取ったのは IAM の設定でした。
特に Vector Store コネクタまわりは、単にユーザーへ権限を付与すればよいわけではなく、OCI リソース自身がどの権限で Object Storage へアクセスするのか、という認可設計を理解する必要があります。
このあたりはトライアンドエラーになりやすく、今回の構成でも一番難しいポイントでした。逆にいうと、ここを乗り越えることで、OCI Enterprise AI が単なる LLM 呼び出しではなく、本番利用を意識したエンタープライズ向け基盤であることもよく理解できます、
■ Project の作成
⚫︎ Project の役割
Project は、OCI Generative AI においてエージェントのワークロードを整理するための基本単位です。プロジェクトごとに会話、ファイル、コンテナ、メモリーを分離でき、あわせてデータ保持やメモリー設定も構成できます。
今回の構成では、Oracle Database 26ai ドキュメントを対象にした RAG アプリ全体を管理する論理単位として Project を作成し、この中で関連する設定やリソースを整理します。
⚫︎ Project の作成
Project は、OCI Generative AI で AI エージェントと関連資産を整理・管理するための基盤となるリソースです。Oracle Cloud コンソールを使用して作成できます。
1) OCI コンソール画面
OCI コンソールから、[Analytics & AI] > [Generative AI] をクリックします。
2) Generative AI Project 画面
Project リスト・ページへ移動し、「プロジェクトの作成」をクリックします。
3) Create Project 画面
・ 基本情報
- 名前(オプション): 文字またはアンダースコアで始まり、その後に文字、数字、ハイフンまたはアンダースコア(1~255文字)が続く名前を指定します。名前を指定しない場合は、自動生成されます。
- 説明(オプション): Project の目的を識別しやすくするための簡単な説明を追加します。
- コンパートメント: Project を作成するコンパートメントを選択します。
・ データ保存
- レスポンスの保持: 生成後に個々のモデルレスポンスが保存される期間を定義します。
- 会話の保持: 会話全体が最新の更新後に保持される期間を定義します。両方とも最大720時間(30日)の範囲で設定できます。
・ 短期メモリー圧縮
- 有効化(オプション): 以前の相互作用を自動的に要約します。
- モデルの選択: 有効化した場合、圧縮モデルを選択します。
・ 長期メモリー
- 有効化(オプション): 会話の重要なインサイトを保持します。
- モデルの選択:
- 抽出モデル: 重要な情報を識別して取得します。
- 埋込みモデル: 保存されたデータをベクトル表現へ変換して取得できるようにします。
Project ではレスポンス保持期間や会話保持期間、短期メモリー圧縮、長期メモリーなども設定できます。ハンズオンではデフォルトに近い設定でも進められますが、実運用ではこのあたりも設計ポイントになります。
4) Create Project 完了
■ API Key の作成
⚫︎ API Key の役割
API Key は、OCI Generative AI へのリクエストを認証するための OCI 固有のキーです。今回のアプリケーションでは、バックエンドから Responses API や関連機能を呼び出す際の認証手段として API Key を使用します。
RAG アプリの実装では、モデル選定だけでなく、どの認証情報で安全に API へアクセスするかも重要です。
⚫︎ API Key の作成
OCI Generative AI へのリクエストを認証するための API Key を作成します。キーには名前を付けることができ、オプションで有効期限付きのキーを最大 2 本まで構成できます。
1) API Keys 画面
API Key リスト・ページで、「APIキーの作成」を選択します。
2) Create API Key 画面
次の項目を設定し、[作成] をクリックします。
・ 基本情報
- Name: API Key の名前を入力します。
- Description: 説明を入力します。
- Compartment: (オプション)API Key を保存するコンパートメントを選択します。
- Tag: (オプション)この API Key にタグを割り当てます。
・ キー名と有効期限
- Key one name: 最初のキーの名前を入力します。
- Key expiration date/time: (オプション)キー1の有効期限を設定します。
- Key two name: 2本目のキーの名前を入力します。
- Key expiration date/time: (オプション)キー2の有効期限を設定します。
キーを作成した後、必ず API キー権限を追加してください。
3) Create API Key 完了画面
■ Vector Store
⚫︎ Vector Store の役割
Vector Store は、取り込んだ文書を検索可能な知識ベースとして保持するためのリソースです。RAG 構成では、LLM が直接 PDF ファイルを読むのではなく、まず文書を検索し、関連箇所だけをコンテキストとして渡します。その検索対象になるのが Vector Store です。
今回のアプリでは、Oracle Database 26ai の PDF ドキュメントを Vector Store に同期することで、これらの文書をセマンティック検索可能な状態にします。
⚫︎ Object Storage から Vector Store への同期
今回の構成では、ナレッジソースとなる PDF ドキュメントを直接アプリケーションに持たせるのではなく、まず OCI Object Storage に格納します。そのうえで、Object Storage 上の PDF を Vector Store に同期し、検索対象として取り込みます。
この流れにしておくことで、文書の追加や差し替えを Object Storage 側で管理しやすくなります。
⚫︎ Vector Store の作成
Vector Store は、キーワードの完全一致ではなく、意味(セマンティック類似性)によってデータを索引付け・取得する特殊なデータストアです。
1) Vector stores 画面
OCI Generative AI サービスに Vector Store を作成します。リスト・ページで「ベクトル・ストアの作成」をクリックします。
2) Create Vector Store 画面
・ 基本情報
- Name: Vector Store の名前を入力します。
- Description: (オプション)Vector Store の説明を入力します。
- Compartment: Vector Store を作成するコンパートメントを選択します。
・ データソース・タイプ
1. 非構造化データ
PDF やテキスト・ファイルなどのドキュメントをアップロードし、セマンティック検索や RAG に使用します。
- Enable Expiration Policy: (オプション)非アクティブ期間(日数)を指定します。
- Metadata: (オプション)検索対象を絞り込むためのメタデータを追加できます。
2. 構造化データ
- Connection type: 接続タイプを選択します。
- Enrichment connection id: エンリッチメント接続IDを入力します。
- Querying connection id: 問合せ接続IDを入力します。
- Schema: NL2SQL やスキーマ対応の問合せ用に収集するデータベース・スキーマ名を指定します。
3) Create Vector Store 完了画面
⚫︎ Vector Store コネクタ用 IAM ポリシー作成
Vector Store コネクタ API は、OCI Object Storage などの外部ソースにあるデータを Vector Store へ同期するための仕組みです。同期は手動でトリガーでき、取込みログでは各ステージでファイルごとのステータスを確認できます。
必要な IAM ポリシー
allow any-user to read object-family in compartment <COMPARTMENT_NAME> where ALL{request.principal.type='generativeaivectorconnector'}
⚫︎ Object Storage Bucket へのデータ配置
Vector Store へデータ同期するためのドキュメントを Object Storage Bucket へ配置します。今回は、Oracle AI Database 26ai Documents をアップロードしておきます。
1) Oracle AI Database 26ai Documents ダウンロード
Oracle AI Database 26ai Documents の PDF や、まとめた Zip は以下からダウンロードできます。
2) Object Storage Bucket へドキュメントをアップロード
⚫︎ Vector Store データ同期コネクタの作成
Vector Store の詳細ページで、データ同期コネクタを追加する対象の Vector Store を選択します。
1) Vector Store: Data sync connectors 画面
ベクトル・ストアの「データ同期コネクタ」ページで、「データ同期コネクタの作成」をクリックします。
2) Create data sync connector 画面
・ 基本情報
- Name: データ同期コネクタの名前を入力します。
- Description: (オプション)データ同期コネクタの説明を入力します。
- Compartment: データ同期コネクタを作成するコンパートメントを選択します。
・ データ・バケット
- Compartment: 同期対象 Bucket のコンパートメントを選択します。
- Bucket: Bucket を選択します。
- バケット内のすべてを選択: 必要に応じてファイルおよびフォルダを個別に選択します。
ファイルを個別に選択する場合は、少なくとも1つのファイルまたはフォルダを選択する必要があります。
⚫︎ データ同期の実行
1) Connector 画面
作成した Connector 画面の [Data Sync] タブにある [Perform Data Sync] をクリックします。
2) Perform Data Sync 画面
[Perform Data Sync] を実行します。
- Name: データ同期の名前を入力します。
- Description: (オプション)データ同期の説明を入力します。
- 「実行」を選択します。
3) Perform Data Sync 実行画面
4) Vector Store データ同期確認
Vector Store にある [Files] タブをクリックし、データ同期できていることを確認します。
ここまでで、Object Storage 上に置いた Oracle Database 26ai の PDF が Vector Store に取り込まれ、RAG 用の知識基盤として利用できる状態になります。
■ RAG 検索アプリ作成
⚫︎ file search による RAG 検索
file search は、Vector Store に取り込まれた文書から関連情報を検索するための機能です。RAG アプリケーションでは、この検索処理が回答品質を左右する重要な部分になります。
今回のアプリでは、ユーザーの質問を受けると、まず file search が Oracle Database 26ai の PDF 群から関連箇所を取得し、その結果をもとに LLM が回答を生成します。
つまり、LLM はゼロから答えを作るのではなく、まず製品ドキュメントから根拠となる情報を取得し、その内容に基づいて応答します。
⚫︎ Codex での RAG 検索アプリ作成
1) Codex 等で対話しながらアプリ作成
Codex などのコーディング支援 AI を使いながら、OCI Enterprise AI を利用した RAG 検索アプリを作成していきます。たとえば、次のような内容で依頼すると作りやすいです。
OCI Enterprise AI を使用した RAG 検索アプリを作成してください。
OCI Object Storage 上のドキュメントを Vector Store へ同期済みです。
file search を利用して関連ドキュメントを検索し、その内容を根拠に回答する構成にしたいです。
2) 完成と動作確認
今回必要な変数は次のとおりです。
# OCI Responses API endpoint
OCI_GENAI_REGION=us-ashburn-1
OCI_OPENAI_PROJECT_ID=<Your Project ID>
# Option: OCIレスポンスAPI の base URL を直接指定したい場合
# OCI_GENAI_BASE_URL=https://inference.generativeai.<available-region>.oci.oraclecloud.com/openai/v1
# OCI Generative AI の API Key(create-api-key で作成したキー)
OCI_GENAI_API_KEY=<Your API Key>
# 既存の Vector Store OCID
OCI_VECTOR_STORE_ID=<Your Vector Store ID>
# AI Model
OCI_MODEL=xai.grok-4-1-fast-reasoning
■ まとめ
OCI Enterprise AI を触ってみて面白かったのは、単に LLM を呼び出すのではなく、Project、API Key、Vector Store、Data Sync、file search、Responses API といった部品をつなぎながら、本番向けの AI エージェント基盤を自分の手で組み立てていく感覚があることでした。
今回の構成では、Object Storage に置いた Oracle Database 26ai の PDF を Vector Store へ同期し、file search で関連箇所を検索し、その結果をもとに回答するところまでを確認できました。手順としては比較的追いやすいのですが、実際に触ってみると「AIアプリはモデル単体ではなく、データ・検索・認証・運用を含めて作るものなんだ」という理解がかなり深まります。
競合クラウドにも同じ領域のサービスはありますが、OCI Enterprise AI は、エージェント開発機能だけでなく、データの扱い、統制、運用まで含めて整理しやすく、特にエンタープライズ用途の全体像をつかみやすいのが魅力だと感じました。
そして何より、ドキュメントを置く、同期する、検索する、答えが返る、という一連の流れが実際に動くとかなり楽しいです。
「まずは触って全体像を理解したい」「Oracle のデータやドキュメントと AI をつなげてみたい」という人にとって、OCI Enterprise AI はかなり面白い題材だと思いました。
今後は、もう少し実践寄りに、アプリ側の作り込みやプロンプト設計、検索精度の調整、別データソースの追加なども試してみたいところです。
また続きも、してみてみようと思います。
■ 参考
概要
Oracle Documents
- OCI Generative AIにおけるエンタープライズAIエージェント
- APIキー作成
- APIキー権限(IAMポリシー)
- ベクトル・ストア作成
- ベクトル・ストアへのデータの同期
- file_searchツールの使い方(Quick Start)
- OCIレスポンスAPI
Oracle Blogs
■ 技術解説
■ おまけ
今回の内容を、ずんだもん達に紹介してもらう漫画も作ってみました。 技術記事の補足として、少しでも楽しく読んでもらえたらうれしいです。

※ 本漫画は筆者による非公式の二次創作です。
※ 使用キャラクター:ずんだもん / 四国めたん / 春日部つむぎ
※ キャラクターの権利は各権利元に帰属します。
※ クレジット
- ずんだもん / 四国めたん:東北ずん子・ずんだもんプロジェクト関連ガイドラインに基づいて利用
- 春日部つむぎ:公式利用規約に基づいて利用
























