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 頭。該頁面顯示所有剩餘(未完成)條目,按優先順序排名,並列出標記它的規則、當前標註次數,以及它是否已被分配。

執行時攝取

由於評分器會在條目加入時執行,通過軌跡攝取(webhook 端點或 Langfuse 輪詢器)在執行時攝取的軌跡會在到達時被評分,並自動進入優先順序佇列。會話進行中推入的低分或出錯軌跡,會插隊到仍在等待的乾淨軌跡之前。

注意事項與限制

  • 優先順序在插入時計算。編輯 triage.rules 並重啟後,下次載入時會重新評分所有條目。
  • 格式錯誤的規則會記錄一條警告並被跳過;它絕不會阻塞資料載入。
  • 分流決定條目的服務順序,但不會改變每條目的標註上限。

相關內容

有關實現細節,請參閱源文件