DBMS_CLOUD_AI_AGENTパッケージ

このパッケージは、Select AIエージェント、タスク、ツールおよびオーケストレーションを定義および管理します。

DBMS_CLOUD_AI_AGENTサブプログラムの要約

この項では、Autonomous AI Databaseで提供されるSelect AI AgentのDBMS_CLOUD_AI_AGENTサブプログラムについて説明します。

サブプログラム 摘要
CREATE_AGENTプロシージャ このプロシージャは、エージェントを作成します。
CREATE_AGENTの属性 エージェントを作成するための属性を提供します。
ENABLE_AGENTプロシージャ この手順では、エージェントを有効にします。
DISABLE_AGENTプロシージャ この手順では、エージェントを無効にします。
DROP_AGENTプロシージャ このプロシージャは、既存のエージェントを削除します。
CREATE_TASKプロシージャ このプロシージャは、エージェントおよびエージェント・チームに含めることができるタスクを作成します。
CREATE_TASKの属性 エージェント・タスクを作成するための属性を提供します。
ENABLE_TASKプロシージャ この手順では、エージェント・タスクを有効にします。
DISABLE_TASKプロシージャ この手順では、エージェント・タスクを無効にします。
DROP_TASKプロシージャ このプロシージャは、既存のエージェント・タスクを削除します。
CREATE_TOOLプロシージャ このプロシージャは、エージェントに含めることができるカスタム・ツールを作成します。
CREATE_TOOLの属性 ツールを作成するための属性を提供します。
ENABLE_TOOLプロシージャ この手順では、ツールを有効にします。
DISABLE_TOOLプロシージャ この手順では、ツールを無効にします。
DROP_TOOLプロシージャ このプロシージャは、既存のツールを削除します。
CREATE_TEAMプロシージャ この手順では、エージェントチームを作成し、エージェントとタスクを含めます。
CREATE_TEAMの属性 エージェント・チームを作成するための属性を提供します。
SET_TEAMファンクション このプロシージャは、現在のセッションでエージェント・チームを設定します。
GET_TEAMファンクション このプロシージャは、現在のセッションで設定されたエージェント・チームを返します。
CLEAR_TEAMファンクション このプロシージャは、現在のセッションで設定されたエージェント・チームをクリアします。
RUN_TEAMファンクション このプロシージャは、新しいエージェントを作成するか、一時停止したエージェントを実行します。
ENABLE_TEAMプロシージャ この手順では、エージェント・チームを有効にします。
DISABLE_TEAMプロシージャ このプロシージャは、エージェント・チームを無効にします。
DROP_TEAMプロシージャ このプロシージャは、既存のエージェント・チームを削除します。
DESCRIBE_TOOLファンクション Select AI Agentツールのメタデータおよび入力スキーマ情報を返します。
RUN_TOOLファンクション JSON入力ペイロードを使用して、名前でSelect AI Agentツールを呼び出します。
LIST_TEAMSファンクション コール元ユーザーが使用できるエージェント・チームをリストします。
DESCRIBE_TEAMファンクション 選択したエージェント・チームのメタデータおよび集計された機能を戻します。
GET_TEAM_STATEファンクション エージェント・チーム会話の最新の実行状態を返します。
SET_EXECUTION_STATEプロシージャ 対話型セッションを成功としてマークするなど、待機中のチームの実行状態を更新します。
EXPORT_TEAMファンクション このファンクションは、Select AIエージェント・チームをCLOBにエクスポートします。
EXPORT_TEAMプロシージャ このプロシージャは、エクスポートされたチーム定義をオブジェクト・ストレージURIまたはデータベース・ディレクトリ・ファイルに書き込みます。
IMPORT_TEAMプロシージャ このプロシージャは、Select AIエージェント・チーム仕様をデータベースにインポートします。
GET_DEFINITIONファンクション エージェント、タスク、ツールまたはチームの正規の実行可能PL/SQLを返します。

CREATE_AGENTプロシージャ

DBMS_CLOUD_AI_AGENT.CREATE_AGENTプロシージャを使用して、Select AI Agentフレームワークに新しいAIエージェントを登録します。agent_nameを使用してエージェントのアイデンティティを定義し、attributesパラメータを使用してその動作を構成し、オプションで説明を指定します。

構文

DBMS_CLOUD_AI_AGENT.CREATE_AGENT(
     agent_name          IN  VARCHAR2,
     attributes          IN  CLOB,
     status              IN  VARCHAR2  DEFAULT NULL,
     description         IN  CLOB      DEFAULT NULL
  );

パラメータ

パラメータ 摘要
agent_name

AIエージェントの名前。エージェント名は、Oracle SQL識別子のネーミング・ルールに従う必要があります。名前の長さは最大125文字。

これは必須パラメータです。

attributes AIエージェントのカスタム属性。詳細は、CREATE_AGENT Attributesを参照してください。
status

エージェントのステータス。

デフォルト値はenabledです。

description

AIエージェントのユーザー指定の説明。

デフォルト値はNULLです。

次の例では、顧客製品返品を処理するエージェントを作成します。完全な例は、例: Product Return Agentの作成を参照してください。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_AGENT(
    agent_name => 'CustomerAgent',
    attributes => '{
       "profile_name": "GOOGLE",
                       "role": "You are an experienced customer agent who deals with customers return request."
     }'
  );
END;
/

PL/SQL procedure successfully completed.

CREATE_AGENT属性

これらの属性は、エージェントのロールとAIプロファイル名を定義します。

属性

属性の名前 デフォルト値 摘要
profile_name -

エージェントがLLMにリクエストを送信するために使用するAIプロファイル。

これは必須パラメータです。

role -

エージェントの機能を定義し、エージェントにコンテキストを提供します。これはLLMに送信されます。

これは必須パラメータです。

enable_human_tool True エージェントがユーザーに質問して情報や説明を求めることを可能にします。
tools なし エージェントがツールを直接実行するときにエージェントがアクセスできるツールを指定します。
short_term_memory_length 30 タスク実行の各LLMコールに含まれる会話回転の最大数を指定します。
supervisor false エージェントを監督チームを制御できる監督者として指定します。

次の例は、プロシージャのエージェント属性をカスタマイズする方法を示しています。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_AGENT(
    agent_name => 'Customer_Return_Agent',
    attributes => '{
       "profile_name": "GOOGLE",
                       "role": "You are an experienced customer agent who deals with customers return request.",
			   "enable_human_tool": "False"
     }'
  );
END;
/

PL/SQL procedure successfully completed

使用上のノート

  • profile_nameは、LLMコールに使用されるAIプロファイルを識別します。
  • supervisorはオプションで、デフォルトでfalseに設定されます。
  • supervisortrueに設定するのは、チームのルーティングを制御するエージェントの場合のみです。
  • エージェントの作成後は「監督者」オプションを更新できません。
  • 可能な場合は、就業者固有のタスク指示を監督者から除外し、就業者タスクに配置します。

例: スーパーバイザエージェントの作成

この例では、チームを制御し、サブタスクを構成済の就業者エージェントに委任できるスーパーバイザ・エージェントを作成します。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_AGENT(
    agent_name => 'ORCHESTRATOR_AGENT',
    attributes => '{
      "profile_name": "<AI_PROFILE_NAME>",
      "role": "Route requests to the appropriate worker agent.",
      "supervisor": true
    }',
    description => 'Routes subtasks to worker agents'
  );
END;
/

ENABLE_AGENTプロシージャ

このプロシージャーは、ユーザーが指定するAIエージェントを有効にします。このプロシージャは、AIエージェントのステータスをENABLEDに変更します。

構文

