Disparadores

Los disparadores definen cómo los flujos de trabajo se inician en ADK Studio. Cada flujo de trabajo comienza con un nodo disparador que determina el punto de entrada — ya sea desde la entrada del usuario, un webhook HTTP, una programación cron, o un evento externo.

Panel de Propiedades del Disparador

Tipos de Disparadores

TipoDescripciónCaso de Uso
ManualIniciado por el usuario mediante entrada de chatAgentes interactivos, pruebas
WebhookPunto final HTTP (POST/GET)Integraciones de API, CI/CD pipelines
ProgramaciónSincronización basada en CronInformes periódicos, sincronización de datos
EventoEventos de sistema externosOrquestación de microservicios, flujos de trabajo basados en eventos

Disparadores Manuales

El tipo de disparador predeterminado. Cuando un flujo de trabajo tiene un disparador manual, la entrada del chat se muestra con una etiqueta y un marcador de posición configurables.

Configuración:

PropiedadTipoPredeterminado
inputLabelstring"Introduce tu mensaje"
defaultPromptstring"¿Qué puedo ayudarte a construir con ADK-Rust hoy?"

La etiqueta de entrada aparece encima del campo de entrada del chat, y el mensaje predeterminado se utiliza como texto de marcador de posición.


Disparadores Webhook

Expone un punto de conexión HTTP que inicia el flujo de trabajo cuando se llama. Útil para integrarse con servicios externos, pipelines de CI/CD u otras aplicaciones.

Configuración:

PropiedadTipoDescripción
pathstringRuta URL (ej., /my-webhook)
methodGET, POSTMétodo HTTP a aceptar
authnone, bearer, api_keyRequisito de autenticación

Puntos de Conexión

Cada disparador webhook crea dos puntos de conexión:

Punto finalComportamiento
/api/projects/:id/webhook/*pathAsíncrono — devuelve el ID de sesión inmediatamente
/api/projects/:id/webhook-exec/*pathSíncrono — espera la finalización del flujo de trabajo y devuelve el resultado

Los webhooks GET también funcionan:

GET /api/projects/:id/webhook/my-path?message=Hello

Autenticación

Token de portador:

curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"message": "Process this"}'

Clave de API:

curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
  -H "X-API-Key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "Process this"}'

Notificaciones de eventos de Webhook

Suscríbase a eventos de ejecución de webhook en tiempo real a través de SSE:

GET /api/projects/:id/webhook-events

Esta secuencia emite eventos a medida que los webhooks son recibidos y procesados.


Activadores de Programación

Ejecute flujos de trabajo en un horario recurrente usando expresiones cron.

Configuración:

PropiedadTipoDescripción
cronstringExpresión cron de 5 campos
timezonestringZona horaria IANA (ej., America/New_York)
defaultPromptstring?Texto de entrada enviado cuando se activa la programación

Sintaxis Cron

Expresiones cron estándar de 5 campos:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

Ejemplos:

ExpresiónSignificado
* * * * *Cada minuto
0 9 * * *Diariamente a las 9:00 AM
0 0 * * 0Semanalmente los domingos a medianoche
0 */6 * * *Cada 6 horas
30 8 * * 1-5Días laborables a las 8:30 AM

El servicio de programación rastrea las marcas de tiempo last_executed para evitar ejecuciones duplicadas.


Activadores de Eventos

Iniciar flujos de trabajo en respuesta a eventos de sistemas externos. Los eventos se emparejan por source y eventType, con filtrado opcional de JSONPath en los datos del evento.

Configuración:

PropiedadTipoDescripción
sourcestringIdentificador de la fuente del evento (p. ej., payment-service)
eventTypestringTipo de evento a emparejar (p. ej., payment.completed)
filterstring?Expresión de JSONPath para filtrar eventos

Envío de Eventos

curl -X POST "http://localhost:3000/api/projects/{id}/events" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "payment-service",
    "eventType": "payment.completed",
    "data": {
      "orderId": "12345",
      "amount": 99.00,
      "status": "active"
    }
  }'

Filtros de JSONPath

Filtre los eventos para que el flujo de trabajo solo se active cuando se cumplan condiciones específicas:

Expresión de FiltroCoincide Cuando
$.data.status == 'active'El campo de estado es igual a "activo"
$.data.amount > 100La cantidad supera los 100
$.data.priority == 'high'La prioridad es "alta"

Los eventos que no coinciden con el filtro se ignoran silenciosamente.


Botón de Ejecución Consciente del Disparador

La interfaz de usuario de Studio se adapta según el tipo de disparador activo:

  • Manual — Entrada de chat estándar con la etiqueta y el marcador de posición configurados
  • Webhook — El botón de ejecución envía una carga útil de webhook simulada
  • Programado — El botón de ejecución envía el mensaje predeterminado configurado
  • Evento — El botón de ejecución envía una carga útil de evento simulada

Cuando un flujo de trabajo ha cambiado desde la última compilación, el botón de Enviar se transforma en un botón de Compilar para solicitar la recompilación.


Referencia de la API

EndpointMétodoDescripción
/api/projects/:id/webhook/*pathPOST, GETDisparador de webhook asíncrono
/api/projects/:id/webhook-exec/*pathPOSTDisparador de webhook síncrono (espera el resultado)
/api/projects/:id/webhook-eventsGETFlujo SSE para notificaciones de webhook
/api/projects/:id/eventsPOSTDisparador de evento

Anterior: ← Nodos de Acción | Siguiente: Pautas de Desarrollo →

Disparadores - Documentación ADK-Rust | ADK-Rust