Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング―...

Avatar for KoheiOgawa KoheiOgawa
November 05, 2026

【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―

▼セッション概要文
dotsやGrok Botなど、自律的に作業を進めるAIエージェントが登場しています。業務DBの操作を任せるには、データが「何を意味するか」だけでなく、「操作すると何が起きるか」を踏まえた判断が欠かせません。その手がかりは、DBの中の処理と依存関係にあります。

本セッションでは、これらを業務ルールと結び付け、判断の根拠として再利用する「オペレーショナルオントロジー」の設計と検証を紹介します。Oracle AI Databaseを題材に、判断の品質を保ちながら探索の負担を抑える方法を探ります。DBの知識をAI開発に生かしたい方に向けた、オントロジーの予備知識なしで参加できるセッションです。

▼db tech showcase 2026 イベントページ
https://www.db-tech-showcase.com/2026/

Avatar for KoheiOgawa

KoheiOgawa

November 05, 2026

More Decks by KoheiOgawa

Other Decks in Technology

Transcript

  1. 2026.11.6 [Fri] 13:10–13:35 Room C | CM10 AIエージェントの 判断と探索を変える、 データベース

    エンジニアリング ― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ― 登壇者 小川 航平 日本オラクル株式会社 Principal Enterprise AI GTM Architect データ横丁「データの世界観チャンネル」ナビゲーター Copyright © 2026, Oracle and/or its affiliates
  2. 自己紹介 実はdb tech showcaseは2回目の登壇! db tech showcase 2022|B-8 インダストリアルメタバースの 実現を目指した

    MR/AI ディジタルツイン 基盤の設計 2022-11-17の登壇 小川 航平 Kohei Ogawa B O O K S 共著 SERIES 連載中 P rin cip al En terp rise A I GT M Arc h itec t aiX, ACE, Cloud Business Unit X @ sh isyu _g ak u フォロー&DM Welcomeです! 02 Copyright © 2026, Oracle and/or its affiliates
  3. 所属コミュニティの紹介 データ横丁:データをビジネスに繋げる人と情報に出会う街 名前の由来:テーマごとの小さなお店(グループ)が連なって、にぎやかな横丁(業界)をつくる 横丁の現場:LT大会と業界別のイベント データ実務家コミュニティ データをビジネスに繋げる 人と情報に出会う街 初のLT大会:31名がエントリー LT大会の会場 イベントの会場

    2024年6月に活動開始 約2,200名 connpass 登録 約600名 Slack 参加 金融業界編(全6回) 横丁のお店 エンタメ業界編(全5回) 業界別のイベント ポッドキャスト 学びの場「〇〇通り」 話題の書籍紹介 #2 ClickHouse Slack交流 世界観チャンネル(ナビゲーター:小川) 2026年9月時点(紹介資料) 03 世界観チャンネル #1 Atlassian datayokocho.info・connpass(2026-11-03〜04閲覧)|人数・ロゴ・写真:データ横丁の紹介資料(2026/9) X @datayokocho Copyright © 2026, Oracle and/or its affiliates
  4. はじめに 1 2 3 4 本日お伝えしたいこと Speaker Deck speakerdeck.com/shisyu_gaku sp

    eake rd eck .com /s hisy u _g ak u これだけ覚えて帰ってください!!!! 01 LLMが賢くても、データが間違っていればAgentは間違うし、 情報の探索力がないと実行も間違う。 02 Agentにとって、データベースは検索先であると同時に実行先である。 03 AIの判断は確率的でも、業務の制約は決定的に 守らなければならない。 04 データベースエンジニアリングの幅と深さがある環境がAI Agentを 本番活用するための課題を解く 04 Copyright © 2026, Oracle and/or its affiliates
  5. はじめに 1 2 3 4 AI Agentの「探索」と「実行」の技術進化 代表的な論文・発表の年月。点の色が濃いほど、業務の今の状態と条件に近いものです。 〜2021 探索

    1994 2020.04 BM25 DPR キーワード ベクトル検索 2022 2023 2024 2021.04 pgvector 2023.05 2023.10 長い文脈 Self-RAG DBでベクトル 資料ごと渡す 自分で再検索 2025 2024.05 2025.02 2026 2025.09 2026.10 AI Vector Search Deep Research Context engineering DB内で意味検索 調べ続けてまとめる AI-Cat(Oracle) カタログの中で探す 必要な分だけ、その都度 今回 操作の条件 読む情報 言葉・文書 足りない情報・関係 業務データと意味 実行 2018.10 2020.05 2022.12 2023.09 2024.04 BERT RAG HyDE Select AI GraphRAG Contextual Retrieval Agentic search 2024.09 2025.05 Context graph 文脈で読む 検索して答える 仮の答えで探す 自然文からSQL 関係から探す 判断の経緯をグラフに 文脈を付けて探す grep・globで自ら探す 2025.12 2021.06 2022.11 2023.06 2024.11 2025.02–05 GitHub Copilot ChatGPT Function calling MCP Claude Code・Codex OpenClaw コードを書く 文章で答える APIを呼ぶ 道具の共通規格 コードを動かす チャットで頼み、手元で動く 道具・APIを呼ぶ 画面・アプリで任せる 今の状態 前提条件 効果 2026.01 今回 確かめて提案 任せる仕事 人に答える 業務の 条件 2022.10 2024.10 2025.01 2025.04 2026.08–09 ReAct ChatGPT plugins 2023.03 Computer Use Operator A2A Grok Bot・dots 考えて使う 画面を操作する ブラウザで作業 アプリにつなぐ Agent同士で連携 専用PCで常時稼働 進化したAI Agentは、実際にどこまで仕事を任せられるようになったのか? 05 Copyright © 2026, Oracle and/or its affiliates
  6. はじめに 1 2 3 4 Grok Botやdotsは、自分のPCでアプリを使い、仕事を進める 常時稼働のAgentが、人と同じようにアプリへサインインし、作業を返してきます。 依頼 依頼する人

    公式に紹介されている使い方 常時稼働のAgent Grok Bot (xAI) dots (OpenAI) 専用のクラウドPC Grok Bot(xAI) Zendesk サポートの依頼を処理 Gong → Salesforce 商談記録を読み、CRMを更新 Slack 依頼を仕分けて担当へ回す メール・LinkedIn 下書きを作り、人が確認 例:「この件の請求書を作って送って」 ブラウザ ファイル 学習・記憶 24時間、作業を続ける 承認が必要なときは、人に戻ってくる dots(OpenAI) ChatGPT・Slack・Teams ここから依頼・相談する Codex 自分のPCでコードを書く 請求書 作成し、承認を得て送信 プラグイン 4,000以上のアプリに接続 コネクタでつながったアプリなら、Agentはもう業務の操作までしている。 06 Copyright © 2026, Oracle and/or its affiliates
  7. はじめに 1 2 3 4 では、実行先が社内の業務DBだったら? SaaSのアプリには、操作の入口と使い方が決まっている。では、業務DBにつなぐと? 依頼 依頼する人 常時稼働のAgent

    Grok Bot (xAI) dots (OpenAI) Oracle AI Database 社内の業務DB ? 注文 ORDERS 出荷 SHIPMENTS 注文取消 PL/SQLの手続き 専用のクラウドPC 例:「この注文をキャンセルしたい」 ブラウザ ファイル 学習・記憶 24時間、作業を続ける 承認が必要なときは、人に戻ってくる Agentに必要なのは、DBへの接続手段だけでなく、 業務操作の意味・条件・効果を理解できる仕組み。 07 Agentが業務操作をするために知るべきこと • • • • どの注文を取り消すのか?(what) 出荷済みでも取り消せるのか?(when) 誰の承認が必要なのか?(who) 注文・出荷・在庫はどう変わるのか?(Effect) 操作の条件と効果は、PL/SQLの中に ある前提とする Copyright © 2026, Oracle and/or its affiliates
  8. はじめに 1 2 3 4 他の作り方との違い:呼ぶ前に、理由と範囲が分かる Agentに業務の操作を任せるときの、よくある作り方と比べます。 作り方 できること 業務の操作で足りないこと

    SQLを直接書く (WHERE句で絞ってUPDATE) 知っている人なら、すぐ書ける 元の手続きの規則(例:出荷済みは取り消せない)を通らない。 どの表・どの条件かを知っている前提 ツールを並べる (取消手続きをMCPなどで公開) Agentが手続きを呼べる 条件に合わないことは、呼んだ後のエラーで知る。 何が変わり、何が残るかは分からない RAG・GraphRAG 文書や関係から、説明を探せる 今の値と、手続きの中の条件は見ていない ソースをLLMに読ませる 条件を文章で説明できる 読み方は回ごとに変わりうる。 コードが変わったことに気づく仕組みが別に要る 今回:DBから構造と意味を取り、 DBで確かめる 呼ぶ前に、条件・理由・範囲を 今の値で確かめて提案する 意味の定義を人が書く手間がある。 実行は次の段階 呼んでから知るのではなく、呼ぶ前に確かめる。 08 Copyright © 2026, Oracle and/or its affiliates
  9. はじめに 1 2 3 4 探して確かめるのをDBに寄せると、嬉しいことがいっぱい Agent(LLM)は言葉を条件に変えるだけ。探して確かめるのは、DBの中で。 トークンが減る 表の定義や行をプロンプトに入れず、 DBの中で絞って返す。

    71%減 Oracle Blog(2026-10)の検証 Agent(LLM) 探す時間が減る 言葉を理解し、条件に変える 調べ直しを繰り返さず、 DBの中で候補を絞る。 同じ検証:クライアントの待ち時間 確かめた事実と根拠だけ 条件(Select AIの検索SQL) 判定がぶれない 数える・確かめる・条件で評価するのは SQL。同じデータと時刻なら同じ判定。 今回のPoC(p.17) Oracle AI Database 意味グラフ:目的・操作・効果 今の値と権限を、DBが守る 鮮度・行と列の権限・整合性はDBが守る。 プロンプトに書き写さない。 78%減 構造グラフ:PL/Scopeの参照情報 既存の取消手続き(PL/SQL) 業務データ:今の値 権限・定義の版 根拠をたどれる 提案の理由を、既存の取消手続きの 行と今の値まで示せる。 今回のPoC(p.21) 変更に気づき、経緯が残る 定義やソースの版が変われば止まる。 判断の経緯をグラフで残す考え方も広がる。 今回のPoC/Context graph(2025-12) コンテキストをDBに置くほど、Agentの思考量を減らせ、速く、正確な実行になる。 09 Copyright © 2026, Oracle and/or its affiliates
  10. はじめに 1 2 3 4 Palantir Ontology:読む要素と、動かす要素を一つにする Palantirは、Ontologyを組織の「operational layer」と説明しています。 semantic

    = 業務を「読む」 kinetic = 業務を「動かす」 オブジェクト:業務の対象 例:注文 #123 / 出荷 #S45 アクション:状態を変える操作 例:注文取消を実行する 属性:対象の値 例:注文状態 = 未出荷 ファンクション:業務のロジック 例:取消条件の確認・在庫引当の解除 リンク:対象どうしの関係 例:注文 #123 → 出荷 #S45 動的なセキュリティ:アクセスの制御 例:実行者の権限を確認する Palantirは「Ontologyはsemantic layerではない」と説明しています。 本発表のオペレーショナルオントロジー Agentが使う、業務の操作の辞書と地図。どの操作が、どんな条件で、何を変えるか。 業務を動かすには、「データの意味」だけでなく「操作の意味」が必要になる。 10 Copyright © 2026, Oracle and/or its affiliates
  11. はじめに 1 2 3 4 Oracleの資産を、AI Agentに生かせないか Oracle Databaseには、データのための細かい機能が、 数えきれないほどある。

    中の人でも、全部を知っている人はいない。 データが鍵になるAI Agentで、 この資産を生かせないか。 11 Copyright © 2026, Oracle and/or its affiliates
  12. 例題 1 2 3 4 Oracle AI Databaseで実装するOperational Ontology この章で見ること

    放送メディアのシナリオを題材に技術検証してみた 12 Copyright © 2026, Oracle and/or its affiliates
  13. 例題 1 2 3 4 40年分の映像資産をAIで生かす。その先に何があると面白いか フジテレビが、番組素材の管理基盤にOCIを採用した、という発表から考えました。 プレスリリース(日本オラクル、2026-10-22) 考えたこと:データ活用は、どこまで広がるか 探す

    映像解析とメタデータで探す 使う 配信・二次利用に生かす 守る 使ってよいか、権利を確かめる 記事にある さらに面白いのは、ここ 約40年分の番組素材とメタデータが管理されている 総合コンテンツ管理システム基盤にOCIを採用!! 将来、GeminiなどのAIで映像解析・メタデータ生成を検討。 方針が変わったら、 変える 予定を正しく見合わせる データを探す、利用するの先にある「見合わせる」は、業務の状態を変える判断。 13 画像:日本オラクル プレスリリース(2026-10-22)の画面|以降のPoCは架空の映像管理DBで、フジテレビのシステム・業務とは無関係 Copyright © 2026, Oracle and/or its affiliates
  14. 例題 1 2 3 4 同じ素材に、4つの利用先がある。どれを変え、どれを残すかをどのくらい信頼できる根拠・ 判断材料を持って返信してくれるか 架空の番組素材管理DBの例です。担当者が、海外向けの未開始の公開予定を取りやめたい場面。 利用 利用先

    内容 PUB-001 海外向け動画配信(OTT) 本編 PUB-002 海外向け動画配信(OTT) 本編 PUB-003 国内テレビ放送 本編 PUB-004 海外向けSNS 予告編 DBの状態 配信中 LIVE 開始(JST) 10/1 00:00 配信運用の担当 素材 「海外向けで、 まだ始まって いない公開予定を 取りやめたい」 依頼の要旨(原文はp.15) ① 海外向けは、どれか 架空番組・ 海辺の記録 DB内のID:A-017 ② まだ始まっていない予約は、どれか 公開予約 SCHEDULED 放送予約 SCHEDULED 公開予約 SCHEDULED 11/3 09:00 11/3 20:00 11/3 08:00 ③ どの操作で取り下げ、何を残すか OTT:インターネット経由の動画配信。公開予約:指定の日時から公開する予定をDBに登録したもの(視聴者の録画予約ではない)。状態はDB上の値。 同じ素材でも、変える利用と残す利用を分けて確かめる。 14 Copyright © 2026, Oracle and/or its affiliates
  15. 例題 1 2 3 4 実際に作ってみた 実際の入力文と、保存した実際の応答(要約)です。入力には、操作名も内部IDも書いていません。 嬉しいところ 依頼 「架空番組・海辺の記録」で、登録済みの海外向け公開予定のうち、まだ始まってい

    ないものを取りやめたい。どう対応すればよい? ✓ 操作名を知らなくてよい 実装して動かした実際の応答を要約したもの ✓ 漏れなく数える ✓ 理由が付く ✓ 残すものも言う ✓ 分からないことも言う 提案 Agent 海外向けの動画配信(PUB-002)と、海外向けSNSの予告編(PUB-004) は、取消を提案します。予約状態で、まだ始まっていないためです。 維持 国内のテレビ放送(PUB-003)は、海外の指定により範囲外。予定どおり残しま す。 対象外 配信中の動画(PUB-001)は、予約の取消の対象外です。 範囲 提案を仮に当てると、範囲内の未開始の予約は2件から0件。権利と外部の配信 先は確かめていません。 Agentの答えは、保存した実際の応答の要約。評価時刻は 11/2 12:00の設定で、業務の更新は0件。 操作名を知らなくても、理由と範囲つきで返ってくる。 15 Copyright © 2026, Oracle and/or its affiliates
  16. しくみ 1 2 3 4 全体像:先に2つのグラフを作り、聞かれたらDBで確かめて返す 上が先に作っておくもの、下が聞かれたときの流れ。黄色がモデル、青がDBの中です。 先に作っておく 既存DB:表・PL/SQL・辞書 PL/Scopeで自動

    構造グラフ (構築時) 業務の定義:操作・効果・目的 人が書いて検証 意味グラフ 手続き→SQL→代入→列 操作→効果→目的 構造は、自動で取れる。 意味は、人が書いて検証する。 ※拡張案:2026.10末リリースされた、 DBMS_AI_GRAPHRAGで業務文書から定義候補をLLMを用いて 抽出してグラフ化することもできる(今回の意味グラフ構築では未使用) 使う 聞かれたとき 日本語の依頼 モデル(外部) DBの中(SQL・PL/SQL) 根拠付きの提案 (照会時) Agentからは、 DBの中の判定を 1回呼ぶ ・依頼を項目に分ける ・Select AIで、意味グラフの検索 SQLを作る ・素材の全利用を調べる ・検索SQLを検査して、グラフを検索 ・根拠を構造グラフでたどる ・今の行で条件を確かめる ・仮に当てて範囲を確かめる ・定義とデータの版を照合し直す 提案・維持・ 対象外・保留と、 理由・範囲 モデルを呼ぶのは最大2回 言葉の解釈はモデル、条件と件数の確認はDB。 17 実装(runtime-v5・runtime-v2・plscope_pipeline・purpose_agent)|8段の詳細は付録 p.40、構築の詳細は p.39 Copyright © 2026, Oracle and/or its affiliates
  17. しくみ 1 2 3 4 なぜ取消か:目的と操作を、効果でつないである 意味グラフ(SQL Property Graph):頂点3つ・辺2本。現在は取消1操作を公開 操作

    予約の取消 効果を持つ 効果 STATUSを CANCELLEDに 目的を支える(検証済み) 目的 未開始の予約を 取り除く 探し方:目的に合う効果から、その効果を持つ操作をたどる 地域・媒体・個々の予約は、グラフに入れない。固定のSQLで全件を調べる 操作は、既存の取消手続きと照合する(グラフの辺ではない。p.19) 目的に合う効果から、その効果を持つ操作を候補にする。 18 oracle/purpose_agent/graph.sql|属性値は cancel-v2.json・goal-mapping・保存trace|矢印は格納した関係の向き(処理の順序ではない) Copyright © 2026, Oracle and/or its affiliates
  18. しくみ 1 2 3 4 なぜ既存の取消手続きの条件か:コンパイラの情報からグラフにしてある 代入 L_STATUS 列 列の参照

    列を参照 STATUS 定義を参照 SQL文 PUBLICATIONS .STATUS 代入を含む 取消手続き CANCEL_ PUBLICATION SQLを含む SELECT 21行 代入を含む 代入 L_START PL/Scope 列 列の参照 列を参照 USE_START 定義を参照 PUBLICATIONS .USE_START コンパイル時に、識別子とSQL文の参照を集める機能。影響調査にも使われるこの情報を、そのままグラフにした(構文解析器は作っていない)。ビルド全体は290 頂点・308辺で、ここでは説明に使った2経路だけを表示。 提案の根拠を、既存の取消手続きの読取箇所と列まで戻せる。 19 reports/plscope-pipeline-20261104/native-oracle-query-v2(vertices.json・edges.json、ビルド ad271be2…)|周辺は一部を表示 Copyright © 2026, Oracle and/or its affiliates
  19. しくみ 1 2 3 4 Select AIが検索SQLを作る。骨格は固定し、条件だけを選ばせる Select AI for

    Property Graph グラフの定義をモデルに渡し、日本語からグラフを検索する SQLを作る機能(今回はAutonomous Database) 生成されたSQL(保存した実行記録から。一部を省略) SELECT DISTINCT g.operation_id, g.routine_id, g.goal_id, … FROM GRAPH_TABLE(MAM_OWNER.PF6_SEARCH_GRAPH MATCH (o IS operation)-[h IS has_effect]->(f IS effect) モデルに渡すもの 依頼の原文 -[a IS supports_goal]->(t IS goal) WHERE o.release_id = '…' AND t.semantic_release_id = '…' AND a.validation_status = 'VERIFIED_FOR_PROPOSAL' グラフの定義(頂点・辺・属性) AND t.desired_state_code = 'NO_PENDING_PUBLICATION_START' SQLの骨格の指示 AND t.extent_code = 'EXISTING_ROWS' 渡さないもの × 業務の行(予約の一覧) × 正解の操作 AND f.kind = 'SET' AND f.entity = 'PUBLICATION' AND f.attribute_name = 'STATUS' AND f.value_code = 'CANCELLED' COLUMNS (…)) g 指示で固定した骨格(形・経路・版) 作る(showsql) 文法を検査 モデルが選んだ、目的と効果の条件 GRAPH_TABLEで実行 候補:予約の取消 検索SQLはモデルが作り、実行する前にDBの側で検査する。 20 Oracle Docs「Select AI for Property Graphs」|保存trace(acceptance-v5/paraphrase_existing/trace.json:generated_sql) Copyright © 2026, Oracle and/or its affiliates
  20. しくみ 1 2 3 4 PUB-002を底までたどる:目的・既存の取消手続き・今の値 1件の提案を、目的 → 取消手続きの場所 →

    条件と効果 → 今の値 の順に掘り下げます。 目的と操作 予約の取消 CANCELLEDにする 未開始の予約を取り除く 意味グラフ 取消手続きの場所 掘 下 げ る 取消手続き SELECT(21行) STATUS・USE_START PUB-002について返した説明(保存応答) “予約状態で、開始時刻が評価基準時刻より後です。元処理は 対象予約の状態をCANCELLEDに変更します。今回は実行せ ず提案だけを返します。提案ポリシーの期間整合条件(終了が 開始より後)も満たします。” 構造グラフ 条件と効果 元のソース 今の値 評価SQL 26 IF l_status <> 'SCHEDULED' OR l_start <= p_as_of 29 UPDATE publications SET status='CANCELLED' STATUS USE_START SCHEDULED ✓ 予約状態 11/3 09:00 ✓ 評価時刻 11/2 12:00 より後 説明の材料 取消手続きの条件・効果 26〜28行・29行 提案ポリシー 期間の整合、地域・媒体 構造の経路 STATUS・USE_START 説明は評価SQLの結果と同じ値から作る(追加のモデル呼び出し0回) ここまで取れているから、「26〜28行の条件を、今の値で満たす」と言える。 21 保存応答 acceptance-v5/paraphrase_existing:items[PUB-002].explanation Copyright © 2026, Oracle and/or its affiliates
  21. しくみ 1 2 3 4 今は大丈夫か:候補が見つかっても、今の条件を満たさなければ保留する 現在時刻で評価した、別の保存結果です。 現在時刻で評価した依頼 評価:2026-11-05 06:09

    JST(実行した時刻) 返した判定 保留 海外向けの動画配信(PUB-002) 予約状態のまま、開始時刻(11/3 9:00)を過ぎた 「架空番組・海辺の記録」の、現在登録されている海外の公開予定を、公開前のう ちに出さないようにしたい。国内はそのままで、必要な対応を提案して。 保留 海外向けSNSの予告編(PUB-004) 同上(開始 11/3 8:00) 候補は見つかった 意味グラフで 取消の候補を得た 維持 国内なので範囲外 今の値で確かめる 条件を満たさない 予約状態のまま、 開始時刻を過ぎていた 国内のテレビ放送(PUB-003) 対象外 配信中の動画(PUB-001) 予約の取消の対象外 保留 探索で候補を得ても、今の条件を満たさなければ提案しない。 22 保存応答 acceptance-v5/current(2026-11-05 06:09 JST) Copyright © 2026, Oracle and/or its affiliates
  22. しくみ 1 2 3 4 依頼全体は:1件ずつだけでなく、対応の範囲を確かめる 提案した取消だけを仮に当てたとき、DBの予約状態で目的を満たすかを、固定SQLで確かめます。 範囲内の、まだ始まっていない予約 提案の前 まだ確かめていないこと(応答の中で明示)

    提案だけを仮に当てた後 2件 0件 海外の動画配信とSNS 残る予約なし ほかに確かめたこと ✓ 国内と配信中は、そのまま残る ✓ 保留や、不正な提案はない ✓ DBの予約の上では、目的を満たす見込み 権利 評価していない 外部の配信先 停止を確認していない 将来の新しい登録 防いでいない 実際の業務の更新 0件/実行した操作 なし 「目的を満たす見込み」は、仮に実行した場合の予測。実行の結果ではない。 対応できる範囲と、まだ扱っていない範囲を分けて返す。 23 保存応答 acceptance-v5/paraphrase_existing:goal_coverage|PF6_DATA_V2.coverage Copyright © 2026, Oracle and/or its affiliates
  23. まとめ 1 2 3 4 ここまで取れているから、ここまで言える Agentが言えたことの一つずつに、DBで取ってあるものと、使ったOracleの機能が対応します。 Agentが言えたこと そう言えるのは、DBにこれがあるから 使ったOracleの機能

    「4件すべてを見た」 素材の全利用を、固定のSQLで数えた SQL 「この依頼には、予約の取消が合う」 操作→効果→目的を、版付きで定義した意味グラフ SQL Property Graph・Select AI 「取消の条件は、既存の取消手続きの26〜28行」 手続きの中の列の読み書きまで、 コンパイラから取った構造グラフ PL/Scope・辞書・USER_SOURCE 「PUB-002は今、予約状態で開始前」 今の行を、評価SQLで確かめた SQL・PL/SQL 「取り消すと2件が0件。国内と配信中は残る」 提案を仮に当てて、範囲を数えた SQL・PL/SQL 幅 5つの仕事を、一つのDBの中でつないだ 深さ 1件の提案を、既存の取消手続きの行と今の値までたどれる(p.21) 答えの一文ごとに、DBの中の根拠がある。 25 実装(runtime-v5・runtime-v2・plscope_pipeline)と保存応答|仕事ごとの分担は付録 p.38 Copyright © 2026, Oracle and/or its affiliates
  24. まとめ 1 2 3 4 既存DBの処理と依存関係を、Agentの判断材料にする 今日の話を、3行にまとめます。 01 既存のPL/SQLには、操作の条件と効果がすでにある。 取消の手続きでは、26〜28行が条件、29行が効果(p.21)

    02 意味グラフで目的と操作を結び、構造グラフで既存の取消手続きの根拠をたどる。 意味グラフはSelect AIで検索し、構造グラフは固定のSQLでたどる(p.18〜20) 03 今の値をSQLで確かめ、変える対象・残す対象・理由を返す。 候補でも、今の条件を満たさなければ保留する(p.22〜23) 操作の条件と根拠は、もうDBの中にある。 LLMはAgentを賢くする。DBエンジニアリングは、Agentを本番で使えるものにする。 26 Copyright © 2026, Oracle and/or its affiliates
  25. 付録 参考リンク(公開資料 1/2) スライドで使った出典のうち、公開されている資料です。 ページ 種類 資料 リンク p.2 Speaker

    Deck db tech showcase 2022(B-8)の登壇資料 speakerdeck.com/shisyu_gaku/… p.3 Webサイト データ横丁 datayokocho.info p.5 OpenClaw Introducing OpenClaw(2026-01-29) openclaw.ai/blog/introducing-openclaw p.5・9 Oracle Blog トークン使用の削減(2026-10-26、訳) oci-blog-jp-trans.blogspot.com/2026/10/… p.5・9 VCの論考 Foundation Capital:Context graphs(2025-12) foundationcapital.com/context-graphs-… p.6・7 OpenAI dots のご紹介(2026-09-29) openai.com/ja-JP/index/introducing-dots/ p.6・7 xAI Introducing Grok Bot(2026-08-11) x.ai/news/introducing-grok-bot p.43 Anthropic Building effective agents(2024-12-19) anthropic.com/engineering/building-effective-agents p.45 PostgreSQL Transaction Isolation・Explicit Locking postgresql.org/docs/current/transaction-iso.html p.13 Oracle フジテレビのOCI採用(2026-10-22) oracle.com/jp/news/…/fuji-television-… p.3 connpass データの世界観チャンネル #1・#2 datayokocho.connpass.com/event/ 27 Copyright © 2026, Oracle and/or its affiliates
  26. 付録 参考リンク(公開資料 2/2) 本編と付録で使った資料です。 ページ 種類 資料 リンク p.10 Palantir

    Ontology overview(semantic・kinetic) palantir.com/docs/foundry/ontology/overview p.10 Palantir The Ontology system palantir.com/docs/foundry/architecture-center/… p.10 Palantir Why create an Ontology? palantir.com/docs/foundry/ontology/why-ontology p.48 Palantir Action types・Submission criteria palantir.com/docs/foundry/action-types/… p.18・29 Oracle Docs SQL Property Graph docs.oracle.com/…/spgdg/sql-property-graph.html p.20・30 Oracle Docs Select AI for Property Graphs docs.oracle.com/…/select-ai-property-graphs.html p.20 Oracle Docs GRAPH_TABLE演算子 docs.oracle.com/…/sqlrf/graph_table-operator.html p.19・32 Oracle Docs PL/Scope docs.oracle.com/…/adfns/plscope.html p.25 Oracle Docs DBMS_METADATA docs.oracle.com/…/arpls/DBMS_METADATA.html 28 Copyright © 2026, Oracle and/or its affiliates
  27. 付録 付録:意味グラフの頂点・辺と属性 意味グラフ PF6_SEARCH_GRAPH(SQL Property Graph)。頂点3つ・辺2本です。 構造グラフの手続き CANCEL_PUBLICATION(p.32) 依頼(要約):海外向けの登録済み公開予定を見合わせたい routine_id

    と版で照合(グラフの辺ではない) o operation 予約の取消 依頼はグラフの頂点ではない f h : has_effect PF2_HAS_EFFECT(辺の表) effect STATUSを CANCELLEDに t goal 未開始の予約を 取り除く a : supports_goal PF6_EFFECT_GOAL(辺の表) mapping_id = CANCEL_EXISTING_PENDING validation_status = VERIFIED_FOR_PROPOSAL PF2_OPERATION(頂点の表) PF2_EFFECT(頂点の表) PF6_GOAL(頂点の表) release_id = '913d…' kind = 'SET' desired_state_code = routine_id = 'C6C5…' entity = 'PUBLICATION' 'NO_PENDING_PUBLICATION_START' graph_build_id = 'ad27…' attribute_name = 'STATUS' extent_code = 'EXISTING_ROWS' scope_ja = '対象公開1件' value_code = 'CANCELLED' completion_boundary = scope_kind = 'ONE_PUBLICATION' 'DB_RESERVATION_STATE' MATCH (o IS operation)-[h IS has_effect]->(f IS effect)-[a IS supports_goal]->(t IS goal) 29 生成SQLが条件に使った属性 Copyright © 2026, Oracle and/or its affiliates
  28. 付録 付録:Select AI for Property Graphの設定 Autonomous Databaseの機能です。今回は、意味グラフの検索SQLを作るところだけに使いました。 機能(公式の説明) AIプロファイルに

    SQL Property Graphを指定する 日本語から、GRAPH_TABLEを使う検索SQL( SQL/PGQ)を作る 表とグラフは、 同じプロファイルに混ぜられない 動作:showsql・runsql・ explainsql・narrate など 今回の設定 PF_PURPOSE_GRAPH_V1 指すのは、意味グラフ PF6_SEARCH_GRAPH だけ 使う動作は showsql だけ(SQLを作るだけ) モデルに渡ったもの(保存したSHOWPROMPT) CREATE PROPERTY GRAPH PF6_SEARCH_GRAPH VERTEX TABLES ( PF2_OPERATION LABEL OPERATION PF2_EFFECT LABEL EFFECT PF6_GOAL LABEL GOAL ) EDGE TABLES ( PF2_HAS_EFFECT LABEL HAS_EFFECT 実行は、DBで文法を検査してから 指示で、SQLの骨格を固定する(p.20) PF6_EFFECT_GOAL LABEL SUPPORTS_GOAL ) 属性の一覧は省略 + SQL/PGQの書き方の指示、骨格の指示、依頼の原文 × 渡らない:業務の行、正解の操作ID 30 Copyright © 2026, Oracle and/or its affiliates
  29. 付録 付録:元の取消手続き(PL/SQL) 架空の業務DBの取消手続きから抜粋します。行番号は、DB内のPACKAGE BODYの行です。 PKG_MEDIA.CANCEL_PUBLICATION(DB内のPACKAGE BODY) 21 SELECT status, use_start

    INTO l_status, l_start FROM publications 22 ① 読む(21〜22行) STATUSとUSE_STARTを読む WHERE publication_id=p_publication_id FOR UPDATE; 23 IF l_status='CANCELLED' THEN 24 p_result := 'ALREADY_CANCELLED'; RETURN; 25 END IF; 26 IF l_status <> 'SCHEDULED' OR l_start <= p_as_of THEN 27 ② 条件(26〜28行) 予約状態(SCHEDULED)で、開始時刻が 評価時刻より後。満たさなければエラー RAISE_APPLICATION_ERROR(-20004, 'Only future reservations can be cancelled'); 28 END IF; 29 UPDATE publications SET status='CANCELLED' WHERE publication_id=p_publication_id; 30 p_result := 'CANCELLED'; Agentは、このUPDATEを実行しません。条件と効果の説明と、評価SQLとの照合に使います。 31 ③ 効果(29行) STATUSをCANCELLEDにする 既存の取消手続きにない、追加の提案ポリシー 地域・媒体が依頼の範囲か/終了が開始より後か Copyright © 2026, Oracle and/or its affiliates
  30. 付録 付録:構造グラフの、取消手続きの周辺15頂点 構造グラフ PF_CODE_GRAPH_1104。保存したビルドの実データから、取消手続きの周辺を描きました。 代入 列の参照 SQL文 L_STATUS PKG_MEDIA(パッケージ本体) SELECT

    21行 手続き SQLを含む 代入を含む 代入を含む CANCEL_ PUBLICATION 列 STATUS 列を参照 定義を参照 代入 L_START PUBLICATIONS .STATUS 列の参照 列 USE_START 列を参照 定義を参照 PUBLICATIONS(表の参照) PUBLICATIONS .USE_START P_PUBLICATION_ID(引数) P_AS_OF(26行で参照) RAISE_APPLICATION_ERROR(27行) UPDATE 29行 STATUS(29行の列の参照) 説明に使った2経路(各4辺) 同じ手続きの周辺(一部) 32 同じ列を更新するUPDATE ビルド全体:290頂点・308辺 Copyright © 2026, Oracle and/or its affiliates
  31. 付録 付録:保存デモの4件の判定 保存デモ(V5)。今の架空データを、2026年11月2日 12:00 JSTで評価する設定です。 入力(実行した原文) 操作名・内部ID・公開IDは書いていない 「架空番組・海辺の記録」で、登録済みの海外向け公開予定のうち、まだ始まっていないものを取りやめたい。どう対応すればよい? 提案 PUB-002

    海外向け動画配信・本編 公開予約/11/3 09:00開始 提案 PUB-004 海外向けSNS・予告編 公開予約/11/3 08:00開始 維持 PUB-003 国内テレビ放送・本編 放送予約/11/3 20:00開始 対象外 PUB-001 海外向け動画配信・本編 配信中(10/1開始) 全体の判定:提案(PROPOSE) 33 業務の更新 0件/実行した操作 なし 予約状態で、開始前。取消を提案(実行はしない) PROPOSE 同上。媒体の指定がないので、SNSも範囲に入る PROPOSE 海外の指定により範囲外。予定どおり残す PRESERVE_OUTSIDE_SCOPE 配信中は、未開始の予約を取り除く目的の対象外 LIVE_OUTSIDE_RESERVATION_GOAL 評価時刻は設定。過去のDBを復元するものではない Copyright © 2026, Oracle and/or its affiliates
  32. 付録 付録:媒体を限定した例と、現在時刻で評価した例 別の入力で保存した2つの結果です。入力の言い回しが違うため、時刻だけを変えた比較ではありません。 媒体を限定した入力 評価:2026-11-02 12:00 JST(デモの設定) 「架空番組・海辺の記録」の登録済みの海外OTTの公開予定を、公開前のうちに見合わせ たい。必要な対応を提案して。 評価:2026-11-05

    06:09 JST(実行した時刻) 「架空番組・海辺の記録」の、現在登録されている海外の公開予定を、公開前のうちに出さ ないようにしたい。国内はそのままで、必要な対応を提案して。 ✓ 意味グラフで、取消の候補は見つかった OTT=海外向け動画配信 34 現在時刻で評価した入力 提案 PUB-002 海外向け動画配信 保留 PUB-002 予約状態のまま開始時刻を過ぎた 維持 PUB-004 SNSは範囲外 保留 PUB-004 同上 維持 PUB-003 国内 維持 PUB-003 国内 対象外 PUB-001 配信中 対象外 PUB-001 配信中 Copyright © 2026, Oracle and/or its affiliates
  33. 付録 付録:答えに要る5つのことと、DBの仕組み p.47の①〜⑤それぞれに、DBの中でやることを割り当てます。 答えに要ること(p.47) DBでやること 使う機能 ① 漏れなく数える 素材の全利用を、固定のSQLで調べる ②

    目的に合う操作を選ぶ 操作・効果・目的を意味グラフにし、日本語から検索する SQL Property Graph・Select AI ③ 今の条件で確かめる 今の行を、既存の取消手続きと同じ条件のSQLで評価する SQL・PL/SQL ④ 理由を既存の取消手続きで示す PL/SQLの中の列の読み書きを、構造グラフにしておく PL/Scope・辞書 ⑤ 変わる範囲を先に見る 提案を仮に当て、残る予約を数える SQL・PL/SQL SQL ①〜⑤のどれも、モデルの推測には任せない。モデルに任せるのは、依頼を項目に分けることと、検索SQLを作ることだけ(p.49)。 35 Copyright © 2026, Oracle and/or its affiliates
  34. 付録 付録:探索・実行・本番運用での今回の範囲(詳細) 今回のPoCを、探索・実行・本番運用の3つに当てはめます。 今回できたこと 次に必要なこと 測るもの 探索 素材名と目的から、取消の候補と 全利用を探す(限定した日本語) 操作を増やす。言い換え・略称へ

    の対応。行・列の権限 対象の取りこぼし・対象外の混入 根拠の正確さ 実行 提案まで。提案前に条件、仮に当てた 後に範囲を確認。業務の更新は0件 実行の認可、直前の再確認、 競合・重複の防止、外部の完了確認 重複実行・整合性違反の件数 障害後の復旧の成否 本番運用 定義・ソースの版とデータを照合し、 変わっていれば止める 最終版での全ケースの再試験、 反復の安定性、負荷と応答時間 p95/p99の応答時間 生成回数と費用・業務への影響 試験は、部品・検査器・日本語の事前固定ケースを、版ごとに分けて記録している。 36 Copyright © 2026, Oracle and/or its affiliates
  35. 付録 付録:Oracleの機能と、今回得たもの p.25の表を、元のデータと得たもので詳しく示します。 Oracleの機能 元のデータ 今回、具体的に得たもの 判断で何に使うか PL/Scope コンパイル時の 識別子・SQL文

    取消処理のSELECT(21行)、L_STATUS・ L_STARTへの代入、STATUS・USE_STARTの参照 説明の根拠を 既存の取消手続きへ戻す 辞書・USER_SOURCE 列・手続きの定義、 ソース PUBLICATIONSの列の定義、 取消手続きの21〜30行の原文 条件と効果の 原文を示す SQL Property Graph GRAPH_TABLE 頂点・辺の表 構造グラフ(2026-11-04時点 290頂点・308辺)、 意味グラフ(操作→効果→目的) 候補を探す、 経路をたどる Select AI (Autonomous Database) グラフの定義、 日本語の原文 GRAPH_TABLEを含む検索SQL (SHOWSQLで受け取り、検査してから実行) 目的に合う 操作の候補 SQL・PL/SQL・SQL/JSON 業務の行 (素材・公開予約) 4件の評価、範囲内の予約 仮適用前2件→後0件 提案・保留・ 維持の判定 DBMS_METADATA グラフ・表の定義 出力設定を固定して取得した定義の ハッシュ 定義が変わったら 止める 37 Copyright © 2026, Oracle and/or its affiliates
  36. 付録 付録:仕事ごとの、Oracleが担った部分と自分たちが保守する部分 今回の一つの処理経路を、仕事ごとに分けて示します。開発工数を比べた実験ではありません。 必要な仕事 使った機能 Oracleに任せられたこと 自分たちで保守するもの 元の処理を調べる PL/Scope・辞書・ USER_SOURCE

    識別子・SQL文・位置をコンパイラから取得。 PL/SQLの構文解析器を作らずに済んだ 収集の設定、投影SQL、 意味と説明の対応 関係を公開し、たどる SQL Property Graph・ GRAPH_TABLE 別のグラフサーバーを置かず、 DBの中で経路をたどる 頂点・辺のモデル、 投影表の更新と版 自然言語から候補を探す Select AI (Autonomous Database) グラフの定義をモデルに渡し、 検索SQLを作る 業務の語彙、SQLの骨格、 文法の検査 今の条件を確かめる SQL・PL/SQL・ SQL/JSON 日時・状態・集合の比較をDBの中で。 条件の評価をアプリへ移さずに済んだ 評価SQL、範囲のポリシー、 処理の制御 出典と版を確かめる USER_SOURCE・ DBMS_METADATA DBが持つソースと定義を、 そのまま取得 ハッシュ、説明の対応、 再検証と再公開 幅 調べる→つなぐ→探す→確かめる→出典、を一つの経路に 深さ 1件の提案を、既存の取消手続きと今の値まで(p.21) 他のDBにも、依存情報・グラフ・自然言語検索の機能や拡張がある(付録 p.42)。今回は、Oracleにある業務処理から出発して、この5つをつないだ。 38 Copyright © 2026, Oracle and/or its affiliates
  37. 付録 付録:構築時の流れ(構造と意味) 知識を作るとき(構築時)の流れです。照会のたびに作り直すものではありません。 コードの構造 Oracleから取得 元の業務PL/SQL PL/Scope・辞書 PKG_MEDIAの手続き USER_IDENTIFIERS USER_STATEMENTS・

    USER_SOURCE コンパイル時に収集 業務の意味 定義して検証 Oracleの標準機能 PF_CODE_GRAPH_1104 手続き→SQL→代入→列 固定SQLで頂点・辺へ 業務仕様 操作・効果・目的の表 操作の説明・効果・ 目的・適用範囲 目的と効果の対応を 版付きで登録 版付きで登録 構造グラフ 検証して公開 ・既存の取消手続きとの対応 ・評価SQL(今の行に当てる) ・説明と原文の対応 ・版とハッシュ 意味グラフ PF6_SEARCH_GRAPH 操作→効果→目的 照会で使う: 2つのグラフ・評価SQL・根拠API SQL Property Graph 自分たちで作り、保守する 業務PL/SQL・業務定義・評価SQLは、検証用に用意した架空のサンプル。照会のたびに人やAIが手で加工する処理はない。 39 Copyright © 2026, Oracle and/or its affiliates
  38. 付録 付録:照会時の8段 依頼を受けてから返すまでの8段です(照会時)。入口は PF6_OPERATION_AGENT_V5。 1 依頼を15項目に分ける 2 目的・素材・地域・媒体など。 操作は選ばない DBMS_VECTOR_CHAIN

    5 「」内の正式名で完全一致。 媒体・状態で先に絞らない 原文と照合 根拠を取消手続きまでたどる 手続き→SQL→代入→列と、 元のソース USER_SOURCE 返すもの 提案 固定SQL 6 構造グラフ 根拠API 保留 検索SQLを作る 4 7 GRAPH_TABLE 8 依頼全体の範囲を確かめる 提案を仮に当てた後に残る 予約と、対象外の維持 評価SQL + 出典付きの説明 DBの中(SQL・PL/SQL) 意味グラフ 文法の検査 照合し直して返す 定義・ソース・対象データの 版を確かめ直す 固定SQL 確認要求 SQLを検査し、候補を得る 許す文法だけを通して実行 Select AI 今の行で条件を評価する 対応不要 3 日本語の原文をそのまま渡す 予約状態か、開始前か (既存の評価SQL) 外部のモデル(OCI Generative AI) 40 素材を探し、全利用を調べる DBMS_METADATA Oracleの標準機能 照合 自分たちで作り、保守 1回の依頼でモデル生成は最大2回、自動の再試行なし Copyright © 2026, Oracle and/or its affiliates
  39. 付録 付録:新規利用の禁止と予約の取消の違い 同じDBに「新規利用の禁止」と「予約の取消」があります。効果と範囲が違います。 新規利用の禁止 RESTRICT_ASSET 予約の取消 CANCEL_PUBLICATION 効果 MEDIA_ASSETS.NEW_USE_ALLOWED →

    'N' 効果 PUBLICATIONS.STATUS → 'CANCELLED' 範囲 素材1件。理由の入力が必要 範囲 指定した予約1件。予約状態で、開始前のときだけ 11月2日 12:00の時点で、既存の4つの利用は 11月2日 12:00の時点で、既存の4つの利用は PUB-001 そのまま PUB-001 取り消せない(配信中) PUB-002 そのまま PUB-002 取り消せる PUB-003 そのまま PUB-003 取り消せる PUB-004 そのまま PUB-004 取り消せる 新しい利用の登録 止まる(国内も) どれに使うか 依頼の範囲で決める 効果の違いを説明する例です。今回のAgentが二つの操作を比べて選んだ実験ではありません(公開している操作は予約の取消だけ)。 41 Copyright © 2026, Oracle and/or its affiliates
  40. 付録 付録:他のDBにも、この仕組みを支える機能や拡張がある 本編では今回のOracle構成を選んだ理由だけを話しました。比較の材料をここに置きます。 選択肢 他の製品側にあるもの 今回のOracle構成との違いとして言えること PostgreSQL系 本体の依存管理(本文の書き方で挙動が違う)、 plpgsql_check(検査・依存の取得)、 Apache

    AGE(DB内グラフ) 拡張を組み合わせる経路がある。 拡張の対応版と、出力の粒度は別に確認が要る (今回は検証していない) SQL Server 2025系 手続き本文、列の参照・更新の情報、 SQL Graph、ScriptDOM(位置つきの構文木) PL/Scopeの出現ごとの位置・文脈とは、 取得の経路と粒度が違う。自然言語の機能は SSMS・Fabricなど製品の境界を確かめる Neo4j+ GraphRAG Python Text2CypherRetriever (自然言語からCypherを作って検索) 業務処理をOracleに残して別に使うなら、既存の取消手続きの 取得・IDの対応・更新管理・今の値の確認を、 両者の間で設計する 2026-11-05に公式資料・開発元資料で確認した構成要素の比較。同じ仕組みを各製品で作って比べた実験ではなく、速度・精度・工数の優劣は示さない。 42 Copyright © 2026, Oracle and/or its affiliates
  41. 付録 AI Agentが賢くなるほど、DBエンジニアリングの重要性は増す 本番では、課題が「何を考えさせるか」から「正しく探し、安全に実行し、保証できるか」へ広がる。 × truth)を “ 各ステップで環境から事実(ground 得ることが重要。自律的に動くほど、誤りが積み重なる。 LLM

    DBエンジニアリング 考える・判断する 事実を扱い、状態と整合性を守る 意図の理解・計画・推論・道具の選択 探索・永続化・権限・トランザクション・性能 本番のAgent = 確率的な判断 × Anthropic「Building effective agents」(2024-12-19) 決定的な制約とデータ管理 × 信頼できる実行基盤 LLMはAgentを賢くする。DBエンジニアリングは、Agentを本番で使えるものにする。 43 Copyright © 2026, Oracle and/or its affiliates
  42. 付録 探索:推論に必要な事実を、正確に・速く・安全に取り出す 単に似た文章を取るのではなく、複数のデータを横断し、最新で信頼できる事実を組み合わせます。 本番のAgentに必要な8つの観点 今回:… 正確性 網羅性 取ったデータが誤りなら、 推論が正しくても誤る ベクトルだけでは、IDの

    一致や数値条件に弱い 顧客→契約→利用→請求の 多段の関係をたどる 昨日の在庫や古い契約では、 今の業務を処理できない 制約・正規化・マスター SQL・全文・ベクトル JOIN・データモデリング CDC・レプリケーション 権限 性能 意味 再現性 他人の機密を、検索で 取ってはいけない Agentは必要に応じて、 何度も検索する amountが売上か税込かを 知らなければ書けない 更新のタイミングで、 同じ質問でも結果が変わる RLS・列の権限・ACL 索引・統計・実行計画 スキーマ・カタログ スナップショット・版 今回:全利用を調査 関係 =このあと見せる範囲 今回:操作・効果・目的 今回:目的と効果を定義 鮮度 今回:定義の版を照合 黄色の4つを、このあとの例で見せます。権限と性能は、今回は扱っていません。 LLMが賢くても、データが間違っていればAgentは間違う。 44 Copyright © 2026, Oracle and/or its affiliates
  43. 付録 実行:AIの判断は確率的でも、業務の制約は決定的に守る Agentにとって、DBは検索先であると同時に実行先。注文・予約・権限変更の誤りは、実世界の副作用になります。 例:在庫が1個の商品を、2つのAgentが同時に注文する Agent A 「在庫あり」 × ◦ 在庫

    1個 実行でDBエンジニアリングが守るもの Agent B 「在庫あり」 今回:… =このあと見せる範囲 トランザクション 同時実行制御 業務ルール 部分的な更新を防ぐ ロック・MVCC・分離 今回:提案前の条件確認 結果の検証 監査 今回:仮に当てた後の範囲確認 誰の指示で何を変えたか 同時実行の制御がない 2件とも確定。在庫1個に注文2件 条件付き更新・ロックがある 1件だけ確保。もう1件は失敗→再試行 UPDATE stock SET qty = qty - 1 WHERE item_id = :id AND qty >= 1; 更新1行=確保 更新0行=在庫なし 両方のAgentが正しく推論しても、DBの制御がなければシステムは正しく動かない。 45 Copyright © 2026, Oracle and/or its affiliates
  44. 付録 本番運用:多数のAgentが動き続けても、破綻させない PoCと本番では、必要なDB設計が大きく変わります。 本番運用でDBエンジニアリングが効くところ 今回:… =このあと見せる範囲 同時アクセス 負荷の分離 低レイテンシ 可用性

    1依頼が多数の検索・更新に 重い探索で業務を遅くしない 逐次の遅延が積み重なる 障害でも状態を失わない コスト 状態と記憶 観測 継続的な変更 無駄な検索はトークンも増やす 履歴・長期記憶・進行中タスク どこで失敗したかを分ける スキーマ移行・段階リリース 今回:1依頼の生成は最大2回 今回:段階と停止の理由を記録 今回:定義が変わると停止 黄色の3つが、今回扱う範囲です。負荷の分離や可用性は、本番に進むときに設計するところです。 Agentが増え、長く動くほど、予測できないDB負荷と、残すべき状態が増える。 46 Copyright © 2026, Oracle and/or its affiliates
  45. 付録 その答えの裏で、確かめていること 吹き出しの一文ごとに、DBの中の別の事実を見ています。 確かめること どこにあるか モデルだけでは ① 対象 海外向けで、まだ始まっていない利用はどれか 公開予約の表(素材の全4件)

    素材の行を見ていない ② 操作 どの操作が合うか(新規利用の禁止か、予約の取消か) 操作の定義と、元のPL/SQL 名前だけでは効果が分からない ③ 条件 今、取り消してよい状態か 今の行(状態・開始時刻) 今の値を知らない ④ 理由 なぜ取り消せると言えるか 元の取消手続きの26〜28行 元のコードを見ていない ⑤ 範囲 取り消すと、何が変わり、何が残るか 素材の予約全体 仮に当てた結果を数えられない ②の2つの操作の効果の違いは付録 p.41。今回のAgentが公開している操作は、予約の取消だけ。 答えに要る事実と規則は、全部DBの中にある。 47 Copyright © 2026, Oracle and/or its affiliates
  46. 付録 既存のPL/SQL手続きは、すでにアクションの形をしている Palantirのアクション型の構成と、架空の業務DBの取消手続きを並べます。対応づけは講演者によるものです。 Palantirのアクション型 パラメータ 提出条件 ルール 書き戻し 取消の手続きでは 架空の業務DBの取消手続き

    PKG_MEDIA.CANCEL_PUBLICATION 21 SELECT status, use_start INTO l_status, l_start FROM publications 実行するときに 受け取る値 引数:公開ID、評価時刻 満たすときだけ 実行できる 26〜28行:満たさなければ エラー -20004 で拒否 オブジェクトの 属性を変える 29行:STATUSを CANCELLEDに変える 元のシステムへ 届ける 要らない:状態を持つ 表そのものを更新 22 WHERE publication_id=p_publication_id FOR UPDATE; 23 IF l_status='CANCELLED' THEN 24 p_result := 'ALREADY_CANCELLED'; RETURN; 25 END IF; 26 IF l_status <> 'SCHEDULED' OR l_start <= p_as_of THEN 27 RAISE_APPLICATION_ERROR(-20004, 'Only future reservations can be cancelled'); 28 END IF; 29 UPDATE publications SET status='CANCELLED' WHERE publication_id=p_publication_id; 30 p_result := 'CANCELLED'; 読む(21〜22行) 条件と拒否(26〜28行) 効果(29行) 呼んでから -20004 で失敗して知るのではなく、呼ぶ前に、理由と範囲が分かる。 動かす材料は、もうDBの中にある。足りないのは、探して確かめる道。 48 Copyright © 2026, Oracle and/or its affiliates
  47. 付録 複雑に見えるのは、間違えてよい所と、いけない所を分けたから 確率的なモデルの判断を、決定的なDBの確認で挟みます。 モデルに任せる(確率的) DBが決める(決定的) 依頼を、目的・素材・地域などの項目に分ける 全件を数える 言い換えを、グラフの条件にする(検索SQL) 今の値を確かめる 既存の取消手続きと同じ条件で評価する

    仮に当てて範囲を見る 定義や版が変われば止める 外れても、DBの検査で止まる 同じデータと時刻なら、同じ判定になる 1回の依頼でモデルを呼ぶのは最大2回(自動の再試行なし)。それ以外は、すべてDBの中のSQL・PL/SQL。 間違えてはいけない所を、モデルに任せない。 49 Copyright © 2026, Oracle and/or its affiliates
  48. 付録 AI Agent の“実行”では、AIと人の「受け渡す場所」が変わる 「動かす」は、どこで人や道具へ仕事を渡すかが変わってきました。 ① 答える ② 道具を呼ぶ ③

    確かめて提案 文章・コード・読み取り専用のSQL ツール・SaaSのAPI・画面操作 業務DBの状態と前提条件を確認 回答・コードを返す ツール・API・画面を使う 今回作った範囲 DBの状態と条件を照合 AI・Agent 根拠付きで渡す 人へ渡す 確認して、自分で操作 承認(構成による) 人 提案と理由を見て判断 例:対象・状態・条件を 確かめ、理由と一緒に返す 道具へ渡す 人の操作で更新 Agentが直接更新 実行(未接続) 業務システム 呼べる道具を増やすだけでなく、対象・状態・条件を確かめて提案する。 50 Copyright © 2026, Oracle and/or its affiliates