DBMS_CLOUD_AI_AGENT 패키지

이 패키지는 Select AI 에이전트, 작업, 도구 및 오케스트레이션을 정의하고 관리합니다.

주: DBMS_CLOUD_AI_AGENT 패키지에 대한 지원은 Oracle Database 19c 버전 19.29부터, Oracle Database 26ai 버전 23.26부터 제공됩니다.

DBMS_CLOUD_AI_AGENT 서브 프로그램 요약

이 섹션에서는 자율운영 AI 데이터베이스와 함께 제공되는 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 함수 AI 에이전트 선택 도구에 대한 메타데이터 및 입력 스키마 정보를 반환합니다.
RUN_TOOL 함수 JSON 입력 페이로드를 사용하여 이름별로 AI 에이전트 선택 툴을 호출합니다.
LIST_TEAMS 함수 호출하는 사용자가 사용할 수 있는 에이전트 팀을 나열합니다.
DESCRIBE_TEAM 함수 선택한 에이전트 팀에 대한 메타데이터 및 집계된 기능을 반환합니다.
GET_TEAM_STATE 함수 에이전트 팀 대화에 대한 최신 실행 상태를 반환합니다.
SET_EXECUTION_STATE 프로시저 대화식 세션을 성공으로 표시하는 등 대기 중인 팀 실행 상태를 업데이트합니다.

CREATE_AGENT 프로시저

DBMS_CLOUD_AI_AGENT.CREATE_AGENT 절차를 사용하여 Select AI Agent 프레임워크에서 새 AI 에이전트를 등록합니다. agent_name를 사용하여 에이전트의 ID를 정의하고, 속성 매개변수로 해당 동작을 구성하고, 선택적으로 설명을 제공합니다.

구문

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입니다.

예

다음 예에서는 고객 제품 반품을 처리하는 에이전트를 생성합니다. 전체 예는 예제: 제품 반품 에이전트 생성을 참조하십시오.

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;
/

CREATE_AGENT 속성

이러한 속성은 에이전트의 역할 및 AI 프로파일 이름을 정의합니다.

속성

속성 이름 기본값 설명
profile_name -

에이전트가 LLM에 요청을 전송하는 데 사용하는 AI 프로파일입니다.

필수 매개변수입니다.

role -

에이전트의 함수를 정의하고 에이전트에 컨텍스트를 제공합니다. LLM으로 전송됩니다.

필수 매개변수입니다.

enable_human_tool True 상담원이 사용자에게 정보 또는 설명을 질문할 수 있도록 합니다.
short_term_memory_length 30 태스크 실행에 대한 각 LLM 호출에 포함된 최대 대화 회전 수를 지정합니다.

다음 예에서는 절차에서 에이전트 속성을 사용자 정의하는 방법을 보여줍니다.

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;
/

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;
/

사용 노트

force를 사용하여 에이전트를 삭제하고 AI 에이전트가 존재하지 않을 경우 오류를 무시합니다.

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

필수 매개변수입니다.

tools -

에이전트가 작업을 완료하는 데 사용할 수 있는 도구 이름의 JSON 배열입니다. 예: "tools": ["RAG", "SQL", "WEBSEARCH", "NOTIFICATION"].

필수 매개변수입니다.

input - 이 태스크에 대한 입력으로 출력이 사용되어야 하는 기타 태스크를 식별합니다. Select AI는 이러한 출력을 LLM에 자동으로 제공합니다.
enable_human_tool -

태스크 중 정보 또는 설명이 필요한 경우 상담원이 사용자에게 질문을 할 수 있도록 합니다.

기본값은 true입니다.

주:

enable_human_tool 작업은 에이전트 enable_human_tool 속성을 겹쳐씁니다. 에이전트 enable_human_tool가 false로 설정되고 작업 enable_human_tool가 true로 설정된 경우 작업 실행 중에 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입니다.

예

다음 예에서는 수신자에게 전자 메일을 생성하는 도구를 만듭니다.

BEGIN
  DBMS_CLOUD_AI_AGENT.CREATE_TOOL(
    tool_name  => 'NOTIFICATION',
    attributes => '{"tool_type": "EMAIL"}'
  );
END;
/

CREATE_TOOL 속성

이러한 속성은 속성 매개변수의 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 프로파일을 생성합니다. RAG(검색 증강 생성)를 사용하여 자연어 프롬프트 향상을 참조하십시오.

