Reglas de automatización
Enruta automáticamente las trazas de agente entrantes con reglas de filtro, muestreo y acciones. Potato ejecuta cada regla sobre cada traza entrante para enviarla a la cola de anotación, curarla en un dataset, ejecutar un evaluador, disparar un webhook o notificar a los anotadores.
Las reglas de automatización cierran el ciclo de producción a evaluación: un pipeline programable filter → sampling rate → actions se ejecuta sobre cada elemento que entra en Potato, ya sea cargado desde archivos de datos o ingerido en tiempo de ejecución mediante el webhook de trazas o el SDK de tracing. Cada regla que coincide puede enviar el elemento a la cola de anotación, curarlo en un dataset de evaluación, ejecutar un evaluador, disparar un webhook saliente o notificar a los anotadores.
Activación
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"}Cuándo se dispara una regla
Una regla se dispara cuando se cumplen ambas condiciones:
whencoincide — la gramática de condiciones compartida (la misma que en el triaje):equals,in,contains,exists,lt/lte/gt/gte, rutas de campo con puntos (metadata.score). Una lista de condiciones se combina con AND; unwhenvacío coincide con todo.sample_ratelo selecciona — muestreo determinista basado en un hash de(item id, rule name), de modo que reprocesar el mismo elemento produce la misma decisión (idempotente y seguro ante repeticiones).
Acciones
| Acción | Cuándo se ejecuta | Efecto |
|---|---|---|
add_to_queue | en línea (rápida) | Aumenta la prioridad de triaje del elemento para que aparezca primero |
add_to_dataset | en línea (rápida) | Añade el elemento como ejemplo a un dataset |
notify | en línea (rápida) | Notifica a los anotadores conectados vía SSE |
run_evaluator | worker en segundo plano | Puntúa el elemento con un evaluador; guarda la puntuación en el elemento |
fire_webhook | worker en segundo plano | Envía un POST con {rule, item_id, item_data} a una URL externa |
Las acciones rápidas se ejecutan en línea dentro de la ruta de ingesta. Las acciones pesadas (run_evaluator, fire_webhook) pasan a un worker en segundo plano, de modo que la ingesta nunca espera a una llamada externa. Cada acción registra un resultado, y los fallos se capturan en lugar de propagarse, así que una regla defectuosa no puede romper la ingesta.
Inspección
El panel de administración enlaza a Automation (/admin/automation), donde se muestran las reglas configuradas, contadores de actividad y los resultados recientes de las acciones (también disponibles como JSON en /admin/automation/status y /admin/automation/outcomes).
Relacionado
- Referencia completa en Read the Docs — todos los tipos de acción y la gramática de condiciones, ajustada a cada versión
- Datasets y experimentos — destinos de
add_to_dataset - Evaluadores programáticos —
run_evaluator - Cola de triaje — comparte la gramática de condiciones
- SDK de tracing — una fuente de trazas entrantes