Features
- Qdrant 벡터 수명주기 관리:
detection_agent 벡터 중 보존 기간이 지난 미 feedback 데이터를 자동 삭제하는 retention 작업을 추가했습니다. Kubernetes CronJob과 Docker Compose scheduler를 지원하며 기본 보존 기간은 30일입니다.
- 실험 요청 지원:
analysis_id가 포함된 요청을 실험 요청으로 구분하고, 운영 MFM의 detection interval 제한을 우회할 수 있도록 했습니다.
- 실험 데이터 격리: 실험 요청은 Qdrant collection을 생성하거나 벡터를 저장하지 않으며, 기존 feedback 데이터는 읽기 전용으로만 사용합니다.
- 복합 시나리오 분류 개선: 시나리오를 동일한 탐지 로직의
SINGLE과 서로 다른 탐지 로직의 MULTIPLE로 더 정확하게 분류하도록 기준을 보강했습니다. PPE 항목 나열, 화재·연기 조합, 동시 작업, 예외 조건 등을 세분화해 처리합니다.
- Thinking Mode 예외 조건 지원: “용접 작업을 제외한 화재”, “용접 연기를 제외한 연기”처럼 예외 조건이 포함된 사고 시나리오도 Thinking Mode에서 판단하도록 개선했습니다.
- Frame Interval 안내: Timeline 모드에서
frame_interval이 설정된 경우, 해당 값의 의미와 단위를 한국어·영어 안내문에 자동으로 표시합니다.
Performance Enhancements
- Qdrant 저장량 안정화: feedback이 없고 보존 기간이 지난 벡터만 자동 정리하여 Qdrant 저장 공간이 계속 증가하는 문제를 방지합니다. feedback 이력이 있거나 timestamp를 해석할 수 없는 데이터는 삭제하지 않습니다.
- Feedback 변경 시점 기록: 사용자가 feedback을 수정한 시각을
feedback_updated_at으로 기록하여 retention 정책이 feedback 이력이 있는 벡터를 보존할 수 있도록 했습니다.
- 평가 실행 유연성 개선: 평가 도구에서 데이터 원본의
detection_mode로 카메라를 선택하면서도, 실제 실행 모드는 forced_detection_mode로 별도 지정할 수 있도록 개선했습니다.
- Incremental 평가 범위 보존: incremental 평가와
update_only 실행에서 API 기준 카메라 범위가 유지되도록 수정하여 기존 평가 결과의 재집계와 부분 재실행을 안정화했습니다.
Internal Improvements
- Provider 구성 단순화: 사용하지 않는 Clova·Ollama provider와 Azure ARM 기반 모델 자동 조회를 제거하고, 현재 운영 대상 provider 중심으로 의존성과 모델 카탈로그를 정리했습니다.
- Retention 실행 구조 개선: 애플리케이션 내부에서 실행하던 Langfuse retention worker를 제거하고, Qdrant retention을 별도 CronJob 또는 opt-in scheduler로 분리했습니다.
- 배포 설정 정비: Helm chart와 Docker Compose에 Qdrant retention 설정, 실행 스케줄, 리소스 제한, 환경 변수 기본값을 추가했습니다.
- 평가 재현성 강화: detection mode 선택 범위, 강제 실행 mode, enrich cache namespace를 분리하여 서로 다른 평가 설정의 결과가 섞이지 않도록 했습니다.
이전 버전
EVA Agent v3.1.0 (Aug 7, 2026)