신호 기반 분류 대기열
항목별 품질 신호로 주석 대기열의 우선순위를 정해, 검토자가 도착 순서대로 주석을 다는 대신 가장 나쁘거나 가장 의심스러운 트레이스를 먼저 보도록 합니다. 에이전트 오류, 프로덕션의 비추천, 낮은 점수, 또는 임의의 사용자 정의 필드로 라우팅하세요.
분류 대기열은 항목별 품질 신호로 주석의 우선순위를 정해, 검토자가 가장 나쁘거나 가장 의심스러운 항목을 먼저 보도록 합니다. 도착(FIFO) 순서대로 작업하지 않습니다. 신호는 에이전트 오류, 프로덕션의 비추천, 낮은 자동 점수, 또는 임의의 사용자 정의 필드일 수 있습니다. 신호는 정적으로 로드된 데이터와 런타임에 수집된 트레이스 모두에서 읽히며, 두 곳에 나타납니다. 주석 작업 중의 배너와 /admin/triage-queue 순위 페이지입니다.
사람의 검토 시간이 부족할 때는 항목이 주석 작업자에게 도달하는 순서가 중요합니다. 가장 유익한 항목을 먼저 라우팅하는 것은 능동적 평가 루프에서 분류에 해당하는 절반이며, 심판 정렬과 자연스럽게 결합되어 의견 불일치와 오류를 사람에게 먼저 보냅니다.
어떤 항목이 검토 대상으로 표시된 이유를 설명하는 우선순위 배지
구성
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: priorityrules(및 signal_field)를 생략하면 Potato는 바로 사용할 수 있는 기본 세트를 사용합니다. 오류 상태(100), 부정적 피드백(80), 0.5 미만 점수(60)입니다.
조건 연산자
| 연산자 | 의미 |
|---|---|
equals | 정확한 일치 (문자열은 대소문자를 구분하지 않음) |
in | 값이 목록 중 하나임 |
contains | 목록 필드가 포함하거나, 부분 문자열 일치 |
lt / lte / gt / gte | 숫자 비교 |
exists | 필드가 존재하거나 없음 (true/false) |
숫자 신호를 직접 읽기
규칙 대신, 또는 규칙에 더해, 필드에서 숫자를 직접 읽을 수 있습니다.
triage:
enabled: true
signal_field: quality_score # used as the priority when no rule matches
invert_signal: true # lower score => higher priority우선순위가 할당을 이끄는 방식
assignment_strategy: priority를 설정합니다. 사용자가 항목이 필요할 때, 대기열은 각 항목에 저장된 triage_priority로 정렬되며(기본은 내림차순, order: asc는 반전), 결정성을 위해 동점은 원래 로드 순서로 결정되고, 상위 항목이 할당됩니다. 신호는 로드 또는 수집 시점에 한 번 계산되어 항목에 저장되므로 할당 비용이 낮게 유지됩니다.
배지(show_badge: true)는 전략과 독립적입니다. 다른 할당 전략을 유지하더라도 어떤 항목이 표시된 이유를 설명합니다.
관리자 대기열 페이지
GET /admin/triage-queue # JSON
GET /admin/triage-queue?format=html # rendered page
X-API-Key 헤더를 보내세요. 이 페이지는 남아 있는(미완료) 모든 항목을 우선순위로 순위를 매겨 보여주며, 해당 항목을 표시한 규칙, 현재 주석 수, 그리고 이미 할당되었는지 여부를 함께 표시합니다.
런타임 수집
스코어러는 항목이 추가될 때 실행되므로, 트레이스 수집(웹훅 엔드포인트 또는 Langfuse 폴러)을 통해 런타임에 수집된 트레이스는 도착하는 대로 점수가 매겨져 자동으로 우선순위 대기열에 자리 잡습니다. 세션 도중에 들어온 낮은 점수나 오류 트레이스는 아직 대기 중인 깨끗한 트레이스를 앞지릅니다.
참고 사항 및 제한
- 우선순위는 삽입 시점에 계산됩니다.
triage.rules를 편집하고 다시 시작하면 다음 로드 시 전체가 다시 점수화됩니다. - 잘못된 형식의 규칙은 경고를 기록하고 건너뜁니다. 데이터 로딩을 막는 일은 결코 없습니다.
- 분류는 어떤 항목을 제공할지의 순서를 정합니다. 항목별 주석 상한은 변경하지 않습니다.
관련 항목
- 심판 ↔ 사람 정렬 — 심판과 사람의 일치도를 정량화하기
- 3개 창 트레이스 평가 — 들어오는 트레이스를 빠르게 읽기
- 에이전트형 주석 — 트레이스 수집 및 표시
구현 세부 사항은 원본 문서를 참조하세요.