はじめに
AIエージェント元年と呼ばれた2025年に、なんかエージェントっぽい機能を実装しておきたいなと考えました。これまでRAGを活用したシステムを開発しておりましたが、そこにAIエージェントを導入していいことできないかなと考えました。
実際の機能紹介は、また別の機会になりますが、今回の機能開発で利用したOCIのOracleAIDatabase26aiの新機能『SelectAIAgent』を利用した感じの所感を語りたいと思います。
とはいえ、最近ようやく動作するようになった程度なので深く語るのは今後次第です!
まずは投稿することが大事の精神でよろしくお願いいたします。
SelectAIAgentとは?
まず、SelectAIAgentについてです。
この機能は自律型エージェント・フレームワークと呼ばれており、OracleのOracle AI World 2025で発表された新機能です。
OracleのDatabase内でReAct(Reasoning + Acting)型 のエージェントを動作させられる仕組みです。
平たく言えば、Oracle版のAIエージェントといった感じです。
これまで、自然言語からSQLの生成(SelectAI)は可能でしたが、そこにRAG によるドキュメント検索、Web検索などを組み合わせてエージェントを構築し、実行した結果を受取表示することが可能となりました。
詳細はこちらを参考にしてください。
https://docs.oracle.com/ja-jp/iaas/autonomous-database-serverless/doc/about-select-ai-agents.html
仕組み
プロンプトを実行する際に、エージェントチームを指定すると、そこに登録されているエージェントとタスクの組み合わせで処理が実行されます。
ツールには、①SQL②RAG③NOTIFICATION④WEBSEARCHの4つのタイプを設定できます。
プロンプトの内容にそって、処理を完遂する為にエージェントチームが動作するイメージです。
<記載イメージ>
DBMS_CLOUD_AI_AGENT.CREATE_TOOL(
tool_name => 'SQL',
attributes => '{"tool_type": "SQL",
"tool_params": {"profile_name": "nl2sql_profile"}}'
);
詳細はこちらのマニュアルをご確認ください。
https://docs.oracle.com/ja-jp/iaas/autonomous-database-serverless/doc/examples-using-select-ai-agent.html
PL/SQLも指定が可能です。
上記のtool_typeをなくして
attributes => '{
"instruction": "マニュアル情報から関連するドキュメントを作成するツール。引数としてテキスト情報を受け取ります。",
"function": "CREATE_MANUAL_DATA"
}',
このような記載で実行できます。
おすすめのSQL
意外に入れ替えることが多いのに、削除プログラムが見つからなかったので列挙しておきます。
SQL:
(作成したプロファイル確認)
SELECT * FROM USER_CLOUD_AI_PROFILES;
(作成したプロファイル確認)
SELECT * FROM USER_CLOUD_AI_PROFILE_ATTRIBUTES;
(Agentチームの削除)
BEGIN
DBMS_CLOUD_AI_AGENT.DROP_TEAM(
team_name => <エージェントチーム名>
);
END;
/
(Agentの削除)
BEGIN
DBMS_CLOUD_AI_AGENT.DROP_AGENT(
agent_name => <エージェント名>
);
END;
/
(タスクの削除)
BEGIN
DBMS_CLOUD_AI_AGENT.DROP_TASK(
task_name => <タスク名>
);
END;
/
(ツールの削除)
BEGIN
DBMS_CLOUD_AI_AGENT.DROP_TOOL(
tool_name => <ツール名>
);
END;
/
構築する際のおすすめのやり方
・CANVA活用

構築する際、プログラムとは異なり設定を入れると内容を見づらくなります。
その為、全容を把握する為にわたしはCANVAを活用しています。
CANVAのホワイトボードでツリー上に表示してい矢印で繋ぎ、アップデートが必要なものは黄色に変えて、バックアップとして残したいものを灰色に、上記のSQLなどはピンク色で画面端においています。
このようにすることで、全容を把握しやすく改修もやりやすいです。
注意点
①必ず、実行回数に制限を入れてください。推論が終わらないと永遠とLLMを実行する可能性があります!
②PL/SQLを実行する場合、TASKで各引数を直接指定してください。
③プロンプトで実行する処理を指定する場合は、AgentではなくTool名を指定してください。
まとめ
まだまだ、未知数な機能ですが使いこなせば簡単にReAct処理をOracleAPEXで実装することが可能です。本記事もここまでですが、引き続き開発は継続しますので続報をご連絡します!
