自動化ルール
フィルタ、サンプリング、アクションのルールで、届いたエージェント・トレースを自動的に振り分けます。Potato は受信する各トレースに対してすべてのルールを実行し、アノテーション・キューへの振り分け、データセットへのキュレーション、評価器の実行、webhook の発火、アノテーターへの通知を行います。
自動化ルールは、本番環境から評価までのループを閉じます。プログラム可能な filter → sampling rate → actions パイプラインが、Potato に入ってくるすべてのアイテムに対して実行されます。 データ・ファイルから読み込まれたものでも、トレース webhook や トレーシング SDK 経由でランタイムに取り込まれたものでも対象になります。一致した各ルールは、アイテムをアノテーション・キューに振り分ける、評価データセットにキュレーションする、評価器を実行する、外部への webhook を発火する、アノテーターに通知する、といったことができます。
有効化
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 | バックグラウンド・ワーカー | {rule, item_id, item_data} を外部 URL に POST する |
高速なアクションは取り込みパスの中でインラインに実行されます。重いアクション(run_evaluator、fire_webhook)はバックグラウンド・ワーカーに送られるため、取り込みが外部呼び出しを待つことはありません。すべてのアクションは結果を記録し、失敗は例外として送出されず捕捉されるので、不正なルールが取り込みを壊すことはできません。
確認する
管理ダッシュボードには Automation(/admin/automation)へのリンクがあり、設定済みのルール、アクティビティ・カウンター、直近のアクション結果を表示します(/admin/automation/status と /admin/automation/outcomes で JSON としても取得できます)。
関連項目
- Read the Docs の完全なリファレンス — すべてのアクション型と条件文法、バージョン対応版
- データセットと実験 —
add_to_datasetの追加先 - プログラマティック評価器 —
run_evaluator - トリアージ・キュー — 条件文法を共有
- トレーシング SDK — 受信トレースのソースのひとつ