Pacote DBMS_CLOUD_AI_AGENT

Este pacote define e gerencia agentes, tarefas, ferramentas e orquestração do Select AI.

Resumo dos Subprogramas DBMS_CLOUD_AI_AGENT

Esta seção abrange os subprogramas DBMS_CLOUD_AI_AGENT do Select AI Agent fornecidos com o Autonomous AI Database.

Subprograma Descrição
Procedimento CREATE_AGENT Este procedimento cria um agente.
Atributos CREATE_AGENT Fornece atributos para criar um agente.
Procedimento ENABLE_AGENT Este procedimento ativa um agente.
Procedimento DISABLE_AGENT Este procedimento desativa um agente.
Procedimento DROP_AGENT Este procedimento elimina um agente existente.
Procedimento CREATE_TASK Este procedimento cria uma tarefa que um agente e uma equipe de agente podem incluir.
Atributos CREATE_TASK Fornece atributos para criar uma tarefa do agente.
Procedimento ENABLE_TASK Este procedimento ativa uma tarefa do agente.
Procedimento DISABLE_TASK Este procedimento desativa uma tarefa do agente.
Procedimento DROP_TASK Este procedimento elimina uma tarefa de agente existente.
Procedimento CREATE_TOOL Este procedimento cria ferramentas personalizadas que um agente pode incluir.
Atributos CREATE_TOOL Fornece atributos para criar ferramentas.
Procedimento ENABLE_TOOL Este procedimento permite uma ferramenta.
Procedimento DISABLE_TOOL Este procedimento desativa uma ferramenta.
Procedimento DROP_TOOL Este procedimento elimina uma ferramenta existente.
Procedimento CREATE_TEAM Este procedimento cria uma equipe de agente e inclui agentes e tarefas.
Atributos CREATE_TEAM Fornece atributos para criar uma equipe de agente.
Função SET_TEAM Este procedimento define a equipe do agente na sessão atual.
Função GET_TEAM Este procedimento retorna a equipe do agente definida na sessão atual.
Função CLEAR_TEAM Este procedimento limpa a equipe do agente definida na sessão atual.
Função RUN_TEAM Este procedimento cria um novo agente ou executa um pausado.
Procedimento ENABLE_TEAM Este procedimento permite que uma equipe de agentes.
Procedimento DISABLE_TEAM Este procedimento desativa uma equipe de agente.
Procedimento DROP_TEAM Este procedimento elimina uma equipe de agente existente.
Função DESCRIBE_TOOL Retorna informações de metadados e esquema de entrada para uma ferramenta Selecionar Agente de IA.
Função RUN_TOOL Chama uma ferramenta Selecionar Agente de IA por nome usando um payload de entrada JSON.
Função LIST_TEAMS Lista as equipes de agentes disponíveis para o usuário que fez a chamada.
Função DESCRIBE_TEAM Retorna metadados e recursos agregados para uma equipe de agente selecionada.
Função GET_TEAM_STATE Retorna o estado de execução mais recente de uma conversa da equipe do agente.
Procedimento SET_EXECUTION_STATE Atualiza um estado de execução da equipe de espera, como marcar uma sessão interativa como bem-sucedida.
Função EXPORT_TEAM Esta função exporta uma equipe de agente Selecionar AI para um CLOB.
Procedimento EXPORT_TEAM Este procedimento grava a definição da equipe exportada em um URI do serviço Object Storage ou em um arquivo de diretório de banco de dados.
Procedimento IMPORT_TEAM Este procedimento importa uma especificação de equipe de agente Selecionar AI para o banco de dados.
Função GET_DEFINITION Retorna PL/SQL executável canônico para um agente, tarefa, ferramenta ou equipe.
Procedimento GRANT_TEAM_ACCESS Concede a um usuário ou função acesso para executar uma equipe de agentes.
Procedimento REVOKE_TEAM_ACCESS Revoga uma concessão de usuário ou função para uma equipe de agentes.
Função GET_VARIABLE Lê uma variável de runtime com namespace.
Procedimento SET_VARIABLE Define ou limpa uma variável de runtime com namespace.

CREATE_AGENT Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.CREATE_AGENT para registrar um novo agente do AI na estrutura Selecionar Agente do AI. Defina a identidade do agente usando agent_name, configure seu comportamento com o parâmetro de atributos e, opcionalmente, forneça uma descrição.

Sintaxe

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

Parâmetros

Parâmetro Descrição
agent_name

Um nome para o agente AI. O nome do agente deve seguir as regras de nomenclatura do identificador Oracle SQL. O tamanho máximo do nome é de 125 caracteres.

Este é um parâmetro obrigatório.

attributes Atributos personalizados para o agente AI. Consulte Atributos CREATE_AGENT para obter mais detalhes.
status

Status do agente.

O valor padrão é enabled.

description

Descrição especificada pelo usuário para o agente AI.

O valor default é NULL.

Exemplo

O exemplo a seguir cria um agente para processar devoluções de produtos do cliente. Para obter um exemplo completo, consulte Exemplo: Criar um Agente de Devolução de Produto.

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 Atributos

Esses atributos definem a função de um agente e o nome do perfil do AI.

Atributos

Nome do Atributo Valor Padrão Descrição
profile_name -

O perfil de IA que o agente está usando para enviar solicitação ao LLM.

Este é um parâmetro obrigatório.

role -

Defina a função do agente e forneça contexto ao agente. Isso é enviado ao LLM.

Este é um parâmetro obrigatório.

enable_human_tool True Permite que o agente faça perguntas ao usuário para obter informações ou esclarecimentos.
tools Nenhum Especifica as ferramentas que um agente pode acessar quando ele executa as ferramentas diretamente.
short_term_memory_length 30 Especifica o número máximo de giros de conversa incluídos em cada chamada do LLM para uma execução de tarefa.
supervisor false Designa o agente como um supervisor que pode controlar uma equipe supervisionada.

O exemplo a seguir mostra como você pode personalizar atributos de agente no procedimento.

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

Observações de Uso

  • profile_name identifica o perfil de IA usado para chamadas de LLM.
  • supervisor é opcional e assume como padrão false.
  • Defina supervisor como true somente para agentes que controlam o roteamento da equipe.
  • Não é possível atualizar a opção de supervisor após a criação do agente.
  • Mantenha as instruções de tarefa específicas do colaborador fora do supervisor quando possível; coloque-as nas tarefas do colaborador.

Exemplo: Criar um Agente Supervisor

Este exemplo cria um agente do supervisor que pode controlar uma equipe e delegar subtarefas a agentes do colaborador configurados.

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 Procedimento

Este procedimento ativa o agente do AI que o usuário especifica. O procedimento altera o status do agente do AI para ENABLED.

Sintaxe

