0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Select AI から Claude を呼んでみた

0
Posted at

1. はじめに

Oracle Autonomous AI Database(以下 ADB)の Select AI は、LLM のプロバイダに Anthropic(anthropic)を選べます1。手元には、9 月に OCI Generative AI(大阪)の Llama 3.3 70B で作った Select AI Agent があります。「いま一番重い SQL はどれ?」と聞くと、Agent が SQL を書いて実行し、答えを返します。この Agent の LLM を Claude に替えて、Select AI から呼んでみました。

Agent は単独のほか、Supervisor と A2A でも動かしています。Supervisor は、質問の内容に応じて配下の Agent(ワーカー)にタスクを割り当てる Agent です。A2A は Agent どうしが HTTP で呼び合うためのプロトコルで、ADB の Agent のチームを DB の外から呼べます2。あわせて、OML(Oracle Machine Learning)の Data Science Agent(会話で機械学習の分類モデルなどを作る Agent)でも Claude を試しました。

1.1. 結論(先出し)

  • Select AI から Claude を呼ぶには、ACL・資格証明・プロファイルの 3 つを作れば足りる。ただし Claude API の処理場所は global か us しか選べず、表の定義やツールの結果も日本の外で処理される
  • Claude Haiku 4.5・Sonnet 4.6・Opus 4.6 はデフォルトの設定のままで、Opus 4.8 と Fable 5.1 はプロファイルに temperature を 1 と書くと動いた。ほかのバージョン 5 以降のモデルは、2026 年 10 月時点では安定して動かなかった(8 章)
  • Data Science Agent は、ドキュメントの推奨表にある Opus 5.5 では会話が失敗したが、Opus 4.8 では分類モデルの学習と評価まで進んだ
  • Agent では、9 月の記事でつまずいた 2 点(結果が大きすぎて HTTP 400、tools に入れていないツールの呼び出し)は Claude では起きなかった。ただし、返す行数に制限が付くかは聞き方で変わった。Supervisor 経由で呼び出しが増えることと、聞き返しても A2A の状態が completed になることは、Opus 4.8 と Haiku 4.5 で同じだった

1.2. 検証ゴール

# 確かめること 確認できれば OK の条件
1 Select AI から Claude を呼べるか、モデルごとに必要な設定は何か モデルごとに「そのまま動く/設定を足せば動く/動かない」とエラー文を並べられる
2 Select AI Agent の LLM を Claude にすると、9 月につまずいた点はどうなるか Claude での振る舞いと、Opus 4.8 と Haiku 4.5 で共通する点を分けて書ける

LLM の振る舞いは、同じ質問でも回ごとに変わります。5 章の Agent は原則 3 回ずつ(一部は 1 回)、8 章のモデルの試験は 1〜5 回しか実行していないので、モデルの振る舞いは回数を添えた観測として書き、モデルの優劣は比べません。

2. 検証環境

項目 内容
DB ADB(Always Free・1 OCPU・Oracle AI Database 26ai 23.26.3.3.0・東京)
スキーマ DBA_COPILOT(9 月に作った Agent・タスク・チーム・ツールがある)
LLM Anthropic の Claude API(provider anthropic)。主に claude-opus-4-8(以下 Opus 4.8)と claude-haiku-4-5-20251001(以下 Haiku 4.5)
プロファイル max_tokens 1024、temperature 1、object_list は上位 50 行に絞ったビュー V_TOP_SQLAREA
API キー この検証専用に発行したキー(Default Workspace に限定)

Claude API で推論を処理する場所(inference_geo)に選べるのは、global(デフォルト。利用できるいずれかの地域で処理される)と us の 2 つだけで、2026 年 10 月時点で日本の地域はありません3。2026 年 10 月時点の DBMS_CLOUD_AI のドキュメントでは、プロファイルの属性にこれを指定するものは見当たりません(region は OCI と AWS 用)1。今回の呼び出しも global で処理されたと考えられます。us に固定したいだけなら、Console のワークスペースの設定(default_inference_geo)で固定できます(料金は 1.1 倍)3。

