Você pode usar regras de transferência para controlar de forma determinística as transferências entre agentes principais e secundários em um aplicativo multiagente. É possível controlar essas transferências definindo condições para elas. Você pode forçar uma transferência imediatamente quando uma condição for atendida ou bloquear as transferências até que uma condição seja atendida.
Por exemplo, o agente A transfere para o agente B quando um usuário é autenticado ou para o agente C quando o usuário não é autenticado.
É possível ter um controle semelhante sobre as transferências de agente usando instruções, mas esse controle não é determinista. Você também pode usar callbacks, mas eles exigem a escrita de código.
Exemplos de casos de uso:
- Transferências de encaminhamento (agente para subagente)
- Encaminhar usuários autenticados ou não autenticados para diferentes agentes
- Entender a intenção do usuário e direcionar para o agente certo
- Direcionar solicitações importantes (por exemplo, transferências financeiras, tratamento de PII) a agentes específicos
- Transferências para trás (subagente para agente)
- Tentar novamente autenticações com falha
- Voltar para coletar mais informações
- Requalificação após mudanças nos requisitos do usuário
- Processos iterativos de solução de problemas
Configuração
Para configurar regras de transferência no Agent Builder:
- Clique no botão + em um nó de agente.
- Selecione Adicionar regras de transferência. O painel de configuração de regras de transferência é aberto, e os agentes filhos são listados.
- Selecione um agente secundário. O painel de configuração da regra é aberto.
- Selecione a direção da transferência (para o familiar responsável ou para a criança).
- É possível usar a interface para definir condições com base em variáveis ou usar a opção de código avançado.
- Clique em Salvar.
Se você escolher a opção de código avançado, confira um exemplo:
def should_trigger_transfer_callback(callback_context: CallbackContext) -> bool:
# Access session variables using callback_context:
# callback_context.variables['variable_name]
return True
Limitações
As seguintes limitações se aplicam.
Ao criar uma regra que usa uma verificação de variável, é possível especificar várias condições (uma por variável). Elas podem ser vinculadas usando os operadores lógicos AND ou OR. Apenas um operador (AND/OR) pode ser selecionado para todas as condições listadas. Se você quiser misturar operadores lógicos e agrupar condições, use a opção de código Python ou especifique a condição usando a API.
Somente os tipos de variáveis de texto, número e booleano são compatíveis com verificações de variáveis. Os tipos de lista e objeto personalizado não são compatíveis.
Ao definir uma regra que bloqueia transferências, a condição só pode ser especificada usando variáveis (não código).
Se você criar uma condição complexa usando a API (com vários ANDs/ORs, agrupamentos etc.), a regra de transferência vai aparecer como somente leitura na UI e só poderá ser modificada usando a API.