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 |
エージェントのステータス。 デフォルト値は |
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に設定されます。supervisorをtrueに設定するのは、チームのルーティングを制御するエージェントの場合のみです。- エージェントの作成後は「監督者」オプションを更新できません。
- 可能な場合は、就業者固有のタスク指示を監督者から除外し、就業者タスクに配置します。
例: スーパーバイザエージェントの作成
この例では、チームを制御し、サブタスクを構成済の就業者エージェントに委任できるスーパーバイザ・エージェントを作成します。
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 |
このパラメータのデフォルト値は |
例
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 |
タスクのステータス。 デフォルト値は |
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に送信されるプロンプトに含まれます。自然言語入力を表す これは必須パラメータです。 |
tools |
- | エージェントがタスクを完了するために使用できるツール名のJSON配列。例: "tools": ["RAG", "SQL", "WEBSEARCH", "NOTIFICATION"]。 |
input |
- | このタスクの入力として出力を使用する必要がある他のタスクを識別します。Select AIは、これらの出力をLLMに自動的に提供します。 |
enable_human_tool |
- | タスク中に情報や説明が必要な場合に、エージェントがユーザーに質問できるようにします。 デフォルト値はtrueです。 ノート: タスク |
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 |
このパラメータのデフォルト値は |
例
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 |
ツールのステータス。 デフォルト値は |
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 |
- | 組込みツール・タイプを指定します。設定した場合、 可能な値は次のとおりです:
カスタマイズされた名前とパラメータを使用して組込みツールを作成できます。また、同じ |
tool_params |
- | 組込みツールを登録するためのパラメータを指定します。 |
tool_inputs |
- | 入力引数について説明します。表の列コメントと同様です。たとえば: |
組込みツールの前提条件
組込みツールを使用する前に、次のステップを実行します。
RAGツール
- ベクトル索引を参照するAIプロファイルを作成します。Select AI with Retrieval Augmented Generation (RAG)を参照してください。
通知ツール
SLACKおよびEMAILがサポートされています。
SLACKツール:
-
Autonomous AI Databaseからメッセージを受信するようにSlackアプリケーションを設定します。
-
DBMS_CLOUD_NOTIFICATIONを使用して資格証明を作成し、Autonomous AI DatabaseからSlack通知を送信します。Autonomous AI DatabaseからのSlack通知の送信を参照してください。
EMAILツール:
ノート
ノート:電子メール・ツールは、OCIから電子メール通知を送信します。
- 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 -
ACLを使用してSMTPアクセス権を付与します。SMTP接続の構成を参照してください。
-
Eメール配信用のSMTP資格証明を生成します。
UTL_SMTPパッケージは、Eメールの送信時に資格証明を使用してEメール配信サーバーでの認証を行います。詳細は、ユーザーに対するSMTP資格証明の生成を参照してください。 -
承認送信者を作成します。
UTL_SMTP.MAILサブプログラムでFromアドレスとして使用するすべての電子メール・アドレスに対して、このステップを実行します。詳細は、承認済送信者の管理を参照してください。 - アクセス制御エントリ(ACE)を追加して、ユーザーにSMTPアクセス権を付与します。詳細は、DBMS_CLOUD_NOTIFICATIONを使用したAutonomous AI Databaseからの電子メールの送信を参照してください。
DBMS_CLOUD_AI_AGENTパッケージの組込みツール・タイプ
組込みツールは、tool_typeおよびtool_params属性を使用して登録できます。
| ツールタイプ | 摘要 | 必須パラメータ |
|---|---|---|
SQL |
自然言語をSQL問合せに変換します。 ノート:組込みSQLツールでは、 runsql、showsql、explainsqlなどのSelect AIアクションを使用して、データベース関連のプロンプトを処理します。組込みツールには、これらのアクションの動作および使用方法を定義するデフォルトの指示が含まれています。CREATE_TOOLプロシージャのinstruction属性を使用して、エージェントがプロンプトを最適なアクションにマップする方法をガイドすることで、デフォルトの動作を補足できます。 |
profile_name |
RAG |
ベクトル検索を介して取得拡張生成を実行します。 | profile_name |
NOTIFICATION |
Slackチャネルにメッセージを送信するか、SMTPを使用して電子メールを送信します。使用可能なオプションは次のとおりです。
|
|
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 |
このパラメータのデフォルト値は |
例
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 |
チームのステータス。 デフォルト値は |
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配列を指定します。エージェントは、同じ名前を使用して複数のタスクに割り当てることができます。 これは必須パラメータです。 例: |
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 |
タスクに指定されたユーザー問合せまたはレスポンスを指定します。 タスクが タスクが |
params |
AIエージェント・チーム・プロセス中に使用されるカスタマイズされたパラメータを指定します。サポートされるパラメータは次のとおりです。
|
例
次の例では、現在のセッションでユーザー指定の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 |
このパラメータのデフォルト値は |
例
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実行状態(RUNNING、WAITING_FOR_HUMAN、SUCCEEDED、FAILEDなど)を返します。
例
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実行状態(RUNNING、WAITING_FOR_HUMAN、SUCCEEDED、FAILEDなど)を返します。
例
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パラメータ。サポートされているパラメータは、
デフォルト値は |
使用上のノート
-
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_nameとlocationの組合せでは、同じインポート動作が使用されます。唯一の違いは、仕様コンテンツのソースです。 -
インポートでは、仕様に含まれない依存リソースは作成されません。これらのリソースには、資格証明、顧客が作成したPL/SQLプロシージャおよびファンクション、外部RESTサービス、OCIファンクション、AWSラムダ・ファンクション、ネットワークACL、エンドポイント、プロファイル、索引およびその他の外部サポート・リソースが含まれます。インポートされたチームを使用する前に、ターゲット環境でこれらの依存関係を個別に作成します。
-
組み込みの Select AIツールでは、インポートされたコンポーネント定義として手動で再作成する必要はありません。ただし、これらのツールに必要な環境設定は、ターゲット・データベースにすでに存在している必要があります。
-
仕様にタスクが含まれていない場合、
DBMS_CLOUD_AI_AGENTはインポート時にタスクを自動的に作成できます。この生成されたタスクはシステム作成メタデータであり、ソース仕様で明示的に定義されたタスクとは同等ではありません。 -
forceがTRUEに設定されている場合、インポートは、エージェント、ツール、タスクなどの名前で、既存の競合するインポート済コンポーネントをチェックします。競合が発生すると、インポートによって同じ名前の既存のコンポーネントが削除され、そのコンポーネントがインポート仕様から再作成されます。この動作は、競合するインポート済コンポーネントにのみ適用されます。 -
このプロシージャは、顧客が作成した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_AGENT、CREATE_TOOL、CREATE_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オブジェクト。サポートされているキー:
デフォルトでは、 |
返品
1つ以上の正規の実行可能PL/SQLブロックを含むCLOBを返します。戻されたブロックは、リクエストされたオブジェクト・タイプに対して作成プロシージャを使用します。
使用上のノート
- この関数は、現在の呼び出し元が所有するオブジェクトの定義を返します。クロススキーマ、付与または共有オブジェクトは含まれません。
paramsを省略するか、dependent_objectsがtrueでない場合、出力にはリクエストされたオブジェクト定義のみが含まれます。ただし、パブリック名によって依存オブジェクトを参照しますが、作成ブロックは含まれません。dependent_objectsがtrueの場合、出力には、リクエストされたオブジェクト定義とチームの再作成に必要な依存定義が含まれます。- 返される定義は、ユーザー対応の構造化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;