日本の外に出るのは質問文だけではありません。SQL を作るときは、スキーマの定義や表・列のコメントもプロンプトに足して送られます。表の中身は送りませんが、narrate では問い合わせの結果も LLM に渡す、と書かれています4。Agent でも、ツールの結果(今回なら V$SQL から取った SQL 文など)が LLM に渡ると考えられます。Amazon Bedrock には、Claude を東京と大阪の間だけで処理するクロスリージョン推論(jp. で始まる推論プロファイル)があり、2026 年 10 月時点で東京リージョンから Haiku 4.5・Sonnet 4.5・Sonnet 4.6・Opus 4.7・Opus 4.8・Opus 5.5・Haiku 5.5 の 7 つを選べます5。ただし、Select AI のモデル一覧で provider aws に載っているのは Llama と Titan だけで4、Select AI から Bedrock の Claude を呼べるかは確かめていません。

3. Select AI から Claude につなぐ

3.1. API キー

キーは DB の中に資格証明として保存されます。ほかの用途のキーと分けておけば、このキーだけを止めたり消したりできるので、Anthropic の Console でこの検証専用のキーを作り、スコープを Default Workspace に限定しました。ワークスペースに限定しないキーは、ワークスペースやメンバーを管理する Admin API でも受け付けられます6。

3.2. ACL・資格証明・プロファイル

api.anthropic.com への HTTP 接続を許可する ACL を、ADMIN ユーザーで追加します7。

-- ADMIN で実行: DBA_COPILOT から api.anthropic.com への HTTP を許可する
BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host => 'api.anthropic.com',
    ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                        principal_name => 'DBA_COPILOT',
                        principal_type => xs_acl.ptype_db));
END;
/

資格証明は、プロファイルを作るスキーマ(DBA_COPILOT)に作ります。ユーザー名は任意で、パスワードに API キーを入れます1。

-- DBA_COPILOT で実行: API キーを資格証明にする
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'ANTHROPIC_CRED',
    username        => 'ANTHROPIC',
    password        => '<API キー>');
END;
/

プロファイルは provider を anthropic にして、9 月の Llama 用のプロファイルと同じ object_list・max_tokens にしました。temperature を 1 にした理由は 4.2 章で書きます。

-- DBA_COPILOT で実行: Claude 用のプロファイル
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'CLAUDE_PROFILE',
    attributes   => '{
      "provider": "anthropic",
      "credential_name": "ANTHROPIC_CRED",
      "model": "claude-opus-4-8",
      "temperature": 1,
      "max_tokens": 1024,
      "object_list": [{"owner": "DBA_COPILOT", "name": "V_TOP_SQLAREA"}]
    }');
END;
/

4. Claude のモデルを選ぶ

4.1. モデルごとの動作

DBMS_CLOUD_AI.GENERATE の 2 つのアクション、chat(LLM の応答をそのまま返す)と showsql(自然言語から作った SQL を返すだけで、実行はしない)で、モデル名だけを替えて試しました。名前のバージョンが 5 以降のモデル(Fable 5・Fable 5.1・Sonnet 5.5・Haiku 5.5・Opus 5.5。以下 5 系)も含めています。モデルごとの回数と結果は 8 章(付録)に置きました。

結果 モデル
デフォルトの設定のままで動いた claude-haiku-4-5-20251001、claude-sonnet-4-6・claude-opus-4-6(この 2 つは chat を 1 回確かめただけ。Sonnet 4.6 は Supervisor では失敗した。8.3 章)
temperature を 1 にすると動いた claude-opus-4-8、claude-fable-5-1(6 回とも成功)
temperature を 1 にしても、回によって成功と失敗に分かれた、または動かなかった claude-fable-5・claude-sonnet-5-5・claude-haiku-5-5・claude-opus-5-5

Select AI の公式のモデル一覧にある claude-fable-5 も、安定しては動きませんでした。

Opus 4.8 と 5 系のモデルは、temperature を書かないと次のエラーになりました。エラーは DBMS_CLOUD_AI パッケージの中から返っています。

ORA-20400: Request failed with status HTTP 400 - https://api.anthropic.com/v1/messages
Error response - {"type":"error","error":{"type":"invalid_request_error","message":"`temperature` is deprecated for this model."}, ...}
ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD_AI", line 28314

4.2. プロファイルの temperature の設定

