Règles d'automatisation
Routez automatiquement les traces d'agent entrantes avec des règles de filtre, d'échantillonnage et d'actions. Potato exécute chaque règle sur chaque trace entrante pour l'envoyer dans la file d'annotation, l'ajouter à un jeu de données, lancer un évaluateur, déclencher un webhook ou notifier les annotateurs.
Les règles d'automatisation ferment la boucle entre production et évaluation : un pipeline programmable filter → sampling rate → actions s'exécute sur chaque élément qui entre dans Potato, qu'il soit chargé depuis des fichiers de données ou ingéré à l'exécution via le webhook de traces ou le SDK de traçage. Chaque règle qui correspond peut envoyer l'élément dans la file d'annotation, l'ajouter à un jeu de données d'évaluation, lancer un évaluateur, déclencher un webhook sortant ou notifier les annotateurs.
Activation
automation:
enabled: true
rules:
- name: route-errors
when: {field: status, in: [error, failed]}
sample_rate: 1.0 # 0.0–1.0 (default 1.0 = every match)
actions:
- {type: add_to_queue, priority: 100, reason: "Agent errored"}
- {type: add_to_dataset, dataset: errors-to-fix}
- {type: run_evaluator, evaluator: trajectory_match}
- {type: fire_webhook, url: "https://example.com/hook"}
- {type: notify, message: "New error trace"}Quand une règle se déclenche
Une règle se déclenche lorsque les deux conditions sont réunies :
whencorrespond — la grammaire de conditions partagée (la même que pour le triage) :equals,in,contains,exists,lt/lte/gt/gte, chemins de champ pointés (metadata.score). Une liste de conditions est combinée par ET ; unwhenvide correspond à tout.sample_ratele sélectionne — échantillonnage déterministe basé sur un hachage de(item id, rule name), de sorte que retraiter le même élément produit la même décision (idempotent, sûr en cas de rejeu).
Actions
| Action | Moment d'exécution | Effet |
|---|---|---|
add_to_queue | en ligne (rapide) | Augmente la priorité de triage de l'élément pour qu'il remonte en premier |
add_to_dataset | en ligne (rapide) | Ajoute l'élément comme exemple à un jeu de données |
notify | en ligne (rapide) | Notifie les annotateurs connectés via SSE |
run_evaluator | worker en arrière-plan | Note l'élément avec un évaluateur ; stocke le score sur l'élément |
fire_webhook | worker en arrière-plan | Envoie un POST {rule, item_id, item_data} vers une URL externe |
Les actions rapides s'exécutent en ligne dans le chemin d'ingestion. Les actions lourdes (run_evaluator, fire_webhook) partent vers un worker en arrière-plan, si bien que l'ingestion n'attend jamais un appel externe. Chaque action enregistre son résultat, et les échecs sont interceptés plutôt que propagés : une règle défectueuse ne peut pas casser l'ingestion.
Inspection
Le tableau de bord d'administration renvoie vers Automation (/admin/automation), qui affiche les règles configurées, les compteurs d'activité et les résultats récents des actions (également disponibles en JSON via /admin/automation/status et /admin/automation/outcomes).
Pages liées
- Référence complète sur Read the Docs — tous les types d'action et la grammaire de conditions, alignée sur la version
- Jeux de données et expériences — cibles de
add_to_dataset - Évaluateurs programmatiques —
run_evaluator - File de triage — partage la grammaire de conditions
- SDK de traçage — une source de traces entrantes