É possível usar regras de entrega para controlar de forma determinística as transferências entre agentes pai e filho em um aplicativo multiagente. Para isso, defina condições para as transferências. 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 é transferido 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 agentes usando instruções, mas esse controle não é determinístico. Você também pode usar callbacks, mas eles exigem a gravação de código.
Exemplos de casos de uso:
- Entregas diretas (agente para subagente)
- Encaminhar usuários autenticados ou não autenticados para agentes diferentes
- Entender a intenção do usuário e direcionar para o agente certo
- Direcionar solicitações de alto risco (por exemplo, transferências financeiras, tratamento de PII) para agentes específicos
- Entregas indiretas (subagente para agente)
- Tentar novamente as tentativas de autenticação com falha
- Voltar para coletar mais informações
- Nova qualificação após mudanças nos requisitos do usuário
- Processos iterativos de solução de problemas
Configuração
Para configurar regras de entrega no criador de agentes:
- Clique no botão + em um nó de agente.
- Selecione Adicionar regras de entrega. O painel de configuração de regras de entrega é aberto, e os agentes filhos são listados.
- Selecione um agente filho. O painel de configuração de regras é aberto.
- Selecione a direção da transferência (para o pai ou para a criança ou adolescente).
- Você pode 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 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.
Apenas os tipos de variável de texto, número e booleano são aceitos para verificações de variáveis (os tipos de lista e objeto personalizado são indisponíveis).
Ao definir uma regra que bloqueia as entregas, a condição só pode ser especificada usando variáveis (não código).
Se você criar uma condição complexa usando a API (usando vários ANDs/ORs, agrupamentos etc.), a regra de entrega vai aparecer como somente leitura na UI e só poderá ser modificada usando a API.