Anthropic の移行ガイドには、Opus 4.7 以降のモデルに temperature・top_p・top_k のデフォルト値以外を送ると 400 を返す、と書かれています8。デフォルト値の 1 なら受け付けます。今回試した 5 系のモデルも、同じ 400 になりました。

プロファイルに temperature を書かなくても 400 になったので、Select AI は temperature を付けて送っています(送っている値は DB の側からは見えませんでした)。プロファイルから temperature を消そうとして DBMS_CLOUD_AI.SET_ATTRIBUTE に NULL や空文字を渡すと、ORA-20046: Missing value for profile attribute - temperature で拒否されます。Opus 4.8 と 5 系のモデルを使うには、プロファイルに temperature を 1 と書きます。ただし 5 系には、1 にしても安定しないモデルがありました(8.2 章)。

4.3. Data Science Agent は Claude Opus 4.8 で分類モデルの評価まで進んだ

Data Science Agent のドキュメントには、プロバイダごとの推奨モデルの表(以下 推奨表)があり、Anthropic の推奨モデルとして claude-opus-5-5 が書かれています9。同じページに載っている OpenAI と OCI のプロファイルの例(temperature 1・max_tokens 8192)に合わせて、claude-opus-5-5 のプロファイル(DSA_CLAUDE)を作り、OML の画面で新しい会話に選びました。

プロファイルを選んだ時点で「Model is not recommended.」と表示されました。一方、画面の Test ボタンを押すと「AI profile test succeeded」になりました(図 1)。

図 1: 新しい会話の作成画面で DSA_CLAUDE を選び、Test を押したところ

図 1: 新しい会話の作成画面で DSA_CLAUDE を選び、Test を押したところ

この会話で「DSA_CUSTOMERS の列と行数を教えて」と送ると、次のエラーで終わり、会話は読み取り専用になりました(図 2)。会話を処理したスケジューラのジョブの実行時間は 2 分 41 秒で、ジョブ自体の状態は SUCCEEDED でした。

ORA-20053: Job DATA_SCIENCE_AGENT_TEAM_TASK_0 failed: ORA-20051: Task Order 0 failed with error: Task failed: Maximum total iterations reached without completion.

図 2: エラーで終わった会話。エラーの詳細を開いたところ

図 2: エラーで終わった会話。エラーの詳細を開いたところ

エラー文からは、Agent が処理を繰り返せる回数の上限に達したと読めます。8.2 章と同じく本文の無い応答が返り、次の処理に進めないまま上限まで繰り返したと考えられます(呼び出しの回数は確かめていません)。

次に、Select AI で安定して動いた claude-opus-4-8 を指定し、同じ設定(temperature 1・max_tokens 8192)でプロファイルを作って、新しい会話で試しました。画面で見た限り、こちらは「Model is not recommended.」の表示が出ませんでした。「DSA_CUSTOMERS の列と行数を教えて」には、4,400 行・21 列と列の一覧を返しています(図 3)。

図 3: Claude Opus 4.8 のプロファイルで、表の行数と列を答えたところ

図 3: Claude Opus 4.8 のプロファイルで、表の行数と列を答えたところ

続けて「AFFINITY_CARD を予測する分類モデルを作って、評価結果を教えて」と送りました。Agent は進め方(特徴量の選び方とデータの分け方、重視する評価指標)について 2 回確認を求めました。提案どおりに進めるよう返答すると、7 つのアルゴリズムを比べ、F1(評価指標の 1 つ。下の表で説明します)が最も高い Naive Bayes の分類モデルを作りました。会話全体では、最初の質問を含めて送信が 4 回、時間は私が返答を書いた時間も含めて約 4 分半です。テストデータでの評価は次のとおりでした。どの指標も 0〜1 の値で、1 に近いほど良い値です。表の「正例」は AFFINITY_CARD が 1 の顧客、「負例」は 0 の顧客を指します。

指標 値 意味
AUC(Area Under the Curve) 0.875 ROC 曲線の下の面積。予測の確からしさの順に並べたとき、正例を負例より上に置けている度合い。0.5 は当てずっぽうと同じ
F1 スコア(F 値) 0.652 略語ではなく、F 値のうち適合率と再現率を同じ重みで扱うものを F1 と呼ぶ。適合率と再現率の調和平均。片方だけ高くても値は上がらない
適合率(Precision) 0.535 正例と予測したもののうち、実際に正例だった割合
再現率(Recall) 0.836 実際の正例のうち、正例と予測できた割合

