failproofai-sdk 패키지의 failproofai_sdk.evaluator 모듈에 포함되어 있으며, 트레이싱 SDK를 임포트해도 자동으로 로드되지 않습니다.
평가 작성
@app.eval(key, version=...)은 평가를 등록합니다. key는 결과가 표시될 이름이며, 로직이 변경될 때마다 version을 업데이트하면 각 결과에 생성 당시의 버전이 기록됩니다. 하나의 워커는 최대 100개의 평가를 보유할 수 있습니다.result_kind는 별도로 지정하지 않으면"score"입니다."metric"또는"assertion"평가의 경우,metrics또는assertions항목 중 하나의 이름을 key와 동일하게 지정하면 해당 항목이 결과로 사용됩니다.when은 세션 적용 여부를 결정합니다.ConditionResult(False, "<reason>")를 반환하면 해당 세션을 건너뛰고, 이유가 기록됩니다.- 평가 함수는 일반 함수 또는
async함수로 정의할 수 있으며,timeout_seconds로 실행 시간을 제한할 수 있습니다. - 페이로드 키 — 위 예시의
tool_name,response,content— 는 에이전트가 전송하는 값이므로, 실제 세션에서 확인하여 사용하세요.
워커 실행
Administration → Keys 에서evaluations:run 권한을 가진 키를 생성하고, FAILPROOFAI_EVALUATOR_TOKEN 환경 변수에 설정하세요. 명령어에 직접 입력하지 말고 시크릿 저장소를 통해 설정하는 것을 권장합니다. 그런 다음 워커를 시작합니다:
__main__ 블록 없이 사용할 경우, python -m failproofai_sdk.evaluator evaluator:app 으로도 동일하게 실행할 수 있습니다.
결과 타입
EvalResult 는 score, metric, assertion 중 최소 하나 이상, 최대 25개까지 고유한 키로 포함해야 합니다.
세션
각 이벤트는
id, ts, event_type, payload 를 포함합니다.
레거시 Evaluator
이전 Evaluator SDK — Failproof AI가EVALUATOR_ENDPOINT 로 호출하고, /evaluate 엔드포인트에서 응답하며 JobPending 방식으로 폴링되는 HTTP 서비스 — 는 지원이 종료되었습니다. 새로운 평가는 이 워커 방식으로 구축하세요. 레거시 서비스를 운영 중인 셀프 호스팅 인스턴스의 운영자는 전환 기간 동안 기존 방식을 유지할 수 있습니다.