DBMS_CLOUD_AI_AGENT.ENABLE_AGENT(
   agent_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
agent_name

Nome do agente do AI a ser ativado.

Este parâmetro é obrigatório.

Exemplo para Ativar Perfil de IA

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

DISABLE_AGENT Procedimento

Este procedimento desativa o agente do AI no banco de dados atual. O status do agente do AI é alterado para DISABLED por este procedimento.

Sintaxe

DBMS_CLOUD_AI_AGENT.DISABLE_AGENT(
   agent_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
agent_name

Nome do agente AI.

Este parâmetro é obrigatório.

Exemplo

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

DROP_AGENT Procedimento

O procedimento elimina um agente AI existente. Se o agente não existir, o procedimento gerará um erro.

Sintaxe

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

Parâmetros

Parâmetro Descrição
agent_name

Nome do agente AI.

Este é um parâmetro obrigatório.

force

Se TRUE, o procedimento ignorará erros se o agente AI não existir.

O valor padrão para esse parâmetro é FALSE.

Exemplo

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

Observações de Uso

Use force para eliminar um agente e ignorar erros se o agente do AI não existir.

CREATE_TASK Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.CREATE_TASK para definir uma tarefa que um agente Selecionar AI pode incluir em seu processo de raciocínio. Cada tarefa tem um nome exclusivo e um conjunto de atributos que especificam o comportamento do agente ao planejar e executar a tarefa.

Você pode definir dependências entre tarefas usando o atributo input, permitindo que Select AI transmita a saída de uma tarefa para outra. Isso suporta raciocínio encadeado e fluxos de trabalho de várias etapas.

Sintaxe

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

Parâmetros

Parâmetro Descrição
task_name

Um nome exclusivo para a tarefa.

Este é um parâmetro obrigatório.

attributes Objeto JSON contendo atributos específicos da tarefa. Consulte Atributos CREATE_TASK.
status

Status da tarefa.

O valor-padrão é ENABLED.

description

Descrição definida pelo utilizador para ajudar a identificar a tarefa. Esse valor é armazenado no banco de dados, mas não é enviado ao LLM.

O valor default é NULL.

Exemplo

O exemplo a seguir cria uma tarefa para processar uma devolução de produto de um cliente.

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 Atributos

Esses atributos definem as instruções e as ferramentas do agente disponíveis para a tarefa.

Atributos

Nome do Atributo Valor Padrão Descrição
instruction -

Uma declaração clara e concisa que descreve o que a tarefa deve realizar. Este texto é incluído no prompt enviado ao LLM. Você pode incluir um espaço reservado {query} para representar a entrada da sua linguagem natural. Por exemplo:

SELECT AI AGENT \

Este é um parâmetro obrigatório.

tools - Um array JSON de nomes de ferramentas que o agente pode usar para concluir a tarefa. Por exemplo: "tools": ["RAG", "SQL", "WEBSEARCH", "NOTIFICATION"].
input - Identifica outras tarefas cujas saídas devem ser usadas como entrada para esta tarefa. Selecione AI para fornecer automaticamente essas saídas ao LLM.
enable_human_tool -

Permite que o agente faça perguntas ao usuário quando ele exigir informações ou esclarecimentos durante uma tarefa.

O valor padrão é verdadeiro.

Observação: A tarefa enable_human_tool substitui o atributo enable_human_tool do agente. Se o agente enable_human_tool for definido como false e a tarefa enable_human_tool for definida como true, durante a execução da tarefa, o LLM deverá fazer perguntas.

ENABLE_TASK Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.ENABLE_TASK para ativar uma tarefa definida anteriormente. Isso altera o status da tarefa para ENABLED, permitindo que o agente a use durante o processamento.

Sintaxe

DBMS_CLOUD_AI_AGENT.ENABLE_TASK(
   task_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
task_name

Nome para a tarefa a ser ativada.

Este parâmetro é obrigatório.

Observações de Uso

A tarefa já deve existir no sistema. Este procedimento atualiza o status da tarefa, tornando-o disponível para o processo do agente durante workflows de argumentos.

Exemplo de Ativação de uma Tarefa

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

DISABLE_TASK Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DISABLE_TASK para desativar uma tarefa no banco de dados atual. Isso altera o status da tarefa para DISABLED, impedindo que o agente o use durante o processamento.

Sintaxe

DBMS_CLOUD_AI_AGENT.DISABLE_TASK(
   task_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
task_name

Nome da tarefa a ser desativada.

Este parâmetro é obrigatório.

Observações de Uso

A desativação de uma tarefa não a exclui; você pode reativá-la posteriormente usando DBMS_CLOUD_AI_AGENT.ENABLE_TASK. Depois de desativada, a tarefa se torna inativa e o agente não a considera mais durante a seleção da tarefa.

Exemplo

O exemplo a seguir desativa uma tarefa existente.

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

DROP_TASK Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DROP_TASK para remover uma tarefa definida anteriormente do banco de dados. Se a tarefa não existir, você poderá suprimir o erro definindo o parâmetro force como TRUE.

Sintaxe

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

Parâmetros

Parâmetro Descrição
task_name

Nome da tarefa a ser eliminada.

Este é um parâmetro obrigatório.

force

Se TRUE, o procedimento ignorará erros se a tarefa não existir.

O valor padrão para esse parâmetro é FALSE.

Exemplo

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

Observações de Uso

Use force para eliminar uma tarefa e ignorar erros se a tarefa não existir.

CREATE_TOOL Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.CREATE_TOOL para registrar uma ferramenta personalizada que um agente pode usar durante o processamento de tarefas. Cada ferramenta é identificada por um tool_name exclusivo e inclui atributos que definem sua finalidade, lógica de implementação e metadados.

As ferramentas podem ser funções PL/SQL personalizadas ou tipos de ferramentas incorporadas, como RAG, SQL, WEBSEARCH ou NOTIFICATION.

Sintaxe

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

Parâmetros

Parâmetro Descrição
tool_name

Um nome exclusivo para identificar a ferramenta.

Este é um parâmetro obrigatório.

attributes

Atributos de ferramenta no formato JSON. Consulte Atributos CREATE_TOOL.

Este é um parâmetro obrigatório.

status

Status da ferramenta.

O valor-padrão é ENABLED.

description

Descrição definida pelo utilizador para ajudar a identificar a ferramenta. Esse valor é armazenado no banco de dados, mas não é enviado ao LLM.

O valor default é NULL.

Exemplo

O exemplo a seguir cria uma ferramenta SQL para gerar SQL a partir de um perfil NL2SQL existente. Consulte Exemplo: Criar Ferramentas Incorporadas para obter mais informações.

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

CREATE_TOOL Atributos

Esses atributos fornecem configuração de ferramenta usando um objeto JSON no parâmetro de atributos. Cada atributo configura como o agente usa a ferramenta durante o raciocínio.

Atributos

Nome do Atributo Valor Padrão Descrição
instruction -

Uma declaração clara e concisa que descreve o que a ferramenta deve realizar e como fazê-lo. Este texto é incluído no prompt enviado ao LLM.

Este é um parâmetro obrigatório.

function -

Especifica a função ou o procedimento PL/SQL a ser chamado quando a ferramenta é usada.

Este é um parâmetro obrigatório para ferramentas personalizadas.

tool_type -

Especifica um tipo de ferramenta incorporado. Se definido, instruction e function não serão obrigatórios.

Os valores possíveis são:

  • SQL
  • RAG
  • WEBSEARCH
  • NOTIFICATION

Você pode criar ferramentas integradas com nomes e parâmetros personalizados. Você também pode criar várias ferramentas incorporadas com o mesmo tool_type, mas com tool_params diferente.

tool_params - Especifica parâmetros para registrar ferramentas incorporadas.
tool_inputs -

Descreve os argumentos de entrada. Semelhante aos comentários da coluna em uma tabela. Por exemplo:

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

Pré-requisitos para a Ferramenta Incorporada

Execute estas etapas antes de usar ferramentas incorporadas:

Ferramenta RAG
  1. Crie um perfil de IA que faça referência a um índice vetorial. Consulte Selecionar IA com Geração Aumentada de Recuperação (RAG).
Ferramenta de NOTIFICAÇÃO

Os seguintes itens são suportados: SLACK e EMAIL.

Ferramenta SLACK:
  1. Configure um aplicativo Slack para receber mensagens do Autonomous AI Database.

  2. Crie uma credencial usando DBMS_CLOUD_NOTIFICATION para enviar notificações do Slack do Autonomous AI Database. Consulte Enviar Notificações do Slack do Autonomous AI Database.

Ferramenta EMAIL:

Observação

Observação: A ferramenta de e-mail envia uma notificação por e-mail do OCI.

  1. Identifique seu ponto final SMTP. Por exemplo, selecione um dos pontos finais 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. Conceda acesso SMTP usando uma ACL. Consulte Configurando a Conexão SMTP.

  3. Gere credenciais SMTP para a entrega de e-mail. O pacote UTL_SMTP usa credenciais para autenticação com servidores de entrega de e-mail quando você envia um e-mail. Consulte Gerar Credenciais SMTP para um Usuário para obter mais informações.

  4. Criar remetentes aprovados. Conclua esta etapa para todos os endereços de e-mail usados como o endereço From com o subprograma UTL_SMTP.MAIL. Consulte Gerenciando Remetentes Aprovados para mais informações.

  5. Conceda acesso SMTP ao usuário adicionando a Access Control Entry (ACE). Para obter mais detalhes, consulte Enviar E-mail do Autonomous AI Database Usando DBMS_CLOUD_NOTIFICATION.

Tipos de Ferramenta Incorporados no Pacote DBMS_CLOUD_AI_AGENT

Você pode registrar ferramentas incorporadas usando os atributos tool_type e tool_params.

Tipo de Ferramenta Descrição Parâmetros Obrigatórios
SQL Traduz linguagem natural em consultas SQL.

Observação: A ferramenta SQL integrada usa ações Selecionar IA, como runsql, showsql e explainsql, para processar prompts relacionados ao banco de dados. A ferramenta integrada inclui instruções padrão que definem o comportamento e o uso dessas ações. Você pode complementar o comportamento padrão usando o atributo instruction no procedimento CREATE_TOOL para orientar como o agente mapeia um prompt para a ação mais adequada.
profile_name
RAG Executa Geração Aumentada de Recuperação por meio de pesquisa vetorial. profile_name
NOTIFICATION

Envia mensagens para um canal do Slack ou envia e-mails usando SMTP. Opções disponíveis:

  • slack
  • email

notification_type.

Quando notification_type é slack, credential_name e channel são obrigatórios.

Quando notification_type for email, credential_name, recipient, sender e smtp_host serão obrigatórios.

WEBSEARCH Pesquisa informações da web. credential_name

ENABLE_TOOL Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.ENABLE_TOOL para ativar uma ferramenta criada anteriormente. Isso altera o status da ferramenta para ENABLED, permitindo que o agente use suas tarefas.

Sintaxe

DBMS_CLOUD_AI_AGENT.ENABLE_TOOL(
   tool_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
tool_name

Nome da ferramenta a ser ativada.

Este parâmetro é obrigatório.

Exemplo

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

DISABLE_TOOL Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DISABLE_TOOL para desativar uma ferramenta. Isso altera o status da ferramenta para DISABLED, impedindo que o agente o use em tarefas.

Sintaxe

DBMS_CLOUD_AI_AGENT.DISABLE_TOOL(
   tool_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
tool_name

Nome da ferramenta a ser desativada.

Este parâmetro é obrigatório.

Exemplo

O exemplo a seguir desativa uma ferramenta existente.

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

DROP_TOOL Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DROP_TOOL para remover uma ferramenta criada anteriormente com o agente. Se a tarefa não existir, você poderá suprimir o erro definindo o parâmetro force como TRUE.

Sintaxe

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

Parâmetros

Parâmetro Descrição
tool_name

Nome da ferramenta a ser eliminada.

Este é um parâmetro obrigatório.

force

Se TRUE, o procedimento ignorará erros se a ferramenta não existir.

O valor padrão para esse parâmetro é FALSE.

Exemplo

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

Observações de Uso

Use force para eliminar uma ferramenta e ignorar erros se a ferramenta não existir.

CREATE_TEAM Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.CREATE_TEAM para definir uma equipe de agentes de IA que trabalham juntos para realizar tarefas. Você especifica agentes e suas tarefas associadas, além de como as tarefas devem ser processadas.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name

Um nome exclusivo para identificar a equipe do agente de IA.

Este é um parâmetro obrigatório.

attributes

String formatada em JSON que define atributos de equipe, como agentes e processo. Consulte Atributos CREATE_TEAM.

Este é um parâmetro obrigatório.

status

Status da equipe.

O valor-padrão é ENABLED.

description

Descrição definida pelo usuário para identificar a finalidade da equipe. Esse valor é armazenado no banco de dados, mas não é enviado ao LLM.

O valor default é NULL.

Exemplo

O exemplo a seguir cria uma equipe de agente para processar a devolução do produto de um cliente.

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 Atributos

Esses atributos fornecem a configuração da equipe do agente de IA. Cada equipe tem um team_name exclusivo e usa um conjunto de atributos para definir sua estrutura e estratégia de execução.

Atributos

Nome do Atributo Valor Padrão Descrição
agents -

Especifica agentes de listagem de array JSON e suas tarefas correspondentes. Um agente pode ser atribuído a várias tarefas usando o mesmo nome.

Este é um parâmetro obrigatório.

Exemplo:

[ {"name": "", "task": "" ]
process - Especifica como as tarefas são executadas. Use "sequential" para que as tarefas sejam executadas uma após a outra em ordem.
long_term_memory_length 30 Especifica o número máximo de resumos no nível da tarefa anterior incluídos no prompt do sistema como contexto de memória no início de cada nova execução.
supervisor_agent - Nome do agente do supervisor. Este atributo é obrigatório para uma equipe liderada pelo supervisor.

Observações de Uso

Revise as regras de atributo da equipe antes de criar uma equipe supervisionada para que os mapeamentos de supervisor e colaborador permaneçam separados.

Observação

No design do supervisor, o processamento da subtarefa é sequencial: o objeto do agente do supervisor delega uma subtarefa de colaborador por vez e é retomado depois que o colaborador retorna um resultado, incluindo um resultado com falha.

  • supervisor_agent nomeia o objeto do agente do supervisor que controla a equipe.
  • agents lista os pares agente/tarefa do colaborador disponíveis para delegação.
  • Não liste o supervisor selecionado como um colaborador no array agents.
  • Use process com a definição da equipe. O design do supervisor inicial requer sequential; uma subtarefa de colaborador deve ser concluída antes que o supervisor delegue a próxima subtarefa.

Exemplo: Criar uma Equipe Conduzida pelo Supervisor

Este exemplo cria uma equipe supervisionada com pares de agente-tarefa do colaborador da conta e do pagamento disponíveis para o objeto do agente do supervisor.

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

Função SET_TEAM

Use DBMS_CLOUD_AI_AGENT.SET_TEAM para especificar a equipe do agente do AI para a sessão atual e fornecer configuração de runtime opcional.

Quando uma equipe é definida, somente a ação select ai agent é ativada, o sistema não suporta outras ações Selecionar IA.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name

Especifica o nome da equipe do Agente AI a ser usada na sessão atual. A equipe já deve existir no sistema.

Este parâmetro é obrigatório.

params

Especifica parâmetros personalizados usados durante o processo da equipe do agente de IA e CLOB formatado em JSON contendo parâmetros de runtime. Os parâmetros suportados incluem:

  • variables (deprecated) ou instruction_variables: Defina pares de chave/valor que forneçam entrada adicional à equipe do agente. Essas variáveis ajudam a personalizar o comportamento da equipe durante o processo.
  • attribute_variables: Valores de runtime que fornecem ou substituem atributos configuráveis do agente ou da ferramenta, como profile_name ou tool_params, sem modificar a definição armazenada.
  • state_variables: Valores de runtime que armazenam o estado e transmitem informações entre ferramentas durante uma execução de equipe. As ferramentas podem ler ou atualizar esses valores durante a execução.

Por exemplo:

{"attribute_variables":{"llm_profile":"LLM_PROFILE_NAME"},"state_variables":{"request_context":"REQUEST_CONTEXT"}}

Observações de Uso

  1. variables está obsoleto e é tratado como instruction_variables.
  2. Os valores fornecidos com SET_TEAM ficam disponíveis para execuções posteriores na mesma sessão até serem alterados ou apagados.
  3. O runtime params não modifica metadados permanentes da equipe.
  4. Quando SET_TEAM está em vigor, somente a ação do agente é suportada. Se você especificar qualquer outra ação, o sistema retornará um erro indicando que a ação não é suportada para a sessão atual.

Exemplo

O exemplo a seguir define a equipe do agente de IA especificada pelo usuário na sessão atual.

EXEC DBMS_CLOUD_AI_AGENT.SET_TEAM('ReturnAgency');

O exemplo a seguir define parâmetros de tempo de execução de sessão para uma equipe compartilhada.

BEGIN
  DBMS_CLOUD_AI_AGENT.SET_TEAM(
    team_name => 'TEAM_OWNER.SHARED_SUPPORT_TEAM',
    params    => '{"attribute_variables":{"llm_profile":"LLM_PROFILE_NAME"},"state_variables":{"request_id":"REQUEST_ID"}}');
END;
/

Função GET_TEAM

Use DBMS_CLOUD_AI_AGENT.GET_TEAM para retornar a equipe do agente do AI para a sessão atual.

Sintaxe

DBMS_CLOUD_AI_AGENT.GET_TEAM RETURN VARCHAR2;

Exemplo

O exemplo a seguir retorna a equipe do agente do AI na sessão atual.

SELECT DBMS_CLOUD_AI_AGENT.GET_TEAM from DUAL;

Função CLEAR_TEAM

Use DBMS_CLOUD_AI_AGENT.CLEAR_TEAM para limpar o conjunto de equipes do agente AI na sessão atual. Este procedimento não elimina a equipe.

Sintaxe

DBMS_CLOUD_AI_AGENT.CLEAR_TEAM;

Exemplo

O exemplo a seguir limpa a equipe do agente AI na sessão atual.

BEGIN
  DBMS_CLOUD_AI_AGENT.CLEAR_TEAM;
END;
/

Função RUN_TEAM

Use DBMS_CLOUD_AI_AGENT.RUN_TEAM para iniciar uma nova equipe de agente do AI ou retomar uma pausa que esteja aguardando entrada humana. Se você fornecer um conversation_id existente e o processo de equipe associado estiver no estado WAITING_FOR_HUMAN, a função retomará o workflow usando a entrada fornecida como resposta humana. Se você fornecer uma nova conversation_id, a RUN_TEAM iniciará um novo thread de conversa.

Uma equipe compartilhada é executada como consumidor na sessão de banco de dados inicial.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name

Especifica o nome da equipe do Agente AI a ser usada na sessão atual. A equipe já deve existir no sistema.

Este parâmetro é obrigatório.

user_prompt

Especifica a consulta ou resposta do usuário fornecida à tarefa.

Se a tarefa estiver no estado RUNNING, a entrada atuará como um espaço reservado para o {query} na instrução da tarefa.

Se a tarefa estiver no estado WAITING_FOR_HUMAN, a entrada servirá como resposta humana.

params

Especifica parâmetros personalizados usados durante o processo da equipe do agente de IA e CLOB formatado em JSON contendo parâmetros de runtime. Os parâmetros suportados incluem:

  • conversation_id: Identifica a sessão de conversa associada à equipe do agente. Use esse parâmetro para integrações de aplicativos sem monitoramento de estado (por exemplo, APEX) para distinguir entre diferentes conexões de usuário.
  • variables (deprecated) ou instruction_variables: Defina pares de chave/valor que forneçam entrada adicional à equipe do agente. Essas variáveis ajudam a personalizar o comportamento da equipe durante o processo.
  • attribute_variables: Valores de runtime que fornecem ou substituem atributos configuráveis do agente ou da ferramenta, como profile_name ou tool_params, sem modificar a definição armazenada.
  • state_variables: Valores de runtime que armazenam o estado e transmitem informações entre ferramentas durante uma execução de equipe. As ferramentas podem ler ou atualizar esses valores durante a execução.

Por exemplo:

{"conversation_id":"CONVERSATION_ID","attribute_variables":{"llm_profile":"LLM_PROFILE_NAME"},"instruction_variables":{"audience":"support analyst"},"state_variables":{"request_context":"REQUEST_CONTEXT"}}

Observações de Uso

  • RUN_TEAM retorna o resultado final da última tarefa como CLOB.
  • Se um processo estiver aguardando entrada humana, o RUN_TEAM retornará informações de status ou retomará a etapa de espera quando você fornecer o contexto e a entrada de execução necessários.
  • O nível de execução params informado para RUN_TEAM tem precedência sobre o nível de sessão params definido por SET_TEAM.
  • Uma equipe compartilhada é executada com os privilégios do consumidor na sessão do banco de dados que inicia a execução.
  • Uma ferramenta PL/SQL personalizada segue a definição AUTHID de sua função. Uma função AUTHID CURRENT_USER usa os privilégios do consumidor, enquanto uma função definer-right usa os privilégios do definidor. O acesso a uma equipe compartilhada não concede ao consumidor o privilégio EXECUTE em uma função personalizada ou o acesso aos recursos exigidos pela função.

Exemplo

O exemplo a seguir executa a equipe do agente de IA especificada pelo usuário na sessão atual.

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 \|\| '"}'
);

O exemplo a seguir executa uma equipe compartilhada com parâmetros de runtime.

DECLARE
  l_result CLOB;
BEGIN
  l_result := DBMS_CLOUD_AI_AGENT.RUN_TEAM(
    team_name   => 'TEAM_OWNER.SHARED_SUPPORT_TEAM',
    user_prompt => 'Summarize the account status for ACCOUNT_NAME.',
    params      => '{"attribute_variables":{"llm_profile":"LLM_PROFILE_NAME"},"state_variables":{"request_context":"REQUEST_CONTEXT"},"conversation_id":"CONVERSATION_ID"}');
END;
/

ENABLE_TEAM Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.ENABLE_TEAM para ativar uma equipe de agente de IA especificada pelo usuário. Isso altera o status da equipe para ENABLED.

Sintaxe

DBMS_CLOUD_AI_AGENT.ENABLE_TEAM(
   team_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
team_name

Nome da equipe do agente de IA a ser ativada.

Este parâmetro é obrigatório.

Exemplo

O exemplo a seguir ativa uma equipe de agente de IA especificada pelo usuário.

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

DISABLE_TEAM Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DISABLE_TEAM para desativar uma equipe de agente do AI existente. Isso altera o status da equipe para DISABLED.

Sintaxe

DBMS_CLOUD_AI_AGENT.DISABLE_TEAM(
   team_name           IN  VARCHAR2
);

Parâmetros

Parâmetro Descrição
team_name

Nome da equipe do agente de IA a ser desativada.

Este parâmetro é obrigatório.

Exemplo

O exemplo a seguir desativa uma equipe de agente do AI existente.

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

DROP_TEAM Procedimento

Use o procedimento DBMS_CLOUD_AI_AGENT.DROP_TEAM para remover uma equipe de agente do AI criada anteriormente.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name

Nome da equipe a ser eliminada.

Este é um parâmetro obrigatório.

force

Se TRUE, o procedimento ignorará erros se a equipe não existir.

O valor padrão deste parâmetro é FALSE.

Exemplo

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

Observações de Uso

Use force para eliminar uma equipe e ignorar erros se a equipe não existir.

Função DESCRIBE_TOOL

Use a função DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL para retornar metadados JSON para uma ferramenta. O resultado inclui o nome da ferramenta, a descrição, os atributos e as informações do esquema de entrada que um cliente compatível com MCP pode usar para a descoberta da ferramenta.

Sintaxe

DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
  tool_name IN VARCHAR2
) RETURN CLOB;

Parâmetros

Parâmetro Descrição
tool_name Nome da ferramenta Selecionar Agente AI cujos metadados são retornados.

Retorna

Retorna um CLOB que contém metadados de ferramenta e informações de argumento formatados em JSON.

Exemplo

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

Função RUN_TOOL

Use a função DBMS_CLOUD_AI_AGENT.RUN_TOOL para chamar uma ferramenta criada por nome. O parâmetro de entrada passa os argumentos da ferramenta como um payload JSON.

Sintaxe

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

Parâmetros

Parâmetro Descrição
tool_name Nome da ferramenta Selecionar Agente AI a ser chamada.
input Payload de entrada JSON informado para a ferramenta.

Retorna

Retorna um CLOB que contém o resultado da execução da ferramenta.

Exemplo

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

Função LIST_TEAMS

Use a função DBMS_CLOUD_AI_AGENT.LIST_TEAMS para enumerar equipes de agentes disponíveis para o usuário que faz a chamada. O resultado pode ser usado por camadas de integração compatíveis com A2A para descoberta da equipe.

Sintaxe

DBMS_CLOUD_AI_AGENT.LIST_TEAMS
  RETURN CLOB;

Parâmetros

Parâmetro Descrição
Nenhum Esta função não tem parâmetros.

Retorna

Retorna um CLOB que contém um array JSON. Cada entrada inclui o nome e a descrição da equipe.

Exemplo

SELECT DBMS_CLOUD_AI_AGENT.LIST_TEAMS()
FROM dual;

Função DESCRIBE_TEAM

Use a função DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM para retornar metadados de uma equipe de agentes. A função mapeia as ferramentas Selecionar Agente de IA disponíveis para a equipe na representação de habilidades compatíveis com A2A.

Sintaxe

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM(
  team_name IN VARCHAR2
) RETURN CLOB;

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujos metadados e recursos são retornados.

Retorna

Retorna um CLOB que contém um objeto JSON com o nome da equipe, a descrição, a versão opcional e a lista de habilidades.

Observações de Uso

  • Habilidades são uma representação de protocolo de ferramentas para clientes compatíveis com A2A. Eles não introduzem um novo tipo de objeto de banco de dados Selecionar Agente do AI.

Exemplo

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

Função GET_TEAM_STATE

Use a função DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE para retornar o estado de execução mais recente de uma conversa da equipe do agente.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujo estado de execução mais recente é retornado.
params Objeto JSON opcional. Use conversation_id para recuperar o estado de execução mais recente de uma conversa específica. Se omitido, a conversa da sessão atual é usada.

Retorna

Retorna um estado de execução do VARCHAR2, como RUNNING, WAITING_FOR_HUMAN, SUCCEEDED ou FAILED.

Exemplo

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

Procedimento SET_EXECUTION_STATE

Use o procedimento DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE para atualizar uma execução de equipe de espera para um estado especificado. Isso é útil para workflows de chamada de ferramenta direta do agente em que o aplicativo controla quando a sessão interativa é concluída.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujo estado de execução é atualizado.
state Estado de execução a ser definido. O valor-padrão é SUCCEEDED.
params Objeto JSON opcional. Use conversation_id para identificar a conversa cujo estado de execução é atualizado.

Exemplo

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

Função DESCRIBE_TOOL

Use a função DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL para retornar metadados JSON para uma ferramenta. O resultado inclui o nome da ferramenta, a descrição, os atributos e as informações do esquema de entrada que um cliente compatível com MCP pode usar para a descoberta da ferramenta.

Sintaxe

DBMS_CLOUD_AI_AGENT.DESCRIBE_TOOL(
  tool_name IN VARCHAR2
) RETURN CLOB;

Parâmetros

Parâmetro Descrição
tool_name Nome da ferramenta Selecionar Agente AI cujos metadados são retornados.

Retorna

Retorna um CLOB que contém metadados de ferramenta e informações de argumento formatados em JSON.

Exemplo

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

Função RUN_TOOL

Use a função DBMS_CLOUD_AI_AGENT.RUN_TOOL para chamar uma ferramenta criada por nome. O parâmetro de entrada passa os argumentos da ferramenta como um payload JSON.

Sintaxe

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

Parâmetros

Parâmetro Descrição
tool_name Nome da ferramenta Selecionar Agente AI a ser chamada.
input Payload de entrada JSON informado para a ferramenta.

Retorna

Retorna um CLOB que contém o resultado da execução da ferramenta.

Exemplo

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

Função LIST_TEAMS

Use a função DBMS_CLOUD_AI_AGENT.LIST_TEAMS para enumerar equipes de agentes disponíveis para o usuário que faz a chamada. O resultado pode ser usado por camadas de integração compatíveis com A2A para descoberta da equipe.

Sintaxe

DBMS_CLOUD_AI_AGENT.LIST_TEAMS
  RETURN CLOB;

Parâmetros

Parâmetro Descrição
Nenhum Esta função não tem parâmetros.

Retorna

Retorna um CLOB que contém um array JSON. Cada entrada inclui o nome e a descrição da equipe.

Exemplo

SELECT DBMS_CLOUD_AI_AGENT.LIST_TEAMS()
FROM dual;

Função DESCRIBE_TEAM

Use a função DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM para retornar metadados de uma equipe de agentes. A função mapeia as ferramentas Selecionar Agente de IA disponíveis para a equipe na representação de habilidades compatíveis com A2A.

Sintaxe

DBMS_CLOUD_AI_AGENT.DESCRIBE_TEAM(
  team_name IN VARCHAR2
) RETURN CLOB;

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujos metadados e recursos são retornados.

Retorna

Retorna um CLOB que contém um objeto JSON com o nome da equipe, a descrição, a versão opcional e a lista de habilidades.

Observações de Uso

  • Habilidades são uma representação de protocolo de ferramentas para clientes compatíveis com A2A. Eles não introduzem um novo tipo de objeto de banco de dados Selecionar Agente do AI.

Exemplo

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

Função GET_TEAM_STATE

Use a função DBMS_CLOUD_AI_AGENT.GET_TEAM_STATE para retornar o estado de execução mais recente de uma conversa da equipe do agente.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujo estado de execução mais recente é retornado.
params Objeto JSON opcional. Use conversation_id para recuperar o estado de execução mais recente de uma conversa específica. Se omitido, a conversa da sessão atual é usada.

Retorna

Retorna um estado de execução do VARCHAR2, como RUNNING, WAITING_FOR_HUMAN, SUCCEEDED ou FAILED.

Exemplo

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

Procedimento SET_EXECUTION_STATE

Use o procedimento DBMS_CLOUD_AI_AGENT.SET_EXECUTION_STATE para atualizar uma execução de equipe de espera para um estado especificado. Isso é útil para workflows de chamada de ferramenta direta do agente em que o aplicativo controla quando a sessão interativa é concluída.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujo estado de execução é atualizado.
state Estado de execução a ser definido. O valor-padrão é SUCCEEDED.
params Objeto JSON opcional. Use conversation_id para identificar a conversa cujo estado de execução é atualizado.

Exemplo

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

Função EXPORT_TEAM

Use a função DBMS_CLOUD_AI_AGENT.EXPORT_TEAM para exportar todos os agentes, tarefas e ferramentas associadas em uma equipe de agentes para uma string. A função usa team_name e params opcional como entrada e retorna a definição de equipe exportada como CLOB.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name Especifica o nome da equipe de agente do AI existente a ser exportada. Este é um parâmetro obrigatório.
params Parâmetros JSON opcionais para comportamento de exportação.

Observações de Uso

  • EXPORT_TEAM exporta a definição da equipe e os metadados associados para a equipe Selecionar Agente de IA especificada.

  • A exportação inclui a equipe e seus agentes, ferramentas e tarefas relacionados que fazem parte da especificação da equipe.

  • A exportação não inclui definições de credenciais ou senhas de credenciais. Ela preserva somente os nomes de credenciais referenciados quando aplicável.

  • A exportação não inclui implementações de suporte criadas pelo usuário fora da especificação exportada. Essas dependências excluídas incluem procedimentos e funções PL/SQL do cliente usados por ferramentas, serviços REST externos, OCI Functions, funções do AWS Lambda, ACLs de rede e outros recursos externos.

  • A exportação de ferramentas Select AI incorporadas inclui a definição da ferramenta na especificação da equipe.

  • Verifique se existe alguma configuração de suporte necessária no ambiente de destino antes de importar e usar a equipe exportada.

  • Se a equipe, os agentes, as ferramentas ou as tarefas exportadas estiverem desativadas, a especificação exportada incluirá metadados que marcam esses componentes como desativados.

  • Se Selecionar Agente do AI criar uma tarefa automaticamente durante a importação da equipe do agente porque a especificação importada não inclui uma definição de tarefa, a tarefa gerada não será incluída quando a equipe do agente for exportada novamente. Somente as tarefas definidas explicitamente na equipe do agente são exportadas.

  • Se o CLOB retornado for grande, grave-o em partes quando salvá-lo em um arquivo.

Exemplo

O exemplo a seguir exporta a equipe ReturnAgency para uma CLOB e grava a saída em um arquivo usando a 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;
/
/

Procedimento EXPORT_TEAM

Use o procedimento DBMS_CLOUD_AI_AGENT.EXPORT_TEAM para exportar uma definição de equipe de agente, incluindo seus agentes, tarefas e definições de ferramenta associadas, para uma string. O procedimento grava a definição da equipe exportada em um URI do serviço Object Storage ou em um arquivo de diretório do banco de dados quando o valor do local inclui o objeto do diretório e o nome do arquivo. O procedimento usa um params opcional como entrada e retorna a definição de equipe exportada como um CLOB.

Sintaxe

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

Parâmetros

Parâmetro Descrição
team_name

Especifica o nome da equipe de agente do AI existente a ser exportada.

Este é um parâmetro obrigatório.

object_storage_credential_name Nome da credencial do local do Object Storage no qual você deseja salvar o arquivo exportado. Não especifique este parâmetro quando location identificar um arquivo de diretório de banco de dados.
location O local do Object Storage ou um local do diretório do banco de dados, incluindo o nome do arquivo, em que o procedimento grava o arquivo exportado.
params

Parâmetros JSON opcionais para comportamento de exportação. O parâmetro overwrite é o único parâmetro suportado.

  • TRUE: Substitui um arquivo existente com o mesmo nome.
  • FALSE: Evita a substituição de um arquivo existente com o mesmo nome.

O valor padrão é FALSE. Se você omitir esse parâmetro, a operação não substituirá um arquivo existente.

Observações de Uso

  • EXPORT_TEAM exporta a definição da equipe e os metadados associados para a equipe Selecionar Agente de IA especificada.

  • A exportação inclui a equipe e seus agentes, ferramentas e tarefas relacionados que fazem parte da especificação da equipe.

  • A exportação não inclui definições de credenciais ou senhas de credenciais. Ela preserva somente os nomes de credenciais referenciados quando aplicável.

  • A exportação não inclui implementações de suporte criadas pelo usuário fora da especificação exportada.

  • A exportação de ferramentas Select AI incorporadas inclui a definição da ferramenta na especificação da equipe.

  • Verifique se existe alguma configuração de suporte necessária no ambiente de destino antes de importar e usar a equipe exportada.

  • Se a equipe, os agentes, as ferramentas ou as tarefas exportadas estiverem desativadas, a especificação exportada incluirá metadados que marcam esses componentes como desativados.

  • Se Selecionar Agente do AI criar uma tarefa automaticamente durante a importação da equipe do agente porque a especificação importada não inclui uma definição de tarefa, a tarefa gerada não será incluída quando a equipe do agente for exportada novamente. Somente as tarefas definidas explicitamente na equipe do agente são exportadas.

Exemplos

O exemplo a seguir exporta a equipe ReturnAgency e grava a saída exportada no local do Object Storage especificado.

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

O exemplo a seguir exporta a equipe ReturnAgency para um arquivo de diretório de banco de dados.

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

Procedimento IMPORT_TEAM

Use o procedimento DBMS_CLOUD_AI_AGENT.IMPORT_TEAM para importar uma especificação de equipe de agente para o banco de dados. A especificação pode incluir metadados da equipe e definições de agente, tarefa e ferramenta relacionadas. Ele importa apenas as informações armazenadas na especificação da equipe e no perfil de IA associado. Você pode fornecer uma string de especificação, uma credencial e um local do Object Storage ou um local de arquivo de diretório de banco de dados para importar a definição da equipe de um arquivo.

Sintaxe

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

Parâmetros

Parâmetro Descrição
profile_name

Especifique o nome de um perfil de IA válido e ativado a ser usado para a equipe do agente importado. Os agentes importados usam esse perfil para enviar solicitações ao LLM.

Este é um parâmetro obrigatório.

team_name

Especifica o nome da equipe do agente criada pela operação de importação. Use um nome de equipe que não entre em conflito com um nome de equipe existente.

Este é um parâmetro obrigatório.

specification Definição da equipe no formato JSON.
object_storage_credential_name Nome da credencial do local do Object Storage que contém o arquivo de importação. Especifique esse parâmetro somente quando location identificar um arquivo do serviço Object Storage. Não especifique esse parâmetro quando o local identificar um arquivo de diretório do banco de dados.
location O local do Object Storage ou o local do diretório do banco de dados, incluindo o nome do arquivo, do qual o procedimento importa a definição da equipe. Especifique location ou specification, mas não ambos.
force Se definido como TRUE, elimina componentes em conflito que causam erros de importação e, em seguida, importa a definição da equipe.

Observações de Uso

  • O IMPORT_TEAM importa apenas os componentes definidos na especificação da equipe fornecida.

  • A importação cria a equipe e seus agentes, ferramentas e tarefas relacionados presentes na especificação.

  • O parâmetro specification e a combinação de object_storage_credential_name e location usam o mesmo comportamento de importação. A única diferença é a origem do conteúdo da especificação.

  • A importação não cria recursos dependentes que não fazem parte da especificação. Esses recursos incluem credenciais, procedimentos e funções PL/SQL criados pelo cliente, serviços REST externos, OCI Functions, funções do AWS Lambda, ACLs de rede, pontos finais, perfis, índices e outros recursos de suporte externo. Crie essas dependências separadamente no ambiente de destino antes de usar a equipe importada.

  • As ferramentas integradas Select AI não exigem recriação manual como definições de componentes importados. No entanto, qualquer configuração de ambiente necessária para essas ferramentas já deverá existir no banco de dados de destino.

  • Se a especificação não incluir uma tarefa, o DBMS_CLOUD_AI_AGENT poderá criar automaticamente uma tarefa durante a importação. Esta tarefa gerada são metadados criados pelo sistema e não é equivalente a uma tarefa definida explicitamente na especificação de origem.

  • Se force estiver definido como TRUE, a importação verificará os componentes importados em conflito existentes por nome, como agente, ferramenta ou tarefa. Quando ocorre um conflito, a importação elimina o componente existente com o mesmo nome e recria esse componente da especificação de importação. Este comportamento se aplica somente a componentes importados em conflito.

  • Este procedimento não elimina nem recria dependências externas ou recursos associados que não fazem parte da especificação, como funções PL/SQL criadas pelo cliente, credenciais ou ACLs de rede.

  • Se a especificação importada contiver metadados que marcam a equipe, os agentes, as ferramentas ou as tarefas como desativados, o Select AI Agent importará esses componentes como desativados.

Exemplos

Importar uma equipe de um arquivo no Object Storage

Este exemplo importa uma definição de equipe de um arquivo JSON armazenado no Object Storage. Use este método quando já tiver exportado a definição da equipe para um arquivo. O exemplo a seguir importa a equipe 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;
/
Importar uma Equipe de um Arquivo de Diretório

Importe uma definição de equipe de agente Selecionar AI de um arquivo JSON armazenado em um objeto de diretório. O parâmetro location especifica o objeto de diretório e o nome do arquivo.

BEGIN
    DBMS_CLOUD_AI_AGENT.import_team(
        profile_name 		=> 'PROFILE_NAME',
        team_name 		=> 'returnagency',
        location 		=> 'MY_DIR:return_agency.json'
  );
END;
/
Importar uma equipe de uma especificação passada como CLOB

Este exemplo cria primeiro as funções necessárias criadas pelo usuário e depois importa a equipe de uma especificação JSON armazenada em um CLOB. Use esse método ao criar ou modificar a definição da equipe dentro de 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;
/

Função GET_DEFINITION

Use a função DBMS_CLOUD_AI_AGENT.GET_DEFINITION para retornar a definição PL/SQL canônica de um objeto de agente do AI existente. A função reconstrói a definição por meio de CREATE_AGENT, CREATE_TOOL, CREATE_TASK ou CREATE_TEAM, de acordo com o tipo de objeto solicitado.

Por padrão, a função retorna apenas o objeto solicitado. Defina depend_objects como true quando a definição de equipe retornada precisar incluir as definições de agente, tarefa e ferramenta dependentes necessárias para recriar a equipe.

Sintaxe

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

Parâmetros

Parâmetro Descrição
object_type Tipo do objeto a ser exportado. Os valores suportados são AGENT, TASK, TOOL e TEAM.
object_name Nome do agente, tarefa, ferramenta ou equipe cuja definição é retornada.
params

Objeto JSON opcional. Chave suportada: dependent_objects. Defina dependent_objects como true para incluir as definições de objeto dependente necessárias para recriar o objeto solicitado.

  • Para TEAM, a função retorna as definições TEAM, AGENT, TASK e TOOL.
  • Para AGENT, a função retorna as definições AGENT e TOOL.
  • Para TASK, a função retorna as definições TASK e TOOL.

Por padrão, dependent_objects é NULL. Se você omitir esse parâmetro, a função retornará apenas a definição do objeto solicitado.

Retorna

Retorna um CLOB contendo um ou mais blocos PL/SQL executáveis canônicos. O bloco retornado usa o procedimento create para o tipo de objeto solicitado.

Observações de Uso

  • A função retorna definições para objetos pertencentes ao chamador atual. Esquema cruzado ou objetos concedidos ou compartilhados não são incluídos.
  • Quando params é omitido ou dependent_objects não é true, a saída contém apenas a definição de objeto solicitada. No entanto, ele faz referência a objetos dependentes por nome público, não inclui seus blocos de criação.
  • Quando dependent_objects é true, a saída inclui a definição do objeto solicitado e as definições dependentes necessárias para recriar a equipe.
  • A definição retornada preserva o conteúdo JSON estruturado voltado para o usuário e exclui atributos ocultos, metadados de vinculação interna e conteúdo somente para implementação. Os nomes de credenciais públicas podem aparecer quando necessários para recriação; no entanto, os valores de segredo não são retornados.

Exemplo

Retorna uma definição de equipe sem objetos dependentes e, em seguida, retorna a definição de equipe com objetos dependentes.

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;

Procedimento GRANT_TEAM_ACCESS

Conceder a um usuário do banco de dados ou permissão de função para executar uma equipe de agentes.

Sintaxe

PROCEDURE DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS(
 team_name IN VARCHAR2,
 user_or_role_name IN VARCHAR2);

Parâmetros

Parâmetro Descrição
team_name Nome da equipe do agente cujo acesso de execução você deseja compartilhar. Use o nome da equipe armazenado no esquema do proprietário.
user_or_role_name Nome do usuário ou da atribuição do banco de dados que você deseja permitir para executar a equipe compartilhada.

Observações de Uso

  • A concessão aplica-se somente no nível da equipe.
  • Somente o proprietário da equipe pode conceder ou revogar o acesso.
  • Se um usuário já tiver acesso direto, o proprietário da equipe não precisará conceder acesso novamente.
  • Execute uma equipe de esquema cruzado usando um nome qualificado, como TEAM_OWNER.SHARED_SUPPORT_TEAM.
  • A concessão permite que o consumidor execute o fluxo de trabalho definido pelo proprietário como uma única unidade.
  • A concessão não permite que o consumidor execute, modifique ou receba de forma independente concessões separadas sobre os agentes, tarefas ou ferramentas subjacentes.
  • O favorecido não pode ser igual ao usuário da sessão atual.
  • Os nomes de usuário e de atribuição do banco de dados compartilham o mesmo namespace para essa concessão de acesso.
  • Conceda e revogue o nome de equipe não qualificado do proprietário; PUBLIC não pode ser usado como favorecido.
  • O acesso por meio de uma atribuição só funciona enquanto essa atribuição está ativada, inclusive quando o acesso vem de atribuições padrão ou aninhadas.
  • As alterações de concessão e revogação entram em vigor quando a chamada de API é concluída.

Exemplo

BEGIN
 DBMS_CLOUD_AI_AGENT.GRANT_TEAM_ACCESS(
 team_name => 'SHARED_SUPPORT_TEAM',
 user_or_role_name => 'TEAM_CONSUMER');
END;
/

Procedimento REVOKE_TEAM_ACCESS

Revogue uma concessão de usuário ou atribuição de banco de dados para uma equipe de agentes.

Sintaxe

PROCEDURE DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS(
 team_name IN VARCHAR2,
 user_or_role_name IN VARCHAR2);

Parâmetros

Parâmetro Descrição
team_name Nome da equipe de agente compartilhada da qual você deseja remover o acesso de execução.
user_or_role_name Nome do usuário ou função do banco de dados cuja permissão para executar a equipe compartilhada que você deseja remover.

Observações de Uso

  • Revogar o acesso impede que o usuário ou a função inicie novas execuções da equipe compartilhada.
  • O proprietário da equipe não precisa revogar o acesso de um usuário que não tem acesso direto.
  • As alterações de concessão e revogação entram em vigor quando a chamada de API é concluída.
  • Revogar o acesso da equipe não encerra um processo que já está em andamento. O processo pode continuar até atingir um estado terminal.
  • Depois que o acesso é revogado, o usuário ou a atribuição não pode iniciar um novo processo ou retomar um processo no estado WAITING_FOR_HUMAN.
  • Selecione o acesso de verificações de IA sempre que um consumidor definir, executar ou retomar uma equipe.
  • Revogar o acesso à equipe não afeta os privilégios separados do consumidor.
  • A definição da equipe permanece pertencente e gerenciada pelo esquema do proprietário.

Exemplo

BEGIN
 DBMS_CLOUD_AI_AGENT.REVOKE_TEAM_ACCESS(
 team_name => 'SHARED_SUPPORT_TEAM',
 user_or_role_name => 'TEAM_CONSUMER');
END;
/

Função GET_VARIABLE

Leia uma variável de runtime com namespace da sessão atual.

Sintaxe

FUNCTION DBMS_CLOUD_AI_AGENT.GET_VARIABLE(
 namespace IN VARCHAR2,
 name IN VARCHAR2,
 scope IN VARCHAR2 DEFAULT 'ephemeral')
RETURN CLOB;

Parâmetros

Parâmetro Descrição
namespace Nome do namespace da variável de runtime que contém o valor. Use state_variables para o estado e a transferência da ferramenta, instruction_variables para placeholders de instrução ou attribute_variables para atributos de agente e ferramenta.
name Nome da chave de variável a ser lida no namespace selecionado.
scope Escopo usado ao ler a variável. O valor suportado é ephemeral. Este é o padrão.

Observações de Uso

  • GET_VARIABLE retorna NULL quando a chave não é encontrada.
  • Os valores de runtime informados para RUN_TEAM têm precedência sobre os valores definidos por SET_TEAM.

Exemplo

l_profile_name := DBMS_CLOUD_AI_AGENT.GET_VARIABLE(
 namespace => 'state_variables',
 name => 'llm_profile');

Procedimento SET_VARIABLE

Defina uma variável de runtime com namespace para a execução atual.

Sintaxe

PROCEDURE DBMS_CLOUD_AI_AGENT.SET_VARIABLE(
 namespace IN VARCHAR2,
 name IN VARCHAR2,
 value IN CLOB,
 scope IN VARCHAR2 DEFAULT 'ephemeral');

Parâmetros

Parâmetro Descrição
namespace Nome do namespace da variável de runtime no qual definir ou limpar o valor. Use state_variables para o estado e a transferência da ferramenta, instruction_variables para placeholders de instrução ou attribute_variables para atributos de agente e ferramenta.
name Nome da chave de variável a ser definida ou desmarcada.
value Valor CLOB a ser armazenado para a chave. Especifique NULL para limpar a chave do escopo de execução atual.
scope Escopo usado ao definir a variável. O valor suportado é ephemeral. Este é o padrão.

Observações de Uso

  • Use SET_VARIABLE em uma ferramenta quando uma ferramenta posterior na mesma execução precisar do valor.
  • Um valor NULL limpa o valor no escopo da chave.

Exemplo

DBMS_CLOUD_AI_AGENT.SET_VARIABLE(
 namespace => 'state_variables',
 name => 'verified_account_id',
 value => 'ACCOUNT_ID');