5. Select AI Agent で使う

ここからは、プロファイルのモデルを Opus 4.8 と Haiku 4.5 に切り替えて、9 月に作った Agent を動かしました。Agent・タスク・チームは 9 月のものを名前だけ変えて複製しています。

自然言語から SQL を作って実行するツール(SQL_TOOL など)は、関数の中でプロファイル名を設定用の表から読み取っています。ツールの中の SQL 生成も Claude で行うように、ツールと設定も Claude 用に複製しました。

5.1. 9 月の記事でつまずいた 2 点

9 月の記事でつまずいたのは 2 点です。1 つは、「いま一番重い SQL はどれ?」と聞くと Agent が V$SQL を行数の制限なしで読む SQL を書き、ツールの結果が約 40 万文字になって HTTP 400 で失敗したことです。もう 1 つは、タスクの tools 属性に入れていないツールでも、指示文にツール名を書くと LLM がそのツールを呼び、Select AI もそれを実行したことです。この 2 点が、LLM を Claude にするとどうなるかを試しました。

5.1.1. Claude が書く SQL に行数の制限が付くかは聞き方で変わった

9 月の記事では、1 つ目の HTTP 400 のあと、上位 50 行だけを返すビューを作り、Agent が参照できる表をそれだけにしています。

ビューで絞る前の条件(object_list に V$SQL など 5 つを指定したプロファイル)に戻して、Claude に showsql で SQL を作らせました。

質問 Opus 4.8(各 3 回) Haiku 4.5
いま一番重い SQL はどれ? 3 回とも FETCH FIRST 1 ROWS ONLY を付けた 3 回とも FETCH FIRST を付けた
重い SQL を一覧で見せて 3 回とも行数の制限なし(ORDER BY だけ) 試していない

showsql で行数を絞っていた「いま一番重い SQL はどれ?」は、同じ条件で Agent に実行させました。Opus 4.8 は 3 回とも成功し、ツールへの依頼は 1 回が「上位 5 件」、2 回が「1 件」でした。Haiku 4.5 も 1 回試して成功しました。同じ Opus 4.8 でも「一覧で」と聞いた SQL には制限が付かなかったので、聞き方によっては 9 月と同じ失敗になる可能性があります。

5.1.2. tools に入れていないツールは呼ばれるか

Select AI Agent のタスクには、使わせるツールを tools 属性で並べます。9 月に Supervisor を試した記事では、tools に CHECK_TABLE_STATS_TOOL だけを入れたタスクの指示文(instruction)に「重い SQL は SQL_TOOL で調べよ」と書くと、LLM が SQL_TOOL を呼び、Select AI もそのまま実行しました10。

同じタスクを Claude で動かしました。Agent 側の属性には tools を設定していません(profile_name と role だけ)。

指示文 Opus 4.8(各 3 回) Haiku 4.5(各 3 回)
「重い SQL は SQL_TOOL で調べよ」 SQL_TOOL を呼ばず、「使えるのは CHECK_TABLE_STATS_TOOL と ORA$HUMAN_TOOL だけ」と返した SQL_TOOL を呼ばず、ユーザーにクエリの実行を求めるか、ツールが無いと返した(状態は WAITING_FOR_HUMAN)
「必ず最初に SQL_TOOL を呼べ」 SQL_TOOL を呼ばなかった SQL_TOOL を呼ばなかった

LLM が tools に無いツールを呼んだ場合に Select AI がそれを実行することは、9 月の記事で確かめています10。Claude で SQL_TOOL が実行されなかったのは、Select AI が止めたからではなく、Claude の応答に SQL_TOOL の呼び出しが含まれていなかったためです。

5.2. Supervisor と A2A を通したとき

9 月と同じく、Supervisor の配下に、Top SQL を調べるワーカーと、表の統計が古くないかを調べるワーカーの 2 つを置きました。このチームに Supervisor 経由や A2A で質問したときの振る舞いを、Opus 4.8 と Haiku 4.5 で違ったことと同じだったことに分けて書きます。

5.2.1. Claude Opus 4.8 と Claude Haiku 4.5 で違ったこと

