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이 일치함 — 공유 조건 문법(분류 큐와 동일)입니다: equals, in, contains, exists, lt/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백그라운드 워커외부 URL에 {rule, item_id, item_data}를 POST함

빠른 액션은 수집 경로에서 인라인으로 실행됩니다. 무거운 액션(run_evaluator, fire_webhook)은 백그라운드 워커로 넘어가므로, 수집이 외부 호출을 기다리는 일은 없습니다. 모든 액션은 결과를 기록하며, 실패는 예외를 던지는 대신 잡아서 처리하므로 잘못된 규칙 하나가 수집을 망가뜨릴 수 없습니다.

확인

관리자 대시보드는 Automation(/admin/automation)으로 연결되며, 구성된 규칙, 활동 카운터, 최근 액션 결과를 보여줍니다(/admin/automation/status/admin/automation/outcomes에서 JSON으로도 제공됩니다).

관련 항목