Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

SOP Fan-In : Canal

Les messages entrants sur un canal de boucle d’agent (Telegram, Discord, Slack et les autres canaux conversationnels) peuvent déclencher des exécutions de SOP. Lorsqu’un SOP chargé souhaite recevoir des événements de canal, l’orchestrateur transforme chaque message entrant en un événement SOP (le type de canal et l’alias facultatif deviennent le sujet de l’événement, et le contenu du message devient le payload), puis le transmet au moteur en parallèle du tour d’agent normal.

Le côté transport (token du bot, utilisateurs autorisés, comportement par canal) est configuré sur chaque channel. Cette page couvre le déclencheur. Les canaux agent-loop n’ont pas de commutateur de répartition par canal : le déclencheur channel du SOP est l’opt-in, et le tour d’agent normal s’exécute toujours en parallèle de toute exécution SOP qu’il démarre.

Déclencheur

Message entrant ou événement forge/platform sur un canal configuré (telegram, discord, slack, git, …). Live : diffusé par l’orchestrateur de canal lorsque le dispatch SOP du canal est activé. Le producteur forge Git définit un sujet d’événement sous la forme <channel>.<alias>:<event_type> et place event_type dans la charge utile, afin qu’une condition définie filtre les événements forge par type sans nécessiter de seconde forme de déclencheur.

champtypepar défautsens
aliasstring?nullAlias d’instance configurée optionnel ; non défini correspond à chaque instance.
channel*chaîneChannelKind valeur snake_case nommant le type de canal.
conditionstring?nullExpression optionnelle évaluée par rapport à la charge utile du message.

Charger et vérifier le SOP :

Définir

Rédigez le SOP comme décrit dans Syntax, avec un déclencheur channel. Les champs de déclencheur ci-dessus sont les clés prises en charge ; la page parcourt l’intégralité du fichier.

Valider

zeroclaw sop validate

Inspect

zeroclaw sop list
zeroclaw sop show <name>

Correspondance

Le channel est une valeur ChannelKind en snake_case (telegram, discord, slack, …). Un déclencheur sans alias correspond à toute instance configurée de ce type de canal ; un déclencheur avec un alias ne correspond qu’à cette instance. Le topic de l’événement est <kind> ou <kind>/<alias>. Le contenu du message est transmis dans le payload d’événement SOP, disponible pour une condition de déclencheur optionnelle ; le contexte d’étape reçoit la forme plafonnée, assainie et cadrée. Une condition JSON-path telle que $.text == "deploy" exige que le corps du message soit du JSON.

Exécutez-le

Chargez une SOP avec un déclencheur channel, puis envoyez un message à ce canal. Le déclencheur channel correspond à l’opt-in : l’orchestrateur ne transforme les messages entrants en événements que lorsqu’une SOP chargée souhaite des événements de canal. Il place le type de canal et l’alias dans le topic et le contenu dans le payload, puis le dispatche. Une exécution démarre pour chaque SOP chargée dont le channel (et l’alias, s’il est défini) correspond, et dont la condition (le cas échéant) est satisfaite pour le contenu. Le tour normal de l’agent continue de s’exécuter en parallèle de toute exécution qui démarre.

Le saut fan-in est entièrement ignoré lorsqu’aucun SOP chargé n’a de déclencheur channel, de sorte que les canaux sans SOP provenant d’un canal ne paient rien.

Toutes les livraisons provenant des canaux passent par l’adaptateur d’ingestion SOP partagé de l’environnement d’exécution avant la construction d’un événement. L’adaptateur prend en charge les vérifications d’intérêt de la source, les diagnostics des handles requis du moteur et de l’audit, la limitation des entrées non fiables, l’horodatage des événements et la journalisation des résultats de distribution. Le code des canaux ne fournit que le sujet et la charge utile gérés par le transport. Les événements Forge utilisent la même frontière avec leur SOP cible configurée et ne peuvent donc pas contourner la mise en correspondance des déclencheurs ni le flux normal de sécurité et d’audit.

Si rien ne se lance, vérifiez qu’un SOP chargé dispose d’un déclencheur channel, que le channel/alias du déclencheur correspond à l’instance sur laquelle le message est arrivé, et que la condition correspond. Consultez le tableau de dépannage de la vue d’ensemble fan-in.

Approuver et observer

Les exécutions qui atteignent un point de contrôle se mettent en pause en tant que WaitingApproval. Effacez-les ou inspectez-les avec le CLI (zeroclaw sop list, zeroclaw sop approve) ou hors bande via les endpoints d’approbation de la gateway API (GET /admin/sop/pending, POST /admin/sop/approve, POST /admin/sop/deny).

Voir aussi