ワーカー 2 つが必要な質問は、ビューの 1 位が表を参照する SQL になるように、重い SELECT を実行してから質問しています。

質問 Opus 4.8 Haiku 4.5
一番重い SQL が参照している表の統計は古くない? 3 回とも 2 つのワーカーにタスクを割り当てた。統計が古いかの判定まで進んだのは 1 回。残り 2 回は、監視用の SQL を最も重い SQL として選んで表が見つからなかった回と、統計のワーカーがスキーマ名を聞き返した回 6 回(同じ条件で 3 回ずつ 2 組)とも、ワーカーに割り当てず Supervisor がどの SQL・どの表かを聞き返した
SQL_ID を指定した同じ質問 1 回試し、2 つのワーカーに割り当てて「統計は古くない」と返した 3 回とも「スキーマ名と表名を教えて」と聞き返した
明日の東京の天気を教えて(範囲外) 3 回ともワーカーに一度割り当て、理由を添えて対応できないと返した(状態は SUCCEEDED) 3 回ともワーカーに割り当てず、Supervisor が対応できないと返した(状態は WAITING_FOR_HUMAN)

Opus 4.8 はワーカーに割り当てて調べるところまで進め、Haiku 4.5 は Supervisor の段階で聞き返しました。Haiku 4.5 は聞き返した時点で終わるので、統計の判定までは進んでいません。

範囲外の質問では、Opus 4.8 の Supervisor が 3 回とも、ワーカーに「WEBSEARCH ツールで天気予報を取得して」と指示していました。ワーカーのタスクの指示文(9 月のものをそのまま複製)には「外部の情報は WEBSEARCH で取る」と書かれていますが、tools には入っていません。ワーカーは 3 回とも WEBSEARCH を呼ばず、利用できないと返しました。指示文に書いたツール名は、tools に入れていなくても Supervisor の判断材料になっていました。

5.2.2. Claude Opus 4.8 と Claude Haiku 4.5 で同じだったこと

Supervisor を経由すると、LLM の呼び出しが増えます。会話ビュー(USER_CLOUD_AI_CONVERSATION_PROMPTS)の応答の行で数えると、ワーカー 1 つで済む「いま一番重い SQL はどれ?」は次のとおりでした。ツールの中で SQL を作る呼び出しは会話ビューに出ないので11、実際の呼び出しはこれより多くなります。

経路 Opus 4.8(3 回) Haiku 4.5(3 回)
ワーカーのチームに直接 2 回 2 回
Supervisor 経由 4〜5 回 4〜5 回(聞き返して終わった 1 回の試行では 1 回)

Supervisor の振り分けとまとめで 2〜3 回増える点は、Opus 4.8 と Haiku 4.5 で同じでした。

表名を省いて「統計が古い表はある?」と A2A で聞くと、Opus 4.8 も Haiku 4.5 も 3 回とも表名を聞き返しました。このとき、DB の外から見た A2A のタスクの状態は completed、DB の履歴(USER_AI_AGENT_TEAM_HISTORY)は WAITING_FOR_HUMAN で、両者の状態は一致しませんでした。

6. 考察

6.1. LLM の応答に頼らず DB の側で決めておくこと

  • 9 月の記事でつまずいた 2 点は Claude では起きなかったが、どちらも LLM の応答によって避けられただけである
  • 「一覧で」と聞くと Opus 4.8 も行数を絞らなかった。tools に無いツールも、LLM が呼べば Select AI は実行する(9 月の記事)
  • 外から A2A で呼ぶ側は、A2A の状態だけでは聞き返されたことが分からず、DB の履歴まで見る必要がある

返す行数は、ビューで決めておけばモデルや聞き方に左右されません。tools 属性だけではツールの実行が止まらないので、Agent に実行させたくないツールは、その Agent と同じスキーマに置かないほうがよいと考えられます(別のスキーマに置いたり実行権限を与えなかったりした場合に止まるかは、今回は確かめていません)。

