Skip to content

自動化ルール

フィルタ、サンプリング、アクションのルールで、届いたエージェント・トレースを自動的に振り分けます。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"}

ルールが発火する条件

ルールは、次の両方が成り立つときに発火します。

  1. when が一致するトリアージと共通の条件文法です:equalsincontainsexistslt/lte/gt/gte、ドット区切りのフィールド・パス(metadata.score)。条件のリストは AND で結合され、空の when はすべてに一致します。
  2. 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_evaluatorfire_webhook)はバックグラウンド・ワーカーに送られるため、取り込みが外部呼び出しを待つことはありません。すべてのアクションは結果を記録し、失敗は例外として送出されず捕捉されるので、不正なルールが取り込みを壊すことはできません。

確認する

管理ダッシュボードには Automation/admin/automation)へのリンクがあり、設定済みのルール、アクティビティ・カウンター、直近のアクション結果を表示します(/admin/automation/status/admin/automation/outcomes で JSON としても取得できます)。

関連項目