알림 도구

SLACK 및 EMAIL가 지원됩니다.

SLACK Tool:

  1. Autonomous Database에서 메시지를 수신하도록 Slack 애플리케이션을 설정합니다.

  2. DBMS_CLOUD_NOTIFICATION를 사용하여 인증서를 생성하여 Autonomous Database에서 Slack 통지를 전송합니다. 자율운영 AI 데이터베이스에서 Slack 통지 보내기를 참조하십시오.

전자메일 툴:

참고: 전자메일 툴은 OCI에서 전자메일 통지를 전송합니다.

  1. SMTP 끝점을 식별합니다. 예를 들어, SMTP 끝점 중 하나를 선택합니다.
    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 액세스를 부여합니다. Configuring SMTP Connection을 참조하십시오.

  3. 전자메일 전달을 위한 SMTP 인증서를 생성합니다. UTL_SMTP 패키지는 사용자가 전자 메일을 보낼 때 자격 증명을 사용하여 전자 메일 배달 서버로 인증합니다. 자세한 내용은 사용자용 SMTP 인증서 생성을 참조하십시오.

  4. 승인된 발신자를 생성합니다. UTL_SMTP.MAIL 하위 프로그램에서 From 주소로 사용하는 모든 전자메일 주소에 대해 이 단계를 완료합니다. 자세한 내용은 승인된 발신자 관리를 참조하십시오.

  5. ACE(액세스 제어 항목)를 추가하여 사용자에게 SMTP 액세스 권한을 부여합니다. 자세한 내용은 자율운영 AI 데이터베이스에서 이메일 전송을 참조하십시오.

DBMS_CLOUD_AI_AGENT 패키지의 내장 도구 유형

tool_type 및 tool_params 속성을 사용하여 내장 도구를 등록할 수 있습니다.

도구 유형 설명 필수 매개변수
SQL 자연어를 SQL 쿼리로 변환합니다. profile_name
RAG 벡터 검색을 통해 검색 증강 생성을 수행합니다. profile_name
NOTIFICATION

메시지를 Slack 채널로 보내거나 SMTP를 사용하여 전자 메일을 보냅니다. 사용 가능한 옵션

  • slack
  • email

notification_type.

notification_type가 slack인 경우 credential_name 및 channel은 필수입니다.

notification_type가 email인 경우 credential_name, recipient, sender 및 smtp_host는 필수입니다.

WEBSEARCH 웹에서 정보를 검색합니다. 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 각 새 실행 시작 시 시스템 프롬프트에 메모리 컨텍스트로 포함된 최대 이전 작업 레벨 요약 수를 지정합니다.

SET_TEAM 함수

DBMS_CLOUD_AI_AGENT.SET_TEAM를 사용하여 현재 세션에 대한 AI 에이전트 팀을 지정합니다.

팀이 설정되면 select ai agent 작업만 사용으로 설정되고 시스템에서 다른 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: 에이전트 팀과 연관된 대화 세션을 식별합니다. Stateless 애플리케이션 통합(예: Oracle APEX AI 애플리케이션 생성기)의 경우 이 매개변수를 사용하여 서로 다른 사용자 접속을 구분할 수 있습니다.
  • 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 프로시저

DBMS_CLOUD_AI_AGENT.ENABLE_TEAM 프로시저를 사용하여 사용자 지정 AI 에이전트 팀을 사용으로 설정합니다. 그러면 팀의 상태가 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 프로시저

DBMS_CLOUD_AI_AGENT.DISABLE_TEAM 절차를 사용하여 기존 AI 에이전트 팀을 사용 안함으로 설정합니다. 그러면 팀의 상태가 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 함수

DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL 함수를 사용하여 툴에 대한 JSON 메타데이터를 반환합니다. 결과에는 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 함수를 사용하여 에이전트 팀에 대한 메타데이터를 반환합니다. 이 기능은 팀에서 사용할 수 있는 AI 에이전트 도구 선택을 A2A 호환 기술 표현에 매핑합니다.

구문

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM(
  team_name IN VARCHAR2
) RETURN CLOB;

매개변수

매개변수 설명
team_name 메타데이터 및 기능이 반환되는 에이전트 팀의 이름입니다.

반품

팀 이름, 설명, 선택적 버전 및 기술 목록이 포함된 JSON 객체를 포함하는 CLOB를 반환합니다.

사용법 참고

예

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;
/