6.2. 新しいモデルは推奨表にあっても試してから使う

  • Select AI のモデル一覧4に無い claude-opus-5-5 が、Data Science Agent の推奨表9にはある。OML の画面は、推奨表にある Opus 5.5 に「Model is not recommended.」と表示し、推奨表に無い Opus 4.8 には表示しなかった
  • 一覧にある claude-fable-5 も、temperature を 1 にして回によって成功と失敗に分かれた(8.2 章)
  • 5 系の空の応答と ORA-22275 は、応答の先頭に来る thinking ブロック(応答の前の推論の部分)を Select AI が読めていないためと考えられる。ただし、同じく thinking が常に有効な Fable 5.1 は 6 回とも成功しており、この仮説だけでは Opus 5.5 との差を説明できない(Select AI の内部は見えないので未検証)

推奨表のページにも「推奨モデルは変わることがあるので、プロバイダの一覧を確かめること」という趣旨の注記があります9。新しいモデルは、使う前に chat と showsql を数回試してから使います。

6.3. Anthropic の API の仕様が変わったときに利用者が変えられる範囲

  • エラーは DB の中のパッケージから返っていた。HTTP 400 は C##CLOUD$SERVICE.DBMS_CLOUD_AI の中から(4.1 章)、Data Science Agent のエラーは PL/SQL パッケージ DBMS_CLOUD_AI_AGENT から(図 2)返っている
  • Select AI は、Anthropic に送るリクエストの JSON を DB の中の PL/SQL で作り、応答の JSON も決まった位置から本文を取り出していると考えられる。その場合、temperature の扱いや応答の並び(thinking ブロック)のように Anthropic の API の仕様が変わると、Oracle がパッケージを直すまで、利用者が変えられるのはプロファイルの設定だけになると考えられる

7. まとめ

  • Select AI から Claude を呼ぶには、ACL・資格証明・プロファイルの 3 つを作る。Opus 4.8 と 5 系のモデルを使うなら、プロファイルに temperature を 1 と書く。推論は日本の外(global か us)で行われ、表の定義やツールの結果も送られる
  • 5 系のうち、2026 年 10 月時点で temperature を 1 にして 6 回とも動いたのは Fable 5.1 だけだった。新しいモデルは、一覧や推奨表にあっても chat と showsql を数回試してから使う
  • Data Science Agent は Opus 5.5 では失敗し、Opus 4.8 では分類モデルの評価まで進んだ
  • 9 月の記事でつまずいた点は Claude では起きなかったが、返す行数は聞き方で変わった。返す行数はビューで決めておく。Supervisor 経由の呼び出しの増え方と A2A の状態の不一致は、Opus 4.8 と Haiku 4.5 で同じだった

8. 付録: モデルごとの試験結果

8.1. chat と showsql の結果

4.1 章と同じ方法で試した結果です。Select AI の公式のモデル一覧(2026 年 10 月 11 日時点)にある Anthropic のモデルは claude-fable-5・claude-opus-4-8・claude-opus-4-6(デフォルト)・claude-sonnet-4-6・claude-haiku-4-5-20251001 です4。一覧に無いモデル(claude-fable-5-1・claude-opus-5-5・claude-sonnet-5-5・claude-haiku-5-512)も試しています。

モデル temperature を書かない temperature を 1 にする
claude-haiku-4-5-20251001 chat・showsql とも動く 動く(5 章の測定はこの設定)
claude-sonnet-4-6 chat は動く(1 回) chat は試していない。Supervisor では 3 回とも ORA-40441(8.3 章)
claude-opus-4-6 chat は動く(1 回) 試していない
claude-opus-4-8 HTTP 400 chat・showsql とも動く
claude-fable-5 HTTP 400 chat は 2 回とも空の応答、showsql は 4 回中 1 回だけ成功(ほかは ORA-22275)
claude-fable-5-1(一覧に無い) HTTP 400 chat 2 回・showsql 4 回とも動く
claude-sonnet-5-5(一覧に無い) HTTP 400 chat は 2 回とも動く、showsql は 4 回中 2 回成功(ほかは ORA-22275)
claude-haiku-5-5(一覧に無い) HTTP 400 chat は 2 回とも動く、showsql は 4 回とも ORA-22275
claude-opus-5-5(一覧に無い) HTTP 400 chat は 3 回とも空の応答、showsql は 5 回とも ORA-22275

showsql は max_tokens を 1024・4096・8192 に変えて試した回を含みます。HTTP 400 のときのエラーは、どのモデルも 4.1 章のものと同じでした。

