Déclencheurs

Les dĂ©clencheurs dĂ©finissent comment les workflows dĂ©marrent dans ADK Studio. Chaque workflow commence par un nƓud de dĂ©clencheur qui dĂ©termine le point d'entrĂ©e — que ce soit Ă  partir d'une entrĂ©e utilisateur, d'un webhook HTTP, d'une planification cron ou d'un Ă©vĂ©nement externe.

Panneau des propriétés du déclencheur

Types de déclencheurs

TypeDescriptionCas d'utilisation
ManuelInitiée par l'utilisateur via une entrée de chatAgents interactifs, tests
WebhookPoint de terminaison HTTP (POST/GET)Intégrations API, pipelines CI/CD
PlanificationDéclenchement basé sur CronRapports périodiques, synchronisation de données
ÉvĂ©nementÉvĂ©nements de systĂšme externeOrchestration de microservices, workflows pilotĂ©s par les Ă©vĂ©nements

Déclencheurs manuels

Le type de déclencheur par défaut. Lorsqu'un workflow a un déclencheur manuel, l'entrée du chat est affichée avec une étiquette et un espace réservé configurables.

Configuration :

PropriétéTypeDéfaut
inputLabelstring"Entrez votre message"
defaultPromptstring"Que pouvez-vous m'aider Ă  construire avec ADK-Rust aujourd'hui ?"

L'étiquette d'entrée apparaßt au-dessus du champ d'entrée du chat, et l'invite par défaut est utilisée comme texte de l'espace réservé.


Déclencheurs Webhook

Expose un point de terminaison HTTP qui démarre le workflow lorsqu'il est appelé. Utile pour l'intégration avec des services externes, des pipelines CI/CD ou d'autres applications.

Configuration :

PropriétéTypeDescription
pathstringChemin d'URL (ex: /my-webhook)
methodGET, POSTMéthode HTTP à accepter
authnone, bearer, api_keyExigence d'authentification

Points de terminaison

Chaque déclencheur webhook crée deux points de terminaison :

Point de terminaisonComportement
/api/projects/:id/webhook/*pathAsynchrone — renvoie l'ID de session immĂ©diatement
/api/projects/:id/webhook-exec/*pathSynchrone — attend la fin du flux de travail et renvoie le rĂ©sultat

Les webhooks GET fonctionnent également :

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

Authentification

Jeton d'authentification (Bearer token) :

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"}'

Clé 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"}'

Notifications d'événements de webhook

Abonnez-vous aux événements d'exécution de webhook en temps réel via SSE :

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

Ce flux émet des événements au fur et à mesure que les webhooks sont reçus et traités.


Déclencheurs de planification

Exécutez des flux de travail selon un calendrier récurrent à l'aide d'expressions cron.

Configuration :

PropriétéTypeDescription
cronstringExpression cron Ă  5 champs
timezonestringFuseau horaire IANA (par exemple, America/New_York)
defaultPromptstring?Texte d'entrée envoyé lorsque la planification se déclenche

Syntaxe Cron

Expressions cron standard Ă  5 champs :

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

Exemples :

ExpressionSignification
* * * * *Chaque minute
0 9 * * *Tous les jours Ă  9h00
0 0 * * 0Chaque semaine le dimanche Ă  minuit
0 */6 * * *Toutes les 6 heures
30 8 * * 1-5Les jours de semaine Ă  8h30

Le service de planification suit les horodatages last_executed pour éviter les exécutions en double.


Déclencheurs d'événements

Démarrez des flux de travail en réponse à des événements de systÚmes externes. Les événements sont mis en correspondance par source et eventType, avec un filtrage JSONPath facultatif sur les données d'événement.

Configuration :

PropriétéTypeDescription
sourcestringIdentifiant de la source d'événement (ex: payment-service)
eventTypestringType d'événement à faire correspondre (ex: payment.completed)
filterstring?Expression JSONPath pour filtrer les événements

Envoi d'événements

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"
    }
  }'

Filtres JSONPath

Filtrez les événements afin que le workflow ne se déclenche que lorsque des conditions spécifiques sont remplies :

Expression de filtreCorrespond quand
$.data.status == 'active'Le champ statut est égal à "active"
$.data.amount > 100Le montant dépasse 100
$.data.priority == 'high'La priorité est "élevée"

Les événements qui ne correspondent pas au filtre sont ignorés silencieusement.


Bouton d'exécution sensible au déclencheur

L'interface utilisateur de Studio s'adapte en fonction du type de déclencheur actif :

  • Manuel — Saisie de chat standard avec le libellĂ© et l'espace rĂ©servĂ© configurĂ©s
  • Webhook — Le bouton d'exĂ©cution envoie une charge utile de webhook simulĂ©e
  • Planification — Le bouton d'exĂ©cution envoie l'invite par dĂ©faut configurĂ©e
  • ÉvĂ©nement — Le bouton d'exĂ©cution envoie une charge utile d'Ă©vĂ©nement simulĂ©e

Lorsqu'un workflow a été modifié depuis la derniÚre compilation, le bouton d'envoi se transforme en bouton de compilation pour déclencher la recompilation.


Référence API

Point de terminaisonMéthodeDescription
/api/projects/:id/webhook/*pathPOST, GETDéclencheur de webhook asynchrone
/api/projects/:id/webhook-exec/*pathPOSTDéclencheur de webhook synchrone (attend le résultat)
/api/projects/:id/webhook-eventsGETFlux SSE pour les notifications de webhook
/api/projects/:id/eventsPOSTDéclencheur d'événement

PrĂ©cĂ©dent: ← NƓuds d'action | Suivant: Lignes directrices de dĂ©veloppement →

Déclencheurs - Documentation ADK-Rust | ADK-Rust