Coda di triage basata sui segnali
Dai priorità alla coda di annotazione in base a un segnale di qualità per singolo elemento, così i revisori vedono per primi i trace peggiori o più sospetti anziché annotare in ordine di arrivo. Instrada in base a errori dell'agente, voti negativi in produzione, punteggi bassi o qualsiasi campo personalizzato.
La coda di triage dà priorità all'annotazione in base a un segnale di qualità per singolo elemento, così i revisori vedono per primi gli elementi peggiori o più sospetti invece di lavorare in ordine di arrivo (FIFO). Il segnale può essere un errore dell'agente, un voto negativo in produzione, un punteggio automatico basso o qualsiasi campo personalizzato. Viene letto sia per i dati caricati staticamente sia per i trace acquisiti in fase di esecuzione, e compare in due punti: un banner durante l'annotazione e la pagina di classifica /admin/triage-queue.
Quando il tempo di revisione umana è scarso, conta l'ordine in cui gli elementi arrivano agli annotatori. Instradare per primi gli elementi più informativi è la metà di triage di un ciclo di valutazione attiva, e si abbina naturalmente all'allineamento del giudice per inviare prima ai revisori i disaccordi e gli errori.
Un badge di priorità che spiega perché un elemento è stato contrassegnato per la revisione
Configurazione
triage:
enabled: true
order: desc # high priority first (default); 'asc' = low first
default_priority: 0 # items matching no rule
show_badge: true # banner during annotation explaining the priority
rules: # evaluated in order; highest matching priority wins
- name: "Agent errored"
badge: "Agent errored" # banner text (defaults to name)
priority: 100
when:
field: status # dotted paths allowed, e.g. metadata.tags
equals: error
- name: "Negative feedback"
priority: 80
when:
field: feedback
in: [thumbs_down, negative]
- name: "Low quality score"
priority: 60
when:
field: score
lt: 0.5
# Serve the highest-priority items first. If you enable triage without setting
# assignment_strategy, Potato defaults to `priority` automatically.
assignment_strategy: prioritySe ometti rules (e signal_field), Potato usa un set predefinito pronto all'uso: stato di errore (100), feedback negativo (80) e punteggio inferiore a 0.5 (60).
Operatori di condizione
| Operatore | Significato |
|---|---|
equals | corrispondenza esatta (le stringhe non distinguono maiuscole/minuscole) |
in | il valore è uno di una lista |
contains | il campo lista contiene, oppure corrispondenza di sottostringa |
lt / lte / gt / gte | confronto numerico |
exists | il campo è presente o assente (true/false) |
Leggere direttamente un segnale numerico
Al posto delle regole, o in aggiunta ad esse, puoi leggere un numero direttamente da un campo:
triage:
enabled: true
signal_field: quality_score # used as the priority when no rule matches
invert_signal: true # lower score => higher priorityCome la priorità guida l'assegnazione
Imposta assignment_strategy: priority. Quando un utente ha bisogno di elementi, la coda viene ordinata in base al triage_priority memorizzato di ciascun elemento (decrescente per impostazione predefinita; order: asc lo inverte), con i pareggi risolti in base all'ordine di caricamento originale per garantire il determinismo, e vengono assegnati gli elementi in cima. Il segnale viene calcolato una sola volta al momento del caricamento o dell'acquisizione e memorizzato sull'elemento, così l'assegnazione resta economica.
Il badge (show_badge: true) è indipendente dalla strategia. Spiega perché un elemento è stato contrassegnato anche se mantieni una strategia di assegnazione diversa.
La pagina della coda di amministrazione
GET /admin/triage-queue # JSON
GET /admin/triage-queue?format=html # rendered page
Invia l'intestazione X-API-Key. La pagina mostra ogni elemento rimanente (incompleto) classificato per priorità, con la regola che l'ha contrassegnato, il conteggio attuale delle annotazioni e se è già assegnato.
Acquisizione in fase di esecuzione
Poiché lo scorer viene eseguito man mano che gli elementi vengono aggiunti, i trace acquisiti in fase di esecuzione tramite l'acquisizione dei trace (l'endpoint webhook o un poller Langfuse) vengono valutati al loro arrivo e si inseriscono automaticamente nella coda di priorità. Un trace con punteggio basso o in errore inserito a metà sessione scavalca quelli puliti ancora in attesa.
Note e limitazioni
- La priorità viene calcolata al momento dell'inserimento. Modificare
triage.rulese riavviare ricalcola tutto al caricamento successivo. - Una regola malformata registra un avviso e viene saltata; non blocca mai il caricamento dei dati.
- Il triage ordina quali elementi vengono serviti. Non modifica i limiti di annotazione per elemento.
Correlati
- Allineamento giudice ↔ umano — quantificare l'accordo tra giudice e umano
- Valutazione dei trace a tre pannelli — leggere rapidamente i trace in arrivo
- Annotazione agentica — acquisizione e visualizzazione dei trace
Per i dettagli di implementazione, consulta la documentazione di origine.