8.2. temperature を 1 にしても 5 系は回によって成功と失敗に分かれた

5 系のモデルは、temperature を 1 にすると HTTP のエラーは消えますが、空の応答(chat の戻り値が NULL)になったり、showsql が ORA-22275: invalid LOB locator specified になったりしました。同じモデル・同じ設定でも、Sonnet 5.5 と Fable 5 の showsql は回によって成功と失敗に分かれました。max_tokens を 8192 にしても、Opus 5.5 は chat・showsql とも、Haiku 5.5 は showsql が失敗し、Fable 5.1 は試した回すべてで動いています。

移行ガイドには、Opus 5.5 は常に thinking(応答の前の推論)を行い、応答の先頭に thinking ブロックが来ること、content[0].text のように位置で本文を読むコードでは本文を取り出せなくなることが書かれています8。モデルの一覧では、5 系の Sonnet と Haiku の thinking は「Adaptive」で、推論にどれだけ使うかをモデルが決めます12。回によって成功と失敗に分かれたのは、応答の先頭に thinking ブロックが来た回だけ、Select AI が本文を取り出せなかったためと考えられます。ただし、同じく thinking が常に有効な Fable 5.1 は 6 回とも成功しており、この説明だけでは Opus 5.5 との差は説明できません。Select AI が応答をどう読んでいるかは見えないので、確かめてはいません。max_tokens を 8192 にしても失敗したモデルがあるので、thinking だけで上限を使い切ったという説明は当てはまりにくいと考えられます。

8.3. Claude Sonnet 4.6 は Supervisor にすると失敗した

claude-sonnet-4-6 は chat では動きましたが、Supervisor 付きのチーム(5.2.1 章)の Supervisor にすると、3 回とも次のエラーで失敗しました。このときのプロファイルは temperature 1 で、max_tokens を 4096 に上げても同じでした。

Task failed: ORA-40441: JSON syntax error

会話ビューにはプロンプトの行だけがあり、応答の行はありませんでした。Supervisor の応答を Select AI が JSON として読む段階で失敗していると考えられますが、何が返っていたかは確かめられていません。

参考

  1. DBMS_CLOUD_AI Package(provider の一覧、プロファイルの属性、資格証明のユーザー名・パスワードの扱い。日本語版は provider の一覧の訳が崩れているため英語版を参照) ↩ ↩2 ↩3

  2. Autonomous AI Database の A2A Server を DB の中から見てみた(2026-09-23 公開) ↩

  3. データレジデンシー(Claude Docs。inference_geo は global と us の 2 つだけ。ワークスペースの default_inference_geo と料金) ↩ ↩2

  4. About Select AI(プロバイダごとのモデル一覧と、Prompt Augmentation Data の節。日本語版は Anthropic のモデル一覧が古く、claude-opus-4-8 などが載っていないため英語版を参照) ↩ ↩2 ↩3 ↩4

  5. Supported Regions and models for inference profiles(Amazon Bedrock ユーザーガイド。使える推論プロファイルは送信元のリージョンで ListInferenceProfiles を呼んで確かめる、とある。7 つのモデルは 2026 年 10 月 12 日に東京リージョンで呼んだ結果で、宛先はいずれも東京と大阪) ↩

  6. ワークスペース(Claude Docs。API キーのスコープと Admin API) ↩

  7. AI プロファイルの管理(ACL に追加するホストの一覧) ↩

  8. Claude Opus 5.5移行ガイド(Claude Docs。Opus 4.7 以降の sampling parameters の扱いと、Opus 5.5 の thinking ブロック) ↩ ↩2

  9. Create AI Credential and Profile(Data Science Agent User's Guide。プロバイダごとの推奨モデルの表と、OpenAI・OCI のプロファイルの例) ↩ ↩2 ↩3

  10. Oracle Autonomous AI Database の Select AI Supervisor Agent を試してみた(2026-09-09 公開。5 章で tools 属性の実験) ↩ ↩2

  11. Select AI Agent の実行は New Relic と Datadog でどう見えるか試してみた(2026-09-28 公開。トレースの HTTP 待機区間と会話ビューの応答行の数の違い) ↩

  12. モデル概要(Claude Docs。各モデルの API の ID と thinking の種類) ↩ ↩2

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?