DBMS_CLOUD_AI_AGENT.ENABLE_AGENT(
   agent_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
agent_name

有効にするAIエージェントの名前。

このパラメータは必須です。

AIプロファイルを有効にする例

BEGIN
     DBMS_CLOUD_AI_AGENT.ENABLE_AGENT(
         agent_name    => 'Customer_Return_Agent'
     );
END;
/

DISABLE_AGENTプロシージャ

このプロシージャは、現在のデータベース内のAIエージェントを無効にします。このプロシージャによって、AIエージェントのステータスがDISABLEDに変更されます。

構文

DBMS_CLOUD_AI_AGENT.DISABLE_AGENT(
   agent_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
agent_name

AIエージェントの名前。

このパラメータは必須です。

BEGIN
     DBMS_CLOUD_AI_AGENT.DISABLE_AGENT(
         agent_name    => 'Customer_Return_Agent'
     );
END;
/

DROP_AGENTプロシージャ

このプロシージャは、既存のAIエージェントを削除します。エージェントが存在しない場合、プロシージャによってエラーがスローされます。

構文

DBMS_CLOUD_AI_AGENT.DROP_AGENT(
    agent_name          IN  VARCHAR2,
    force               IN  BOOLEAN DEFAULT FALSE
 );

パラメータ

パラメータ 摘要
agent_name

AIエージェントの名前。

これは必須パラメータです。

force

TRUEの場合、AIエージェントが存在しない場合、このプロシージャはエラーを無視します。

このパラメータのデフォルト値はFALSEです。

BEGIN
     DBMS_CLOUD_AI_AGENT.DROP_AGENT(agent_name => 'Customer_Return_Agent);
END;
/

使用上のノート

AIエージェントが存在しない場合は、forceを使用してエージェントを削除し、エラーを無視します。

CREATE_TASKプロシージャ

DBMS_CLOUD_AI_AGENT.CREATE_TASKプロシージャを使用して、Select AIエージェントがその推論プロセスに含めることができるタスクを定義します。各タスクには、タスクを計画および実行する際のエージェントの動作を指定する一意の名前と属性のセットがあります。

input属性を使用してタスク間の依存関係を定義すると、Select AIでタスクの出力を別のタスクに渡すことができます。これにより、連鎖推論および複数ステップのワークフローがサポートされます。

構文

DBMS_CLOUD_AI_AGENT.CREATE_TASK(
     task_name           IN  VARCHAR2,
     attributes          IN  CLOB,
     status              IN  VARCHAR2  DEFAULT NULL,
     description         IN  CLOB      DEFAULT NULL
  );

パラメータ

パラメータ 摘要
task_name

タスクの一意の名前。

これは必須パラメータです。

attributes タスク固有の属性を含むJSONオブジェクト。「CREATE_TASK属性」を参照してください。
status

タスクのステータス。

デフォルト値はENABLEDです。

description

タスクの識別に役立つユーザー定義の摘要。この値はデータベースに格納されますが、LLMには送信されません。

デフォルト値はNULLです。

次の例では、顧客からの製品返品を処理するタスクを作成します。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_TASK(
    task_name => 'Return_And_Price_Match',
    attributes => '{"instruction": "Process a product return request from a customer:{query}' ||
                    '1. Ask customer the reason for return (price match or defective)' ||
                    '2. If price match:' ||
                    '   a. Request customer to provide a price match link' ||
                    '   b. Use websearch tool to get the price for that price match link' ||
                    '   c. Ask customer if they want a refund.' ||
                    '   d. Send email notification only if customer accept the refund.' ||
                    '3. If defective:' ||
                     '   a. Process the defective return",
                    "tools": ["WebSearch", "Email"]}'
  );
END;
/

CREATE_TASK属性

これらの属性は、タスクで使用可能なエージェントの指示およびツールを定義します。

属性

属性の名前 デフォルト値 摘要
instruction -

タスクが何を達成すべきかを説明する明確で簡潔な文。このテキストは、LLMに送信されるプロンプトに含まれます。自然言語入力を表す{query}プレースホルダを含めることができます。たとえば:

SELECT AI AGENT \

これは必須パラメータです。

tools - エージェントがタスクを完了するために使用できるツール名のJSON配列。例: "tools": ["RAG", "SQL", "WEBSEARCH", "NOTIFICATION"]
input - このタスクの入力として出力を使用する必要がある他のタスクを識別します。Select AIは、これらの出力をLLMに自動的に提供します。
enable_human_tool -

タスク中に情報や説明が必要な場合に、エージェントがユーザーに質問できるようにします。

デフォルト値はtrueです。

ノート: タスクenable_human_toolは、エージェントのenable_human_tool属性を上書きします。エージェントenable_human_toolfalseに設定され、タスクenable_human_tooltrueに設定されている場合、タスクの実行中にLLMが質問をすると予想されます。

ENABLE_TASKプロシージャ

以前に定義したタスクを有効にするには、DBMS_CLOUD_AI_AGENT.ENABLE_TASKプロシージャを使用します。これにより、タスクのステータスがENABLEDに変更され、エージェントが処理中にタスクを使用できるようになります。

構文

DBMS_CLOUD_AI_AGENT.ENABLE_TASK(
   task_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
task_name

有効にするタスクの名前。

このパラメータは必須です。

使用上のノート

タスクはシステムにすでに存在している必要があります。この手順では、タスク・ステータスを更新して、推論ワークフロー中にエージェント・プロセスで使用できるようにします。

タスクを有効にする例

BEGIN
     DBMS_CLOUD_AI_AGENT.ENABLE_TASK(
         task_name    => 'Return_And_Price_Match'
     );
END;
/

DISABLE_TASKプロシージャ

DBMS_CLOUD_AI_AGENT.DISABLE_TASKプロシージャを使用して、現在のデータベースのタスクを無効にします。これにより、タスクのステータスがDISABLEDに変更され、エージェントが処理中にタスクを使用できなくなります。

構文

DBMS_CLOUD_AI_AGENT.DISABLE_TASK(
   task_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
task_name

無効化するタスクの名前。

このパラメータは必須です。

使用上のノート

タスクを無効にしても削除されず、後でDBMS_CLOUD_AI_AGENT.ENABLE_TASKを使用して再度有効にできます。無効にすると、タスクは非アクティブになり、エージェントはタスクの選択時にタスクを考慮しなくなります。

次の例では、既存のタスクを無効にします。

BEGIN
     DBMS_CLOUD_AI_AGENT.DISABLE_TASK(
         task_name    => 'Return_And_Price_Match'
     );
END;
/

DROP_TASKプロシージャ

DBMS_CLOUD_AI_AGENT.DROP_TASKプロシージャを使用して、以前に定義したタスクをデータベースから削除します。タスクが存在しない場合は、forceパラメータをTRUEに設定することでエラーを抑制できます。

構文

DBMS_CLOUD_AI_AGENT.DROP_TASK(
   task_name IN  VARCHAR2,
   force     IN  BOOLEAN DEFAULT FALSE
);

パラメータ

パラメータ 摘要
task_name

削除するタスクの名前。

これは必須パラメータです。

force

TRUEの場合、タスクが存在しない場合、プロシージャはエラーを無視します。

このパラメータのデフォルト値はFALSEです。

BEGIN
     DBMS_CLOUD_AI_AGENT.DROP_TASK(task_name => 'Return_And_Price_Match');
END;
/

使用上のノート

forceを使用して、タスクを削除し、そのタスクが存在しない場合はエラーを無視します。

CREATE_TOOLプロシージャ

DBMS_CLOUD_AI_AGENT.CREATE_TOOLプロシージャを使用して、タスク処理中にエージェントが使用できるカスタム・ツールを登録します。各ツールは、一意のtool_nameによって識別され、その目的、実装ロジックおよびメタデータを定義する属性を含みます。

ツールは、カスタムPL/SQLファンクション、またはRAG、SQL、WEBSEARCH、NOTIFICATIONなどの組込みツール・タイプです。

構文

DBMS_CLOUD_AI_AGENT.CREATE_TOOL(
     tool_name          IN  VARCHAR2,
     attributes          IN  CLOB,
     status              IN  VARCHAR2  DEFAULT NULL,
     description         IN  CLOB      DEFAULT NULL
  );

パラメータ

パラメータ 摘要
tool_name

ツールを識別する一意の名前。

これは必須パラメータです。

attributes

JSON形式のツール属性。「CREATE_TOOL属性」を参照してください。

これは必須パラメータです。

status

ツールのステータス。

デフォルト値はENABLEDです。

description

ツールの識別に役立つユーザー定義の摘要。この値はデータベースに格納されますが、LLMには送信されません。

デフォルト値はNULLです。

次の例では、既存のNL2SQLプロファイルからSQLを生成するSQLツールを作成します。詳細は、例: 組込みツールの作成を参照してください。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_TOOL(
    tool_name  => 'SQL',
    attributes => '{"tool_type": "SQL",
                    "tool_params": {"profile_name": "nl2sql_profile"}}'
  );
END;
/

CREATE_TOOL属性

これらの属性は、attributesパラメータのJSONオブジェクトを使用してツール構成を提供します。各属性は、エージェントが推論中にツールを使用する方法を構成します。

属性

属性の名前 デフォルト値 摘要
instruction -

ツールが何を達成すべきか、およびその方法を説明する明確で簡潔な文。このテキストは、LLMに送信されるプロンプトに含まれます。

これは必須パラメータです。

function -

ツールの使用時にコールするPL/SQLプロシージャまたはファンクションを指定します。

これはカスタム・ツールの必須パラメータです。

tool_type -

組込みツール・タイプを指定します。設定した場合、instructionおよびfunctionは必要ありません。

可能な値は次のとおりです:

  • SQL
  • RAG
  • WEBSEARCH
  • NOTIFICATION

カスタマイズされた名前とパラメータを使用して組込みツールを作成できます。また、同じtool_typeで異なるtool_paramsを持つ複数の組込みツールを作成することもできます。

tool_params - 組込みツールを登録するためのパラメータを指定します。
tool_inputs -

入力引数について説明します。表の列コメントと同様です。たとえば:

"tool_inputs": [ 
{
"name": "data_guard",
"description": "Only supported values are "Enabled" and "Disabled""
}
]

組込みツールの前提条件

組込みツールを使用する前に、次のステップを実行します。

RAGツール
  1. ベクトル索引を参照するAIプロファイルを作成します。Select AI with Retrieval Augmented Generation (RAG)を参照してください。
通知ツール

SLACKおよびEMAILがサポートされています。

SLACKツール:
  1. Autonomous AI Databaseからメッセージを受信するようにSlackアプリケーションを設定します。

  2. DBMS_CLOUD_NOTIFICATIONを使用して資格証明を作成し、Autonomous AI DatabaseからSlack通知を送信します。Autonomous AI DatabaseからのSlack通知の送信を参照してください。

EMAILツール:

ノート

ノート:電子メール・ツールは、OCIから電子メール通知を送信します。

  1. SMTPエンドポイントを識別します。たとえば、SMTPエンドポイントの1つを選択します。
    smtp.us-phoenix-1.oraclecloud.com
    smtp.us-ashburn-1.oraclecloud.com
    smtp.email.uk-london-1.oci.oraclecloud.com
    smtp.email.eu-frankfurt-1.oci.oraclecloud.com
  2. ACLを使用してSMTPアクセス権を付与します。SMTP接続の構成を参照してください。

  3. Eメール配信用のSMTP資格証明を生成します。UTL_SMTPパッケージは、Eメールの送信時に資格証明を使用してEメール配信サーバーでの認証を行います。詳細は、ユーザーに対するSMTP資格証明の生成を参照してください。

  4. 承認送信者を作成します。UTL_SMTP.MAILサブプログラムでFromアドレスとして使用するすべての電子メール・アドレスに対して、このステップを実行します。詳細は、承認済送信者の管理を参照してください。

  5. アクセス制御エントリ(ACE)を追加して、ユーザーにSMTPアクセス権を付与します。詳細は、DBMS_CLOUD_NOTIFICATIONを使用したAutonomous AI Databaseからの電子メールの送信を参照してください。

DBMS_CLOUD_AI_AGENTパッケージの組込みツール・タイプ

組込みツールは、tool_typeおよびtool_params属性を使用して登録できます。

ツールタイプ 摘要 必須パラメータ
SQL 自然言語をSQL問合せに変換します。

ノート:組込みSQLツールでは、runsqlshowsqlexplainsqlなどのSelect AIアクションを使用して、データベース関連のプロンプトを処理します。組込みツールには、これらのアクションの動作および使用方法を定義するデフォルトの指示が含まれています。CREATE_TOOLプロシージャのinstruction属性を使用して、エージェントがプロンプトを最適なアクションにマップする方法をガイドすることで、デフォルトの動作を補足できます。
profile_name
RAG ベクトル検索を介して取得拡張生成を実行します。 profile_name
NOTIFICATION

Slackチャネルにメッセージを送信するか、SMTPを使用して電子メールを送信します。使用可能なオプションは次のとおりです。

  • slack
  • email

notification_type.

notification_typeslackの場合、credential_nameおよびchannelは必須です。

notification_typeemailの場合、credential_namerecipientsenderおよびsmtp_hostは必須です。

WEBSEARCH Webから情報を検索します。 credential_name

ENABLE_TOOLプロシージャ

以前に作成したツールを有効にするには、DBMS_CLOUD_AI_AGENT.ENABLE_TOOLプロシージャを使用します。これにより、ツールのステータスがENABLEDに変更され、エージェントがタスクを使用できるようになります。

構文

DBMS_CLOUD_AI_AGENT.ENABLE_TOOL(
   tool_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
tool_name

有効にするツールの名前。

このパラメータは必須です。

BEGIN
     DBMS_CLOUD_AI_AGENT.ENABLE_TOOL(
         tool_name    => 'SQL'
     );
END;
/

DISABLE_TOOLプロシージャ

ツールを無効にするには、DBMS_CLOUD_AI_AGENT.DISABLE_TOOLプロシージャを使用します。これにより、ツールのステータスがDISABLEDに変更され、エージェントがタスクで使用できなくなります。

構文

DBMS_CLOUD_AI_AGENT.DISABLE_TOOL(
   tool_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
tool_name

無効にするツールの名前。

このパラメータは必須です。

次の例では、既存のツールを無効にします。

BEGIN
     DBMS_CLOUD_AI_AGENT.DISABLE_TOOL(
         tool_name    => 'SQL'
     );
END;
/

DROP_TOOLプロシージャ

DBMS_CLOUD_AI_AGENT.DROP_TOOLプロシージャを使用して、エージェントで以前に作成したツールを削除します。タスクが存在しない場合は、forceパラメータをTRUEに設定することでエラーを抑制できます。

構文

DBMS_CLOUD_AI_AGENT.DROP_TOOL(
   tool_name IN  VARCHAR2,
   force     IN  BOOLEAN DEFAULT FALSE
);

パラメータ

パラメータ 摘要
tool_name

削除するツールの名前。

これは必須パラメータです。

force

TRUEの場合、ツールが存在しない場合、プロシージャはエラーを無視します。

このパラメータのデフォルト値はFALSEです。

BEGIN
     DBMS_CLOUD_AI_AGENT.DROP_TOOL(tool_name => 'SQL');
END;
/

使用上のノート

forceを使用してツールを削除し、ツールが存在しない場合はエラーを無視します。

CREATE_TEAMプロシージャ

DBMS_CLOUD_AI_AGENT.CREATE_TEAMプロシージャを使用して、タスクを遂行するために連携するAIエージェントのチームを定義します。エージェントとその関連タスク、およびタスクの処理方法を指定します。

構文

DBMS_CLOUD_AI_AGENT.CREATE_TEAM(
   team_name    IN VARCHAR2,
   attributes   IN CLOB,
   status       IN VARCHAR2 DEFAULT NULL,
   description  IN CLOB     DEFAULT NULL
);

パラメータ

パラメータ 摘要
team_name

AIエージェント・チームを識別する一意の名前。

これは必須パラメータです。

attributes

エージェントやプロセスなどのチーム属性を定義するJSON形式の文字列。「CREATE_TEAM属性」を参照してください。

これは必須パラメータです。

status

チームのステータス。

デフォルト値はENABLEDです。

description

チームの目的を識別するためのユーザー定義の摘要。この値はデータベースに格納されますが、LLMには送信されません。

デフォルト値はNULLです。

次の例では、顧客の製品返品を処理するエージェント・チームを作成します。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_TEAM(
    team_name  => 'ReturnAgency',
    attributes => '{"agents": [{"name":"Customer_Return_Agent","task" : "Return_And_Price_Match"}],
                    "process": "sequential"}');
END;
/

CREATE_TEAM属性

これらの属性は、AIエージェント・チームの構成を提供します。各チームには一意のteam_nameがあり、一連の属性を使用してその構造と実行戦略を定義します。

属性

属性の名前 デフォルト値 摘要
agents -

エージェントおよび対応するタスクをリストするJSON配列を指定します。エージェントは、同じ名前を使用して複数のタスクに割り当てることができます。

これは必須パラメータです。

例:

[ {"name": "", "task": "" ]
process - タスクの実行方法を指定します。タスクを順番に実行するには、"sequential"を使用します。
long_term_memory_length 30 新しい各実行の開始時にメモリー・コンテキストとしてシステム・プロンプトに含められる、前のタスク・レベルのサマリーの最大数を指定します。
supervisor_agent - スーパーバイザエージェントの名前。この属性は、監督者主導のチームに必須です。

使用上のノート

監督チームを作成する前にチーム属性ルールをレビューして、監督者と就業者マッピングを分離したままにします。

ノート

監督者の設計では、サブタスク処理は順次実行されます。監督者エージェント・オブジェクトは、一度に1つの就業者サブタスクを委任し、就業者が結果(失敗結果を含む)を返した後に再開します。

  • supervisor_agentは、チームを制御するスーパーバイザ・エージェント・オブジェクトを指定します。
  • agentsは、委任に使用できるワーカー・エージェントとタスクのペアをリストします。
  • 選択した監督者をagents配列に就業者としてリストしないでください。
  • チーム定義でprocessを使用します。スーパーバイザの初期設計にはsequentialが必要です。1つのワーカー・サブタスクは、スーパーバイザが次のサブタスクを委任する前に終了する必要があります。

例: 監督者主導のチームの作成

この例では、監督者エージェント・オブジェクトで使用可能なアカウントと支払就業者のエージェントとタスクのペアを持つ監督チームを作成します。

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_TEAM(
    team_name => 'CUSTOMER_SUPPORT',
    attributes => '{
      "process": "sequential",
      "supervisor_agent": "ORCHESTRATOR_AGENT",
      "agents": [
        {"name":"ACCOUNT_AGENT", "task":"ACCOUNT_MANAGEMENT_TASK"},
        {"name":"PAYMENT_AGENT", "task":"PAYMENT_MANAGEMENT_TASK"}
      ]
    }'
  );
END;
/

SET_TEAMファンクション

DBMS_CLOUD_AI_AGENT.SET_TEAMを使用して、現在のセッションのAIエージェント・チームを指定します。

チームが設定されると、select ai agentアクションのみが有効になり、他のSelect AIアクションはサポートされません。

構文

DBMS_CLOUD_AI_AGENT.SET_TEAM(
    team_name      IN  VARCHAR2,
);

パラメータ

パラメータ 摘要
team_name

現在のセッションで使用するAIエージェントチームの名前を指定します。チームはすでにシステムに存在している必要があります。

このパラメータは必須です。

次の例では、現在のセッションでユーザー指定のAIエージェントチームを設定します。

EXEC DBMS_CLOUD_AI_AGENT.SET_TEAM('ReturnAgency');

GET_TEAMファンクション

DBMS_CLOUD_AI_AGENT.GET_TEAMを使用して、現在のセッションのAIエージェント・チームを返します。

構文

DBMS_CLOUD_AI_AGENT.GET_TEAM RETURN VARCHAR2;

次の例では、現在のセッションでAIエージェントチームを返します。

SELECT DBMS_CLOUD_AI_AGENT.GET_TEAM from DUAL;

CLEAR_TEAMファンクション

DBMS_CLOUD_AI_AGENT.CLEAR_TEAMを使用して、現在のセッションで設定されたAIエージェント・チームをクリアします。このプロシージャは、チームを削除しません。

構文

DBMS_CLOUD_AI_AGENT.CLEAR_TEAM;

次の例では、現在のセッションでAIエージェントチームをクリアします。

BEGIN
  DBMS_CLOUD_AI_AGENT.CLEAR_TEAM;
END;
/

RUN_TEAMファンクション

DBMS_CLOUD_AI_AGENT.RUN_TEAMを使用して、新しいAIエージェント・チームを開始するか、ヒューマン入力を待機している一時停止されたチームを再開します。既存のプロセスIDを指定し、関連するチーム・プロセスがWAITING_FOR_HUMAN状態の場合、このファンクションは、ヒューマン・レスポンスとして指定した入力を使用してワークフローを再開します。

構文

DBMS_CLOUD_AI_AGENT.RUN_TEAM(
     team_name               IN  VARCHAR2,
     user_prompt             IN  CLOB DEFAULT NULL,
     params                  IN  CLOB DEFAULT NULL,
  );

パラメータ

パラメータ 摘要
team_name

現在のセッションで使用するAIエージェントチームの名前を指定します。チームはすでにシステムに存在している必要があります。

このパラメータは必須です。

user_prompt

タスクに指定されたユーザー問合せまたはレスポンスを指定します。

タスクがRUNNING状態の場合、入力はタスク指示の{query}のプレースホルダとして機能します。

タスクがWAITING_FOR_HUMAN状態の場合、入力は人間のレスポンスとして機能します。

params

AIエージェント・チーム・プロセス中に使用されるカスタマイズされたパラメータを指定します。サポートされるパラメータは次のとおりです。

  • conversation_id: エージェント・チームに関連付けられた会話セッションを識別します。このパラメータは、異なるユーザー接続を区別するために、ステートレス・アプリケーション統合(APEXなど)に使用します。
  • variables: エージェント・チームに追加入力を提供するキーと値のペアを定義します。これらの変数は、プロセス中のチームの動作をカスタマイズするのに役立ちます。

次の例では、現在のセッションでユーザー指定のAIエージェントチームを実行します。

l_final_answer := DBMS_CLOUD_AI_AGENT.RUN_TEAM(
  team_name => 'ReturnAgency',
  user_prompt => 'I want to return computer desk chair',
  params => '{"conversation_id": "' \|\|l_conversation_id \|\| '"}'
);

ENABLE_TEAMプロシージャ

ユーザー指定のAIエージェント・チームを有効にするには、DBMS_CLOUD_AI_AGENT.ENABLE_TEAMプロシージャを使用します。これにより、チームのステータスがENABLEDに変更されます。

構文

DBMS_CLOUD_AI_AGENT.ENABLE_TEAM(
   team_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
team_name

有効にするAIエージェント・チームの名前。

このパラメータは必須です。

次の例では、ユーザー指定のAIエージェントチームを有効にします。

BEGIN
     DBMS_CLOUD_AI_AGENT.ENABLE_TEAM(
         team_name    => 'ReturnAgency'
     );
END;
/

DISABLE_TEAMプロシージャ

既存のAIエージェント・チームを無効にするには、DBMS_CLOUD_AI_AGENT.DISABLE_TEAMプロシージャを使用します。これにより、チームのステータスがDISABLEDに変更されます。

構文

DBMS_CLOUD_AI_AGENT.DISABLE_TEAM(
   team_name           IN  VARCHAR2
);

パラメータ

パラメータ 摘要
team_name

無効にするAIエージェント・チームの名前。

このパラメータは必須です。

次の例では、既存のAIエージェントチームを無効にします。

BEGIN
     DBMS_CLOUD_AI_AGENT.DISABLE_TEAM(
         team_name    => 'ReturnAgency'
     );
END;
/

DROP_TEAMプロシージャ

DBMS_CLOUD_AI_AGENT.DROP_TEAMプロシージャを使用して、以前に作成したAIエージェント・チームを削除します。

構文

DBMS_CLOUD_AI_AGENT.DROP_TEAM(
   team_name IN  VARCHAR2,
   force     IN  BOOLEAN DEFAULT FALSE
);

パラメータ

パラメータ 摘要
team_name

削除するチームの名前。

これは必須パラメータです。

force

TRUEの場合、チームが存在しない場合、プロシージャはエラーを無視します。

このパラメータのデフォルト値はFALSEです。

BEGIN
     DBMS_CLOUD_AI_AGENT.DROP_TEAM(team_name => 'ReturnAgency');
END;
/

使用上のノート

forceを使用して、チームを削除し、チームが存在しない場合はエラーを無視します。

DESCRIBE_TOOLファンクション

ツールのJSONメタデータを返すには、DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOLファンクションを使用します。結果には、ツール名、説明、属性、およびMCP互換クライアントがツール検出に使用できる入力スキーマ情報が含まれます。

構文

DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
  tool_name IN VARCHAR2
) RETURN CLOB;

パラメータ

パラメータ 摘要
tool_name メタデータが返されるSelect AI Agentツールの名前。

返品

JSON形式のツール・メタデータおよび引数情報を含むCLOBを返します。

DECLARE
  l_result CLOB;
BEGIN
  l_result := DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
    tool_name => 'FETCH_LOG_TOOL'
  );

  DBMS_OUTPUT.PUT_LINE(l_result);
END;
/

RUN_TOOLファンクション

作成したツールを名前でコールするには、DBMS_CLOUD_AI_AGENT.RUN_TOOLファンクションを使用します。入力パラメータは、ツール引数をJSONペイロードとして渡します。

構文

DBMS_CLOUD_AI_AGENT.RUN_TOOL(
  tool_name IN VARCHAR2,
  input IN CLOB
) RETURN CLOB;

パラメータ

パラメータ 摘要
tool_name コールするSelect AI Agentツールの名前。
input ツールに渡されたJSON入力ペイロード。

返品

ツール実行結果を含むCLOBを戻します。

SELECT DBMS_CLOUD_AI_AGENT.RUN_TOOL(
  tool_name => 'FETCH_LOG_TOOL',
  input => '{"P_SINCE":"2026-01-01"}'
) AS tool_result
FROM dual;

LIST_TEAMSファンクション

DBMS_CLOUD_AI_AGENT.LIST_TEAMSファンクションでは、コール元ユーザーが使用できるエージェント・チームを列挙します。結果は、チーム検出のためにA2A互換の統合レイヤーで使用できます。

構文

DBMS_CLOUD_AI_AGENT.LIST_TEAMS
  RETURN CLOB;

パラメータ

パラメータ 摘要
なし このファンクションにはパラメータがありません。

返品

JSON配列を含むCLOBを戻します。各エントリには、チーム名と説明が含まれます。

SELECT DBMS_CLOUD_AI_AGENT.LIST_TEAMS()
FROM dual;

DESCRIBE_TEAMファンクション

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAMファンクションでは、エージェント・チームのメタデータを戻します。この機能は、チームで使用可能な Select AI AgentツールをA2A互換のスキル表現にマップします。

構文

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM(
  team_name IN VARCHAR2
) RETURN CLOB;

パラメータ

パラメータ 摘要
team_name メタデータおよび機能が返されるエージェント・チームの名前。

返品

チーム名、説明、オプション・バージョンおよびスキル・リストを含むJSONオブジェクトを含むCLOBを返します。

使用上のノート

  • スキルは、A2A互換クライアント用のツールのプロトコル表現です。新しいSelect AI Agentデータベース・オブジェクト・タイプは導入されません。

SELECT DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM('SUPPORT_TEAM')
FROM dual;

GET_TEAM_STATEファンクション

DBMS_CLOUD_AI_AGENT.GET_TEAM_STATEファンクションでは、エージェント・チームの会話の最新の実行状態を戻します。

構文

DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE(
  team_name IN VARCHAR2,
  params IN CLOB DEFAULT NULL
) RETURN VARCHAR2;

パラメータ

パラメータ 摘要
team_name 最新の実行状態が返されるエージェント・チームの名前。
params オプションのJSONオブジェクト。conversation_idを使用して、特定の会話の最新の実行状態を取得します。省略すると、現在のセッションの会話が使用されます。

返品

VARCHAR2実行状態(RUNNINGWAITING_FOR_HUMANSUCCEEDEDFAILEDなど)を返します。

SELECT DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE(
  team_name => 'SUPPORT_TEAM',
  params => '{"conversation_id":"<CONVERSATION_ID>"}'
)
FROM dual;

SET_EXECUTION_STATEプロシージャ

DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATEプロシージャを使用して、待機中のチーム実行を指定された状態に更新します。これは、対話型セッションが完了するタイミングをアプリケーションが制御するエージェント直接ツールコールワークフローに便利です。

構文

DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE(
  team_name IN VARCHAR2,
  state IN CLOB DEFAULT 'SUCCEEDED',
  params IN CLOB DEFAULT NULL
);

パラメータ

パラメータ 摘要
team_name 実行状態が更新されたエージェント・チームの名前。
state 設定する実行状態。デフォルト値はSUCCEEDEDです。
params オプションのJSONオブジェクト。conversation_idを使用して、実行状態が更新された会話を識別します。

BEGIN
  DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE(
    team_name => 'CUSTOMER_AGENT_ONLY_TEAM',
    state => 'SUCCEEDED',
    params => '{"conversation_id":"<CONVERSATION_ID>"}'
  );
END;
/

DESCRIBE_TOOLファンクション

ツールのJSONメタデータを返すには、DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOLファンクションを使用します。結果には、ツール名、説明、属性、およびMCP互換クライアントがツール検出に使用できる入力スキーマ情報が含まれます。

構文

DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
  tool_name IN VARCHAR2
) RETURN CLOB;

パラメータ

パラメータ 摘要
tool_name メタデータが返されるSelect AI Agentツールの名前。

返品

JSON形式のツール・メタデータおよび引数情報を含むCLOBを返します。

DECLARE
  l_result CLOB;
BEGIN
  l_result := DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
    tool_name => 'FETCH_LOG_TOOL'
  );

  DBMS_OUTPUT.PUT_LINE(l_result);
END;
/

RUN_TOOLファンクション

作成したツールを名前でコールするには、DBMS_CLOUD_AI_AGENT.RUN_TOOLファンクションを使用します。入力パラメータは、ツール引数をJSONペイロードとして渡します。

構文

DBMS_CLOUD_AI_AGENT.RUN_TOOL(
  tool_name IN VARCHAR2,
  input IN CLOB
) RETURN CLOB;

パラメータ

パラメータ 摘要
tool_name コールするSelect AI Agentツールの名前。
input ツールに渡されたJSON入力ペイロード。

返品

ツール実行結果を含むCLOBを戻します。

SELECT DBMS_CLOUD_AI_AGENT.RUN_TOOL(
  tool_name => 'FETCH_LOG_TOOL',
  input => '{"P_SINCE":"2026-01-01"}'
) AS tool_result
FROM dual;

LIST_TEAMSファンクション

DBMS_CLOUD_AI_AGENT.LIST_TEAMSファンクションでは、コール元ユーザーが使用できるエージェント・チームを列挙します。結果は、チーム検出のためにA2A互換の統合レイヤーで使用できます。

構文

DBMS_CLOUD_AI_AGENT.LIST_TEAMS
  RETURN CLOB;

パラメータ

パラメータ 摘要
なし このファンクションにはパラメータがありません。

返品

JSON配列を含むCLOBを戻します。各エントリには、チーム名と説明が含まれます。

SELECT DBMS_CLOUD_AI_AGENT.LIST_TEAMS()
FROM dual;

DESCRIBE_TEAMファンクション

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAMファンクションでは、エージェント・チームのメタデータを戻します。この機能は、チームで使用可能な Select AI AgentツールをA2A互換のスキル表現にマップします。

構文

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM(
  team_name IN VARCHAR2
) RETURN CLOB;

パラメータ

パラメータ 摘要
team_name メタデータおよび機能が返されるエージェント・チームの名前。

返品

チーム名、説明、オプション・バージョンおよびスキル・リストを含むJSONオブジェクトを含むCLOBを返します。

使用上のノート

  • スキルは、A2A互換クライアント用のツールのプロトコル表現です。新しいSelect AI Agentデータベース・オブジェクト・タイプは導入されません。

SELECT DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM('SUPPORT_TEAM')
FROM dual;

GET_TEAM_STATEファンクション

DBMS_CLOUD_AI_AGENT.GET_TEAM_STATEファンクションでは、エージェント・チームの会話の最新の実行状態を戻します。

構文

DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE(
  team_name IN VARCHAR2,
  params IN CLOB DEFAULT NULL
) RETURN VARCHAR2;

パラメータ

パラメータ 摘要
team_name 最新の実行状態が返されるエージェント・チームの名前。
params オプションのJSONオブジェクト。conversation_idを使用して、特定の会話の最新の実行状態を取得します。省略すると、現在のセッションの会話が使用されます。

返品

VARCHAR2実行状態(RUNNINGWAITING_FOR_HUMANSUCCEEDEDFAILEDなど)を返します。

SELECT DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE(
  team_name => 'SUPPORT_TEAM',
  params => '{"conversation_id":"<CONVERSATION_ID>"}'
)
FROM dual;

SET_EXECUTION_STATEプロシージャ

DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATEプロシージャを使用して、待機中のチーム実行を指定された状態に更新します。これは、対話型セッションが完了するタイミングをアプリケーションが制御するエージェント直接ツールコールワークフローに便利です。

構文

DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE(
  team_name IN VARCHAR2,
  state IN CLOB DEFAULT 'SUCCEEDED',
  params IN CLOB DEFAULT NULL
);

パラメータ

パラメータ 摘要
team_name 実行状態が更新されたエージェント・チームの名前。
state 設定する実行状態。デフォルト値はSUCCEEDEDです。
params オプションのJSONオブジェクト。conversation_idを使用して、実行状態が更新された会話を識別します。

BEGIN
  DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE(
    team_name => 'CUSTOMER_AGENT_ONLY_TEAM',
    state => 'SUCCEEDED',
    params => '{"conversation_id":"<CONVERSATION_ID>"}'
  );
END;
/

EXPORT_TEAMファンクション

DBMS_CLOUD_AI_AGENT.EXPORT_TEAMファンクションでは、エージェント・チーム内のすべてのエージェント、タスクおよび関連ツールを文字列にエクスポートします。このファンクションは、入力としてteam_nameおよびオプションのparamsを取得し、エクスポートされたチーム定義をCLOBとして返します。

構文

DBMS_CLOUD_AI_AGENT.EXPORT_TEAM(
    team_name                        IN VARCHAR2,
    params                           IN CLOB     DEFAULT NULL
  ) RETURN CLOB;

パラメータ

パラメータ 摘要
team_name エクスポートする既存のAIエージェントチームの名前を指定します。これは必須パラメータです。
params エクスポート動作用のオプションのJSONパラメータ。

使用上のノート

  • EXPORT_TEAMは、指定されたSelect AI Agentチームのチーム定義および関連メタデータをエクスポートします。

  • エクスポートには、チームとその関連エージェント、ツール、およびチーム仕様の一部であるタスクが含まれます。

  • エクスポートには、資格証明定義または資格証明パスワードは含まれません。参照される資格証明名のみが保存されます(該当する場合)。

  • エクスポートには、エクスポートされた仕様外のユーザーが作成したサポート実装は含まれません。これらの除外された依存関係には、ツール、外部RESTサービス、OCI Functions、AWS Lambdaファンクション、ネットワークACL、その他の外部リソースで使用されるお客様のPL/SQLプロシージャおよびファンクションが含まれます。

  • 組み込みの Select AIツールのエクスポートには、チーム仕様にツール定義が含まれています。

  • エクスポートされたチームをインポートして使用する前に、必要なサポート構成がターゲット環境に存在することを確認してください。

  • エクスポートされたチーム、エージェント、ツールまたはタスクが無効になっている場合、エクスポートされた仕様には、それらのコンポーネントを無効としてマークするメタデータが含まれます。

  • インポートされた仕様にタスク定義が含まれていないため、エージェント・チームのインポート時にSelect AI Agentによってタスクが自動的に作成される場合、エージェント・チームが再度エクスポートされるときに生成されたタスクは含まれません。エージェント・チームで明示的に定義されたタスクのみがエクスポートされます。

  • 戻されたCLOBが大きい場合は、ファイルに保存するときにチャンクで書き込みます。

次の例では、ReturnAgencyチームをCLOBにエクスポートし、UTL_FILEを使用して出力をファイルに書き込みます。

DECLARE
  output          clob;
  params_clob     clob;
  file_handler    UTL_FILE.FILE_TYPE;
BEGIN
  output := DBMS_CLOUD_AI_AGENT.EXPORT_TEAM(
              team_name => 'ReturnAgency'
  );
END;
/
/

EXPORT_TEAMプロシージャ

DBMS_CLOUD_AI_AGENT.EXPORT_TEAMプロシージャを使用して、エージェント、タスクおよび関連するツール定義を含むエージェント・チーム定義を文字列にエクスポートします。場所の値にディレクトリ・オブジェクトおよびファイル名が含まれている場合、このプロシージャは、エクスポートされたチーム定義をオブジェクト・ストレージURIまたはデータベース・ディレクトリ・ファイルに書き込みます。このプロシージャは、オプションのparamsを入力として取得し、エクスポートされたチーム定義をCLOBとして返します。

構文

DBMS_CLOUD_AI_AGENT.EXPORT_TEAM(
    team_name                        IN VARCHAR2,
    object_storage_credential_name   IN VARCHAR2,
    location                         IN VARCHAR2,
    params                           IN CLOB     DEFAULT NULL
  );

パラメータ

パラメータ 摘要
team_name

エクスポートする既存のAIエージェントチームの名前を指定します。

これは必須パラメータです。

object_storage_credential_name エクスポートされたファイルを保存するオブジェクト・ストレージの場所の資格証明名。locationがデータベース・ディレクトリ・ファイルを識別する場合は、このパラメータを指定しないでください。
location オブジェクト・ストレージの場所またはデータベース・ディレクトリの場所(ファイル名を含む)、プロシージャによってエクスポートされたファイルが書き込まれます。
params

エクスポート動作用のオプションのJSONパラメータ。サポートされているパラメータは、overwriteパラメータのみです。

  • TRUE: 同じ名前の既存のファイルを上書きします。
  • FALSE: 同じ名前の既存のファイルを上書きしません。

デフォルト値はFALSEです。このパラメータを省略すると、既存のファイルは上書きされません。

使用上のノート

  • EXPORT_TEAMは、指定されたSelect AI Agentチームのチーム定義および関連メタデータをエクスポートします。

  • エクスポートには、チームとその関連エージェント、ツール、およびチーム仕様の一部であるタスクが含まれます。

  • エクスポートには、資格証明定義または資格証明パスワードは含まれません。参照される資格証明名のみが保存されます(該当する場合)。

  • エクスポートには、エクスポートされた仕様外のユーザーが作成したサポート実装は含まれません。

  • 組み込みの Select AIツールのエクスポートには、チーム仕様にツール定義が含まれています。

  • エクスポートされたチームをインポートして使用する前に、必要なサポート構成がターゲット環境に存在することを確認してください。

  • エクスポートされたチーム、エージェント、ツールまたはタスクが無効になっている場合、エクスポートされた仕様には、それらのコンポーネントを無効としてマークするメタデータが含まれます。

  • インポートされた仕様にタスク定義が含まれていないため、エージェント・チームのインポート時にSelect AI Agentによってタスクが自動的に作成される場合、エージェント・チームが再度エクスポートされるときに生成されたタスクは含まれません。エージェント・チームで明示的に定義されたタスクのみがエクスポートされます。

次の例では、ReturnAgencyチームをエクスポートし、エクスポートされた出力を指定されたオブジェクト・ストレージの場所に書き込みます。

DECLARE
  output          clob;
  params_clob     clob;
BEGIN
  DBMS_CLOUD_AI_AGENT.export_team(
              team_name => 'ReturnAgency',
              object_storage_credential_name  => 'OBJ_STORAGE_CRED',
              location => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder/return_agency.json',
	            params => '{"overwrite": true}'

  );
END;
/

次の例では、ReturnAgencyチームをデータベース・ディレクトリ・ファイルにエクスポートします。

BEGIN
  DBMS_CLOUD_AI_AGENT.EXPORT_TEAM(
    team_name => 'ReturnAgency',
    location  => 'MY_DIR:return_agency.json'
  );
END;
/

IMPORT_TEAMプロシージャ

DBMS_CLOUD_AI_AGENT.IMPORT_TEAMプロシージャを使用して、エージェント・チーム仕様をデータベースにインポートします。仕様には、チーム・メタデータおよび関連エージェント、タスクおよびツール定義を含めることができます。チーム仕様および関連するAIプロファイルに格納された情報のみがインポートされます。仕様文字列、オブジェクト・ストレージの資格証明と場所、またはデータベース・ディレクトリ・ファイルの場所を指定して、ファイルからチーム定義をインポートできます。

構文

DBMS_CLOUD_AI_AGENT.IMPORT_TEAM(
    profile_name                   IN VARCHAR2,
    team_name                      IN VARCHAR2 DEFAULT NULL,
    specification                  IN CLOB     DEFAULT NULL,
    object_storage_credential_name IN VARCHAR2 DEFAULT NULL,
    location                       IN VARCHAR2 DEFAULT NULL,
    force                          IN BOOLEAN  DEFAULT FALSE
);

パラメータ

パラメータ 摘要
profile_name

インポートされたエージェント・チームに使用する、有効で有効なAIプロファイルの名前を指定します。インポートされたエージェントは、このプロファイルを使用してLLMにリクエストを送信します。

これは必須パラメータです。

team_name

インポート操作によって作成されたエージェント・チームの名前を指定します。既存のチーム名と競合しないチーム名を使用してください。

これは必須パラメータです。

specification JSON形式のチーム定義。
object_storage_credential_name インポート・ファイルを含むオブジェクト・ストレージの場所の資格証明名。このパラメータは、locationがオブジェクト・ストレージ・ファイルを識別する場合にのみ指定します。場所がデータベース・ディレクトリ・ファイルを識別する場合は、このパラメータを指定しないでください。
location プロシージャがチーム定義をインポートするオブジェクト・ストレージの場所またはデータベース・ディレクトリの場所(ファイル名を含む)。locationまたはspecificationのいずれかを指定しますが、両方は指定できません。
force TRUEに設定すると、インポート・エラーの原因となる競合するコンポーネントが削除され、チーム定義がインポートされます。

使用上のノート

  • IMPORT_TEAMは、指定されたチーム仕様で定義されたコンポーネントのみをインポートします。

  • インポートにより、仕様内に存在するチームとその関連エージェント、ツールおよびタスクが作成されます。

  • specificationパラメータとobject_storage_credential_namelocationの組合せでは、同じインポート動作が使用されます。唯一の違いは、仕様コンテンツのソースです。

  • インポートでは、仕様に含まれない依存リソースは作成されません。これらのリソースには、資格証明、顧客が作成したPL/SQLプロシージャおよびファンクション、外部RESTサービス、OCIファンクション、AWSラムダ・ファンクション、ネットワークACL、エンドポイント、プロファイル、索引およびその他の外部サポート・リソースが含まれます。インポートされたチームを使用する前に、ターゲット環境でこれらの依存関係を個別に作成します。

  • 組み込みの Select AIツールでは、インポートされたコンポーネント定義として手動で再作成する必要はありません。ただし、これらのツールに必要な環境設定は、ターゲット・データベースにすでに存在している必要があります。

  • 仕様にタスクが含まれていない場合、DBMS_CLOUD_AI_AGENTはインポート時にタスクを自動的に作成できます。この生成されたタスクはシステム作成メタデータであり、ソース仕様で明示的に定義されたタスクとは同等ではありません。

  • forceTRUEに設定されている場合、インポートは、エージェント、ツール、タスクなどの名前で、既存の競合するインポート済コンポーネントをチェックします。競合が発生すると、インポートによって同じ名前の既存のコンポーネントが削除され、そのコンポーネントがインポート仕様から再作成されます。この動作は、競合するインポート済コンポーネントにのみ適用されます。

  • このプロシージャは、顧客が作成したPL/SQLファンクション、資格証明、ネットワークACLなど、仕様の一部ではない外部依存性または関連リソースを削除または再作成しません。

  • インポートされた仕様に、チーム、エージェント、ツールまたはタスクを無効としてマークするメタデータが含まれている場合、Select AI Agentはそれらのコンポーネントを無効としてインポートします。

オブジェクト・ストレージのファイルからチームをインポートします

この例では、オブジェクト・ストレージに格納されているJSONファイルからチーム定義をインポートします。この方法は、チーム定義をファイルにすでにエクスポートした場合に使用します。次の例では、ReturnAgencyチームをインポートします。

BEGIN
  DBMS_CLOUD_AI_AGENT.IMPORT_TEAM(
    profile_name                   => 'PROFILE_NAME',
    team_name                      => 'Marketing',
    object_storage_credential_name => 'cred1',
    location                       => 'https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/my_namespace/my_bucket/my_data_folder/return_agency.json'
  );
END;
/
ディレクトリ・ファイルからのチームのインポート

ディレクトリ・オブジェクトに格納されているJSONファイルからSelect AIエージェント・チーム定義をインポートします。locationパラメータは、ディレクトリ・オブジェクトおよびファイル名を指定します。

BEGIN
    DBMS_CLOUD_AI_AGENT.import_team(
        profile_name 		=> 'PROFILE_NAME',
        team_name 		=> 'returnagency',
        location 		=> 'MY_DIR:return_agency.json'
  );
END;
/
CLOBとして渡された仕様からチームをインポートします

この例では、必要なユーザー作成関数を最初に作成してから、CLOBに格納されているJSON仕様からチームをインポートします。この方法は、PL/SQL内でチーム定義を作成または変更する場合に使用します。

-- Create required functions first

CREATE OR REPLACE FUNCTION run_sql(nl_query IN CLOB)
RETURN CLOB
IS
  v_query CLOB;
BEGIN
  v_query := '(Name,Description,Category,Date Created,Price,Discounted Price,Offer Expiration Date)
("AquaPure Water Pitcher", "2-liter BPA-free water pitcher with filter", "Kitchen", "2024-04-12", 34.95, 27.95, "2024-07-01")
("CozyLuxe Throw Blanket", "Ultra-soft microfiber throw blanket (50""x60"")", "Living Room", "2024-03-22", 19.99, None, None)
("SafeStep Bath Mat", "Non-slip bath mat, mildew resistant, gray", "Bathroom", "2024-05-05", 12.50, 9.99, "2024-06-15")
("PowerPlug Extension", "6-outlet surge protector power strip", "Electrical", "2024-01-10", 21.75, None, None)
("FreshGuard Storage Bags", "Set of 20 reusable silicone food storage bags", "Kitchen", "2024-03-17", 15.60, 12.48, "2024-06-10")';

  RETURN v_query;
END run_sql;
/

CREATE OR REPLACE FUNCTION email(contents IN CLOB)
RETURN CLOB
IS
BEGIN
  DBMS_OUTPUT.PUT_LINE('>>>>>>>> Agent generated:' || CHR(10) ||
                       contents || CHR(10) ||
                       '<<<<<<<<<');
  RETURN 'Email sent successfully';
END email;
/

DECLARE
  l_input_json CLOB;
BEGIN
  l_input_json :=
  q'[
{
    "agents": [],
    "component_type": "Agent",
    "description": "You are a marketing agent who helps plan campaigns.",
    "flows": [],
    "id": "1d02da...",
    "inputs": [],
    "llm_config": {
        "component_type": "OCI_CONFIG",
        "default_generation_parameters": {
            "max_tokens": null,
            "temperature": null,
            "top_p": null
        },
        "description": null,
        "id": "9e2a1...",
        "metadata": {},
        "model_id": "gpt-5.5",
        "name": "openai/gpt-5.5"
    },
    "metadata": {},
    "name": "Marketing assistant",
    "outputs": [],
    "system_prompt": "Help the user with tasks around marketing products for their business.",
    "tools": [
        {
            "component_type": "ServerTool",
            "description": "Send an email to the current user.",
            "id": "9fcc6...",
            "inputs": [
                {
                    "title": "content",
                    "type": "string"
                }
            ],
            "metadata": {},
            "name": "Email",
            "outputs": [
                {
                    "type": "string"
                }
            ]
        },
        {
            "component_type": "ServerTool",
            "description": "Generates a SQL query for the given natural language question, runs it, and returns the results.",
            "id": "ae1e6...",
            "inputs": [
                {
                    "title": "nl_query",
                    "type": "string"
                }
            ],
            "metadata": {},
            "name": "run_sql",
            "outputs": [
                {
                    "type": "string"
                }
            ]
        }
    ]
}
]';

  DBMS_CLOUD_AI_AGENT.IMPORT_TEAM(
    profile_name  => 'PROFILE_NAME',
    team_name     => 'TEAM_NAME',
    specification => l_input_json
  );
END;
/

GET_DEFINITIONファンクション

DBMS_CLOUD_AI_AGENT.GET_DEFINITIONファンクションでは、既存のAIエージェント・オブジェクトの正規のPL/SQL定義を戻します。このファンクションは、リクエストされたオブジェクト型に従って、CREATE_AGENTCREATE_TOOLCREATE_TASKまたはCREATE_TEAMを使用して定義を再構築します。

デフォルトでは、この関数は要求されたオブジェクトのみを返します。返されたチーム定義に、チームの再作成に必要な依存エージェント、タスクおよびツール定義が含まれている必要がある場合は、dependent_objectsをtrueに設定します。

構文

DBMS_CLOUD_AI_AGENT.GET_DEFINITION(
  object_type IN VARCHAR2,
  object_name IN VARCHAR2,
  params      IN CLOB DEFAULT NULL
) RETURN CLOB;

パラメータ

パラメータ 摘要
object_type エクスポートするオブジェクト・タイプ。サポートされている値は、AGENT、TASK、TOOLおよびTEAMです。
object_name 定義が返されるエージェント、タスク、ツールまたはチームの名前。
params

オプションのJSONオブジェクト。サポートされているキー: dependent_objectsdependent_objectstrueに設定して、リクエストされたオブジェクトを再作成するために必要な依存オブジェクト定義を含めます。

  • TEAMの場合、この関数はTEAMAGENTTASKおよびTOOL定義を返します。
  • AGENTの場合、この関数はAGENTおよびTOOL定義を返します。
  • TASKの場合、この関数はTASKおよびTOOL定義を返します。

デフォルトでは、dependent_objectsNULLです。このパラメータを省略すると、リクエストされたオブジェクトの定義のみが戻されます。

返品

1つ以上の正規の実行可能PL/SQLブロックを含むCLOBを返します。戻されたブロックは、リクエストされたオブジェクト・タイプに対して作成プロシージャを使用します。

使用上のノート

  • この関数は、現在の呼び出し元が所有するオブジェクトの定義を返します。クロススキーマ、付与または共有オブジェクトは含まれません。
  • paramsを省略するか、dependent_objectstrueでない場合、出力にはリクエストされたオブジェクト定義のみが含まれます。ただし、パブリック名によって依存オブジェクトを参照しますが、作成ブロックは含まれません。
  • dependent_objectstrueの場合、出力には、リクエストされたオブジェクト定義とチームの再作成に必要な依存定義が含まれます。
  • 返される定義は、ユーザー対応の構造化JSONコンテンツを保持し、非表示の属性、内部リンケージ・メタデータおよび実装専用コンテンツを除外します。パブリック資格証明名は、再作成に必要な場合に指定できますが、シークレット値は返されません。

依存オブジェクトなしでチーム定義を返し、依存オブジェクトを使用してチーム定義を返します。

SELECT DBMS_CLOUD_AI_AGENT.GET_DEFINITION(
  object_type => 'TEAM',
  object_name => 'TEAM_NAME'
) AS definition
FROM dual;

SELECT DBMS_CLOUD_AI_AGENT.GET_DEFINITION(
  object_type => 'TEAM',
  object_name => 'TEAM_NAME',
  params      => '{"dependent_objects": true}'
) AS definition
FROM dual;