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.

Tipos de Disparadores
| Tipo | Descripción | Caso de Uso |
|---|---|---|
| Manual | Iniciado por el usuario mediante entrada de chat | Agentes interactivos, pruebas |
| Webhook | Punto final HTTP (POST/GET) | Integraciones de API, CI/CD pipelines |
| Programación | Sincronización basada en Cron | Informes periódicos, sincronización de datos |
| Evento | Eventos de sistema externos | Orquestació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:
| Propiedad | Tipo | Predeterminado |
|---|---|---|
inputLabel | string | "Introduce tu mensaje" |
defaultPrompt | string | "¿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:
| Propiedad | Tipo | Descripción |
|---|---|---|
path | string | Ruta URL (ej., /my-webhook) |
method | GET, POST | Método HTTP a aceptar |
auth | none, bearer, api_key | Requisito de autenticación |
Puntos de Conexión
Cada disparador webhook crea dos puntos de conexión:
| Punto final | Comportamiento |
|---|---|
/api/projects/:id/webhook/*path | Asíncrono — devuelve el ID de sesión inmediatamente |
/api/projects/:id/webhook-exec/*path | Sí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:
| Propiedad | Tipo | Descripción |
|---|---|---|
cron | string | Expresión cron de 5 campos |
timezone | string | Zona horaria IANA (ej., America/New_York) |
defaultPrompt | string? | 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ón | Significado |
|---|---|
* * * * * | Cada minuto |
0 9 * * * | Diariamente a las 9:00 AM |
0 0 * * 0 | Semanalmente los domingos a medianoche |
0 */6 * * * | Cada 6 horas |
30 8 * * 1-5 | Dí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:
| Propiedad | Tipo | Descripción |
|---|---|---|
source | string | Identificador de la fuente del evento (p. ej., payment-service) |
eventType | string | Tipo de evento a emparejar (p. ej., payment.completed) |
filter | string? | 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 Filtro | Coincide Cuando |
|---|---|
$.data.status == 'active' | El campo de estado es igual a "activo" |
$.data.amount > 100 | La 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
| Endpoint | Método | Descripción |
|---|---|---|
/api/projects/:id/webhook/*path | POST, GET | Disparador de webhook asíncrono |
/api/projects/:id/webhook-exec/*path | POST | Disparador de webhook síncrono (espera el resultado) |
/api/projects/:id/webhook-events | GET | Flujo SSE para notificaciones de webhook |
/api/projects/:id/events | POST | Disparador de evento |
Anterior: ← Nodos de Acción | Siguiente: Pautas de Desarrollo →