Reglas de transferencia

Puedes usar reglas de transferencia para controlar de forma determinista las transferencias entre agentes principales y secundarios en una aplicación de varios agentes. Para controlar estas transferencias, define 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 se 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 determinista. También puedes usar devoluciones de llamada, pero requieren escribir código.

Ejemplos de casos de uso:

  • Transferencias directas (de agente a subagente)
    • Enruta a los usuarios autenticados o no autenticados a diferentes agentes.
    • Comprende la intención del usuario y dirígelo al agente correcto.
    • Dirige las solicitudes de alto riesgo (por ejemplo, transferencias financieras, manejo de PII) a agentes específicos.
  • Transferencias inversas (de subagente a agente)
    • Vuelve a intentar las autenticaciones fallidas.
    • Vuelve a recopilar información adicional.
    • Vuelve a calificar después de los cambios en los requisitos del usuario.
    • Procesos iterativos de solución de problemas

Configuración

Para configurar reglas de transferencia desde el compilador de agentes, 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 reglas de transferencia y se mostrarán los agentes secundarios.
  3. Selecciona un agente secundario. Se abrirá el panel de configuración de reglas.
  4. Selecciona la dirección de la transferencia (al principal o al secundario).
  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). Estas se pueden vincular con los operadores lógicos AND o OR. Solo se puede seleccionar un operador (AND/OR) 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 booleano 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/OR, agrupaciones, etc.), la regla de transferencia aparecerá como de solo lectura en la IU y solo se podrá modificar con la API.