自動化規則
通過過濾、取樣和動作規則自動路由進入的智慧體軌跡。Potato 會對每條進入的軌跡執行各條規則,將其路由到標註佇列、整理進資料集、執行評估器、觸發 webhook 或通知標註者。
自動化規則打通了從生產到評估的閉環:一條可程式設計的 filter → sampling rate → actions 流水線會對每個進入 Potato 的條目執行,無論條目是從資料檔案載入,還是在執行時通過軌跡 webhook 或追蹤 SDK 攝入。每條匹配的規則都可以將條目路由到標註佇列、整理進評估資料集、執行評估器、觸發出站 webhook,或通知標註者。
啟用
yaml
automation:
enabled: true
rules:
- name: route-errors
when: {field: status, in: [error, failed]}
sample_rate: 1.0 # 0.0–1.0 (default 1.0 = every match)
actions:
- {type: add_to_queue, priority: 100, reason: "Agent errored"}
- {type: add_to_dataset, dataset: errors-to-fix}
- {type: run_evaluator, evaluator: trajectory_match}
- {type: fire_webhook, url: "https://example.com/hook"}
- {type: notify, message: "New error trace"}規則何時觸發
一條規則在兩個條件同時成立時觸發:
when匹配 —— 使用共享的條件語法(與分診相同):equals、in、contains、exists、lt/lte/gt/gte,以及點號欄位路徑(metadata.score)。條件列表按 AND 組合;空的when匹配一切。sample_rate選中它 —— 基於(item id, rule name)雜湊的確定性取樣,因此重新處理同一條目會得到相同的決定(冪等、可安全重放)。
動作
| 動作 | 執行時機 | 效果 |
|---|---|---|
add_to_queue | 內聯(快速) | 提升條目的分診優先順序,使其優先出現 |
add_to_dataset | 內聯(快速) | 將條目作為示例追加到資料集 |
notify | 內聯(快速) | 通過 SSE 通知已連線的標註者 |
run_evaluator | 後臺工作程序 | 用評估器為條目打分;分數儲存在條目上 |
fire_webhook | 後臺工作程序 | 向外部 URL 以 POST 傳送 {rule, item_id, item_data} |
快速動作在攝入路徑中內聯執行。重型動作(run_evaluator、fire_webhook)交給後臺工作程序,因此攝入永遠不會等待外部呼叫。每個動作都會記錄結果,失敗會被捕獲而不是丟擲,所以一條寫壞的規則不會破壞攝入。
檢視狀態
管理面板連結到 Automation(/admin/automation),顯示已配置的規則、活動計數器和最近的動作結果(也可通過 /admin/automation/status 和 /admin/automation/outcomes 以 JSON 獲取)。
相關內容
- Read the Docs 上的完整參考 —— 所有動作類型和條件語法,與版本匹配
- 資料集與實驗 ——
add_to_dataset的目標 - 程式化評估器 ——
run_evaluator - 分診佇列 —— 共享同一套條件語法
- 追蹤 SDK —— 進入軌跡的來源之一