Signalbasierte Triage-Warteschlange
Priorisiere die Annotations-Warteschlange anhand eines Qualitätssignals pro Element, damit Prüfer die schlechtesten oder verdächtigsten Traces zuerst sehen, statt in Eingangsreihenfolge zu annotieren. Leite anhand von Agentenfehlern, Daumen-runter in der Produktion, niedrigen Bewertungen oder beliebigen benutzerdefinierten Feldern.
Die Triage-Warteschlange priorisiert die Annotation anhand eines Qualitätssignals pro Element, damit Prüfer die schlechtesten oder verdächtigsten Elemente zuerst sehen, statt in Eingangsreihenfolge (FIFO) zu arbeiten. Das Signal kann ein Agentenfehler, ein Daumen-runter in der Produktion, eine niedrige automatische Bewertung oder ein beliebiges benutzerdefiniertes Feld sein. Es wird sowohl für statisch geladene Daten als auch für zur Laufzeit aufgenommene Traces gelesen und erscheint an zwei Stellen: einem Banner während der Annotation und der Ranking-Seite /admin/triage-queue.
Wenn die menschliche Prüfzeit knapp ist, kommt es auf die Reihenfolge an, in der Elemente die Annotatoren erreichen. Die aussagekräftigsten Elemente zuerst zu leiten, ist die Triage-Hälfte einer aktiven Evaluierungsschleife, und sie ergänzt sich natürlich mit der Judge-Ausrichtung, um Meinungsverschiedenheiten und Fehler zuerst an Menschen zu schicken.
Ein Prioritätsabzeichen, das erklärt, warum ein Element zur Prüfung markiert wurde
Konfiguration
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: priorityWenn du rules (und signal_field) weglässt, verwendet Potato einen schlüsselfertigen Standardsatz: Fehlerstatus (100), negatives Feedback (80) und Bewertung unter 0.5 (60).
Bedingungsoperatoren
| Operator | Bedeutung |
|---|---|
equals | exakte Übereinstimmung (Zeichenketten ohne Groß-/Kleinschreibung) |
in | Wert ist einer aus einer Liste |
contains | Listenfeld enthält, oder Teilstring-Übereinstimmung |
lt / lte / gt / gte | numerischer Vergleich |
exists | Feld ist vorhanden oder fehlt (true/false) |
Ein numerisches Signal direkt lesen
Statt der Regeln oder zusätzlich dazu kannst du eine Zahl direkt aus einem Feld lesen:
triage:
enabled: true
signal_field: quality_score # used as the priority when no rule matches
invert_signal: true # lower score => higher priorityWie die Priorität die Zuweisung steuert
Setze assignment_strategy: priority. Wenn ein Benutzer Elemente benötigt, wird die Warteschlange nach dem gespeicherten triage_priority jedes Elements sortiert (standardmäßig absteigend; order: asc kehrt es um), wobei Gleichstände der Bestimmtheit halber über die ursprüngliche Ladereihenfolge aufgelöst werden, und die obersten Elemente werden zugewiesen. Das Signal wird einmalig zur Lade- oder Aufnahmezeit berechnet und am Element gespeichert, sodass die Zuweisung kostengünstig bleibt.
Das Abzeichen (show_badge: true) ist unabhängig von der Strategie. Es erklärt, warum ein Element markiert wurde, selbst wenn du eine andere Zuweisungsstrategie beibehältst.
Die Admin-Warteschlangenseite
GET /admin/triage-queue # JSON
GET /admin/triage-queue?format=html # rendered page
Sende den Header X-API-Key. Die Seite zeigt jedes verbleibende (unvollständige) Element nach Priorität geordnet, mit der Regel, die es markiert hat, der aktuellen Annotationsanzahl und ob es bereits zugewiesen ist.
Aufnahme zur Laufzeit
Da der Scorer beim Hinzufügen der Elemente läuft, werden zur Laufzeit über die Trace-Aufnahme (den Webhook-Endpunkt oder einen Langfuse-Poller) aufgenommene Traces bei ihrer Ankunft bewertet und automatisch in die Prioritätswarteschlange eingeordnet. Ein mitten in der Sitzung eingeschobener Trace mit niedriger Bewertung oder Fehler springt vor die sauberen, die noch warten.
Hinweise und Einschränkungen
- Die Priorität wird zum Einfügezeitpunkt berechnet. Das Bearbeiten von
triage.rulesund ein Neustart bewerten beim nächsten Laden alles neu. - Eine fehlerhafte Regel protokolliert eine Warnung und wird übersprungen; sie blockiert nie das Laden der Daten.
- Die Triage ordnet, welche Elemente bereitgestellt werden. Sie ändert nicht die Annotationsobergrenzen pro Element.
Verwandt
- Judge-↔-Mensch-Ausrichtung — Übereinstimmung von Judge und Mensch quantifizieren
- Drei-Bereiche-Trace-Evaluierung — eingehende Traces schnell lesen
- Agentische Annotation — Trace-Aufnahme und -Anzeige
Für Implementierungsdetails siehe die Quelldokumentation.