Skip to content

신호 기반 분류 대기열

항목별 품질 신호로 주석 대기열의 우선순위를 정해, 검토자가 도착 순서대로 주석을 다는 대신 가장 나쁘거나 가장 의심스러운 트레이스를 먼저 보도록 합니다. 에이전트 오류, 프로덕션의 비추천, 낮은 점수, 또는 임의의 사용자 정의 필드로 라우팅하세요.

분류 대기열은 항목별 품질 신호로 주석의 우선순위를 정해, 검토자가 가장 나쁘거나 가장 의심스러운 항목을 먼저 보도록 합니다. 도착(FIFO) 순서대로 작업하지 않습니다. 신호는 에이전트 오류, 프로덕션의 비추천, 낮은 자동 점수, 또는 임의의 사용자 정의 필드일 수 있습니다. 신호는 정적으로 로드된 데이터와 런타임에 수집된 트레이스 모두에서 읽히며, 두 곳에 나타납니다. 주석 작업 중의 배너와 /admin/triage-queue 순위 페이지입니다.

사람의 검토 시간이 부족할 때는 항목이 주석 작업자에게 도달하는 순서가 중요합니다. 가장 유익한 항목을 먼저 라우팅하는 것은 능동적 평가 루프에서 분류에 해당하는 절반이며, 심판 정렬과 자연스럽게 결합되어 의견 불일치와 오류를 사람에게 먼저 보냅니다.

주석 작업 중의 분류 배지어떤 항목이 검토 대상으로 표시된 이유를 설명하는 우선순위 배지

구성

yaml
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: priority

rules(및 signal_field)를 생략하면 Potato는 바로 사용할 수 있는 기본 세트를 사용합니다. 오류 상태(100), 부정적 피드백(80), 0.5 미만 점수(60)입니다.

조건 연산자

연산자의미
equals정확한 일치 (문자열은 대소문자를 구분하지 않음)
in값이 목록 중 하나임
contains목록 필드가 포함하거나, 부분 문자열 일치
lt / lte / gt / gte숫자 비교
exists필드가 존재하거나 없음 (true/false)

숫자 신호를 직접 읽기

규칙 대신, 또는 규칙에 더해, 필드에서 숫자를 직접 읽을 수 있습니다.

yaml
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)는 전략과 독립적입니다. 다른 할당 전략을 유지하더라도 어떤 항목이 표시된 이유를 설명합니다.

관리자 대기열 페이지

text
GET /admin/triage-queue              # JSON
GET /admin/triage-queue?format=html  # rendered page

X-API-Key 헤더를 보내세요. 이 페이지는 남아 있는(미완료) 모든 항목을 우선순위로 순위를 매겨 보여주며, 해당 항목을 표시한 규칙, 현재 주석 수, 그리고 이미 할당되었는지 여부를 함께 표시합니다.

런타임 수집

스코어러는 항목이 추가될 때 실행되므로, 트레이스 수집(웹훅 엔드포인트 또는 Langfuse 폴러)을 통해 런타임에 수집된 트레이스는 도착하는 대로 점수가 매겨져 자동으로 우선순위 대기열에 자리 잡습니다. 세션 도중에 들어온 낮은 점수나 오류 트레이스는 아직 대기 중인 깨끗한 트레이스를 앞지릅니다.

참고 사항 및 제한

  • 우선순위는 삽입 시점에 계산됩니다. triage.rules를 편집하고 다시 시작하면 다음 로드 시 전체가 다시 점수화됩니다.
  • 잘못된 형식의 규칙은 경고를 기록하고 건너뜁니다. 데이터 로딩을 막는 일은 결코 없습니다.
  • 분류는 어떤 항목을 제공할지의 순서를 정합니다. 항목별 주석 상한은 변경하지 않습니다.

관련 항목

구현 세부 사항은 원본 문서를 참조하세요.