TL;DR

  • Sentry는 에이전트를 대체하지 않는 외부 런타임 실패 관리 계층으로, 네 가지 벤치마크에서 가장 강력한 런타임 개입 기준선보다 평균 37% 높은 성능을 보이고 검증된 복구에서 재사용 가능한 교훈을 학습함.
  • Sentry는 잘못된 동작과 반복 루프, 작업 이탈, 근거 없는 가정을 감지하고 복구를 안내한 뒤 성공 여부를 확인함.
  • 보류된 WebShop 및 Mind2Web Replay 작업에서 문맥 진화 기준선보다 평균 39% 높은 성능을 기록함.
  • 기본 에이전트 대비 토큰 사용량은 1.54배이며, 다른 런타임 방식의 최대 2.44배보다 적고 SWE-bench Lite에서 작업당 31.7초, AppWorld에서 45.6초를 절약함.
  • 감지된 939건의 실패 중 81.7%를 복구했으며, 검증된 소프트 복구를 유사한 실패에 재사용할 교훈으로 학습함.

Sentry란?

  • Sentry는 대형 언어 모델(LLM) 에이전트를 위한 외부 런타임 실패 관리 계층임.
  • 잘못된 동작을 수정하고, 에이전트가 반복 루프에 빠지거나 작업에서 벗어나거나 근거 없는 가정을 할 때 복구를 돕음.
  • 고정된 조언을 제공하는 일반적인 런타임 모니터와 달리, 성공한 복구를 바탕으로 학습하고 진화함.
  • 실패를 감지하고 복구를 안내한 뒤 수정이 효과가 있었는지 확인함으로써, 에이전트의 문맥을 불필요한 정보로 채우지 않고 여러 작업에서 신뢰성을 높임.
  • Sentry 데모를 제공함.

주요 결과

  • WebShop, AppWorld, SWE-bench Lite, Mind2Web Replay에서 가장 강력한 런타임 개입 기준선보다 평균 37% 향상됨.
  • 보류된 WebShop 및 Mind2Web Replay 작업에서 가장 강력한 문맥 진화 기준선보다 평균 39% 향상됨.
  • 기본 에이전트 대비 토큰 사용량은 1.54배이며, 다른 런타임 방식은 최대 2.44배임.
  • SWE-bench Lite에서 작업당 31.7초, AppWorld에서 45.6초를 절약함.
  • 감지된 실패 939건에서 복구율 81.7%를 기록함.

빠른 시작

설치

  • Sentry 실행에는 Python 3.10 이상이 필요함.
  • https://github.com/nuglifeleoji/Sentry.git 저장소를 복제하고 프로젝트 디렉터리로 이동한 다음 가상 환경을 만들고 활성화함.
  • 패키지를 편집 가능 모드로 설치하고 configs/paper.yaml을 사용해 sentry-validate 검증을 실행함.

에이전트 루프에 Sentry 통합

  • 모델 제공자를 설정한 뒤, 완료된 각 에이전트-환경 사이클을 Sentry에 전달함.
  • SentryRunner.from_yaml로 설정 파일을 읽어 실행기를 만들고, 작업 목표와 환경 동작 스키마로 작업을 시작함.
  • 각 단계에서 단계 식별자, 추론, 원시 동작, 도구 이름과 인수, 관찰 결과를 전달하며, 파싱·스키마 유효성·환경 수락 여부도 표시함.
  • runner.step에 단계를 전달하고, 복구 프롬프트가 반환되면 이를 에이전트 메시지에 추가함. 마지막에는 runner.finalize를 호출함.
  • 동작의 생성·검증·실행은 애플리케이션이 계속 담당함. 전체 수명 주기와 유효성 규칙은 통합 안내서를 참조함.

AppWorld 통합 실행

  • AppWorld는 저장소에 포함된 참조 통합 환경임.
  • Python 3.11 가상 환경을 만들고 활성화한 뒤 .[appworld] 추가 의존성을 설치함.
  • appworld install을 실행하고 APPWORLD_ROOT를 outputs/appworld-root로 설정한 다음 AppWorld 데이터를 내려받음.
  • OPENROUTER_API_KEY를 설정하고 configs/providers/openrouter.yaml을 지정해 sentry run appworld를 실행함.
  • 환경 설정, 인증 정보, 실행 제한은 AppWorld 안내서에 설명되어 있음.

작동 방식

  • 실패 감지: 최근 에이전트 단계에서 잘못된 동작과 행동 실패를 감시함.
  • 하드 복구: 잘못된 동작을 필수 형식으로 다시 시도하도록 에이전트에 요청함.
  • 소프트 복구: 진행 및 추론 실패에 관련 플레이북 교훈을 바탕으로 표적화된 안내를 제공함.
  • 복구 검증: 이후 단계에서 에이전트가 복구하는지 확인함.
  • 온라인 플레이북 학습: 검증된 소프트 복구를 여러 작업의 유사한 실패에 재사용할 수 있는 교훈으로 전환함.

추가 연구 결과

  • 무조건적인 정보 노출은 성능을 해칠 수 있음: 통제 실험에서 실패별 지식을 모두 에이전트 문맥에 유지하면 성능이 낮아짐. 이에 따라 Sentry는 일치하는 실패가 발생했을 때만 복구 교훈을 제공함.
  • 검색은 실패 유형과 일치해야 함: 필터링하지 않은 검색과 포괄적인 실패 유형 매칭은 세분화된 실패 라벨을 사용하는 검색보다 성능이 낮음. 이에 따라 Sentry는 라벨 기반 검색을 사용함.
  • 검증된 교훈은 전이됨: 검증된 복구에서 학습한 교훈은 보지 못한 작업의 성능을 높이며, 학습을 계속하면 추가 향상이 나타남.
  • 작업 수준 학습과 실패 수준 학습은 상호 보완적임: Sentry와 문맥 진화를 결합했을 때 가장 좋은 결과를 얻음. 두 학습 방식은 서로 다른 필요를 다루며 효과가 더해짐.

출시

  • 현재 저장소에는 프로젝트 개요와 논문이 포함되어 있음.
  • 코드와 문서를 마무리하고 있으며, 2~3주 내 전체 버전을 공개할 계획임.