nuglifeleoji/Sentry

Learning to Recover from LLM Agent Failures at Test Time

Sentry – LLM 에이전트를 위한 런타임 오류 관리

정의

  • 언어 모델 기반 에이전트와 함께 실행되며 상호 작용 루프를 관찰하는 외부 라이브러리입니다. 에이전트가 잘못된 작업을 수행하거나, 루프에 빠지거나, 작업에서 벗어나거나, 런타임에 다른 오류가 발생하는 것을 감지합니다.
  • 오류가 발견되면 Sentry는 수리를 제안합니다. 올바른 형식으로 작업을 하드 재시도하거나, 검증된 복구로 구성된 성장하는 "플레이북"에서 얻은 소프트하고 안내된 제안입니다.
  • 수리 후 Sentry는 에이전트가 실제로 복구되었는지 확인한 후 루프를 계속 진행합니다.

중요성

  • 일반적인 런타임 모니터는 정적 조언을 제공하고 에이전트의 프롬프트를 비대하게 만들 수 있습니다. Sentry는 각 성공적인 수정에서 학습하여 에이전트의 컨텍스트를 간결하게 유지하면서도 목표 지향적인 도움을 제공합니다.
  • 논문은 여러 벤치마크 스위트(WebShop, AppWorld, SWE-bench Lite, Mind2Web)에서 평균 성능이 최대 37% 향상되었고, 939개의 감지된 오류에서 81.7% 의 복구율을 보고합니다.

주요 구성 요소

  1. 오류 감지 – 최근 단계를 관찰하여 잘못된 작업, 스키마 불일치 또는 진행 부족을 감지합니다.
  2. 하드 수리 – 에이전트에게 잘못된 작업을 필요한 형식으로 다시 수행하도록 요청합니다.
  3. 소프트 수리 – 이전에 유사한 오류를 수정한 레이블이 지정된 "플레이북" 레슨에서 파생된 맞춤형 프롬프트를 제공합니다.
  4. 복구 검증 – 후속 단계를 확인하여 문제가 해결되었는지 확인합니다.
  5. 온라인 플레이북 학습 – 검증된 소프트 수리는 향후 작업을 위한 재사용 가능한 레슨으로 저장됩니다.

빠른 시작 (README에서)

# 클론 및 설치
git clone https://github.com/nuglifeleoji/Sentry.git
cd Sentry
python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

# 구성 검증 (선택 사항)
sentry-validate configs/paper.yaml

에이전트 루프에 통합

from Sentry import SentryRunner, agent_step_from_parts

runner = SentryRunner.from_yaml("configs/providers/openai_compatible.yaml")
runner.start_task(objective=task_objective, action_schema=environment_action_schema)

try:
    step = agent_step_from_parts(
        step_id=0,
        reasoning=reasoning,
        raw_action=raw_action,
        tool_name=tool_name,
        tool_args=tool_args,
        observation=observation,
        parsed_ok=True,
        schema_valid=True,
        accepted_by_environment=True,
    )
    repair = runner.step(step, terminal=False)
    if repair is not None:
        agent_messages.append(repair.prompt_text)
finally:
    runner.finalize()

코드는 여전히 작업을 생성, 검증 및 실행합니다. Sentry는 필요할 때만 관찰하고 개입합니다.

AppWorld 벤치마크 실행 (README의 예)

python3.11 -m venv .venv-appworld
source .venv-appworld/bin/activate
python -m pip install -e '.[appworld]'
appworld install
export APPWORLD_ROOT="$PWD/outputs/appworld-root"
appworld download data --root "$APPWORLD_ROOT"
export OPENROUTER_API_KEY="your-api-key"
python -m benchmarks.appworld.run --config configs/providers/openrouter.yaml

저장소에는 공식 AppWorld 환경을 위한 벤치마크 하네스가 포함되어 있습니다.

현재 상태

  • 저장소에는 현재 프로젝트 개요, 논문 및 최소한의 코드 스켈레톤이 포함되어 있습니다.
  • 전체 구현 및 문서는 Release 섹션에 명시된 대로 향후 2-3주 내에 릴리스될 예정입니다.

라이선스 – MIT (LICENSE 참조).


위의 모든 정보는 저장소의 README에서 직접 가져온 것이며 추가 기능은 추론되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트