Reglas de transferencia

Puedes usar reglas de transferencia para controlar de forma determinística las transferencias entre agentes principales y secundarios en una aplicación de varios agentes. Puedes controlar estas transferencias definiendo condiciones para ellas. Puedes forzar una transferencia de inmediato cuando se cumpla una condición o bloquear las transferencias hasta que se cumpla una condición.

Por ejemplo, el agente A transfiere al agente B cuando un usuario se autentica o al agente C cuando el usuario no se autentica.

Puedes lograr un control similar sobre las transferencias de agentes con instrucciones, pero ese control no es determinístico. También puedes usar devoluciones de llamada, pero estas requieren escribir código.

Ejemplos de casos de uso:

  • Transferencias hacia adelante (del agente al subagente)
    • Cómo enrutar a los usuarios autenticados o no autenticados a diferentes agentes
    • Comprende la intención del usuario y lo dirige al agente adecuado
    • Dirigir solicitudes importantes (por ejemplo, transferencias financieras, manejo de PII) a agentes específicos
  • Transferencias hacia atrás (de subagente a agente)
    • Vuelve a intentar los intentos de autenticación fallidos
    • Regresa para recopilar información adicional
    • Nueva calificación después de cambios en los requisitos del usuario
    • Procesos iterativos de solución de problemas

Configuración

Para configurar reglas de transferencia desde Agent Builder, haz lo siguiente:

  1. Haz clic en el botón + debajo de un nodo de agente.
  2. Selecciona Agregar reglas de transferencia. Se abrirá el panel de configuración de las reglas de transferencia y se mostrarán los agentes secundarios.
  3. Selecciona un agente secundario. Se abrirá el panel de configuración de la regla.
  4. Selecciona la dirección de la transferencia (a la madre o al padre, o al hijo o a la hija).
  5. Puedes usar la interfaz para definir condiciones basadas en variables o usar la opción de código avanzado.
  6. Haz clic en Guardar.

Si eliges la opción de código avanzado, aquí tienes un ejemplo:

def should_trigger_transfer_callback(callback_context: CallbackContext) -> bool:
  # Access session variables using callback_context:
  # callback_context.variables['variable_name]
  return True

Limitaciones

Se aplican las siguientes limitaciones.

Cuando creas una regla que usa una verificación de variables, puedes especificar varias condiciones (una por variable). Se pueden vincular con los operadores lógicos AND o OR. Solo se puede seleccionar un operador (Y/O) para todas las condiciones enumeradas. Si deseas combinar operadores lógicos y agrupar condiciones, puedes usar la opción de código de Python o especificar la condición con la API.

Solo se admiten los tipos de variables de texto, número y booleanas para las verificaciones de variables (no se admiten los tipos de lista ni de objeto personalizado).

Cuando se define una regla que bloquea las transferencias, la condición solo se puede especificar con variables (no con código).

Si creas una condición compleja con la API (con varios AND o OR, agrupaciones, etcétera), la regla de transferencia aparecerá como de solo lectura en la IU y solo se podrá modificar con la API.