UStackUStack
BenchSpan icon

BenchSpan

BenchSpan은 AI 에이전트 벤치마크를 병렬 실행하고 점수·실패를 실행 이력으로 정리하며, 커밋 태그로 재현 가능한 결과 비교를 돕습니다.

BenchSpan

BenchSpan이란?

BenchSpan은 팀이 AI 에이전트 벤치마크를 더 빠르고 재현 가능하며 공유하기 쉽게 실행할 수 있도록 돕습니다. 에이전트를 다양한 벤치마크 하니스에 수동으로 연결하고 결과를 흩어진 파일에 복사하는 대신, BenchSpan은 벤치마크 실행을 표준화하고 점수, 오류, 실행 시간을 정리된 실행 이력으로 수집합니다.

핵심 목적은 벤치마크 스위트(수백 개 인스턴스 같은 대규모 스윕 포함) 실행 시간과 비용을 줄이면서, 실행을 에이전트의 커밋 해시에 연결하고 실행 결과를 나란히 비교하기 쉽게 하여 결과 신뢰성을 높이는 것입니다.

주요 기능

  • 셸 스크립트로 에이전트 설정을 표준화하는 벤치마크 러너: BenchSpan은 bash 명령으로 시작하는 에이전트를 실행할 수 있어 글루 코드와 하니스별 인터페이스 작업을 최소화합니다.
  • 벤치마크 라이브러리 + 자체 벤치마크 지원: 포함된 벤치마크 세트에서 선택하거나 자체 벤치마크 정의를 사용할 수 있습니다.
  • 격리된 Docker 컨테이너로 병렬 실행: 각 벤치마크 인스턴스가 독립 Docker 컨테이너에서 실행되며 병렬로 처리되어 대규모 스위트의 완료 시간을 크게 단축합니다.
  • 자동 결과 수집 및 정리: BenchSpan은 점수, 궤적, 오류, 실행 시간을 캡처한 후 나중 비교를 위해 정리합니다.
  • 재현성과 비교를 위한 커밋 태그 실행: 결과를 에이전트의 커밋 해시로 태그하여 팀이 다른 실행을 비교하고 어떤 코드가 어떤 숫자를 생성했는지 알 수 있습니다.
  • 실패 인스턴스만 재실행: 실행 중 일부 실패(예: 네트워크 오류나 일부 인스턴스의 속도 제한)가 발생하면 전체 재실행 대신 실패 부분만 재시도할 수 있습니다.

BenchSpan 사용법

  1. 에이전트 온보딩: 에이전트를 시작하는 bash 스크립트를 작성한 후 BenchSpan에 지정합니다.
  2. 벤치마크 선택: BenchSpan 라이브러리에서 선택하거나 제공한 벤치마크를 사용합니다.
  3. 스위트 실행: 인스턴스 수를 설정하고 실행을 시작하면 BenchSpan이 Docker 컨테이너로 병렬 실행합니다.
  4. 결과 검토: 정리된 출력에서 결과를 확인하고 커밋 해시 태그로 실행을 비교합니다. 일부 인스턴스가 실패하면 해당 부분만 재실행합니다.

사용 사례

  • 개발 중 에이전트 반복 비교: 프롬프트나 에이전트 코드를 업데이트한 후 벤치마크 스위트를 실행하여 커밋 간 해결률과 실패 패턴을 비교합니다.
  • 수백 개 인스턴스 규모 SWE 스타일 평가 확장: 순차 실행이 비현실적인 대규모 벤치마크 스위트를 병렬 Docker 실행으로 총 실행 시간을 줄여 처리합니다.
  • 부분 실패 복구 없이 처음부터 다시 시작 안 함: 속도 제한이나 타임아웃으로 일부 인스턴스가 실패하면 전체 스위트 반복 대신 실패 인스턴스만 재실행합니다.
  • 벤치마크 주장 팀 협업: 단일 벤치마크 실행 기록을 팀과 공유하여 결과가 별도 스프레드시트나 채팅 메시지에 흩어지지 않습니다.
  • 다른 프롬프트나 구성으로 에이전트 테스트: 커밋 태그 실행으로 어떤 프롬프트 버전과 코드 커밋이 어떤 결과를 생성했는지 추적하여 "어떤 구성" 논쟁을 피합니다.

자주 묻는 질문

  • BenchSpan은 어떤 에이전트를 지원하나요? 사이트에서 “bash로 실행되는 모든 에이전트”가 가능하다고 명시되어 있으며, 셸 명령으로 에이전트를 시작하면 BenchSpan이 이를 통해 통합합니다.

  • 벤치마크는 순차적으로 실행되나요, 병렬로 실행되나요? BenchSpan은 각 인스턴스를 독립 Docker 컨테이너에 격리하여 병렬로 실행합니다.

  • BenchSpan은 실패한 실행을 어떻게 처리하나요? 일부 인스턴스가 실패하면 전체 스위트를 완전히 재시작할 필요 없이 실패 인스턴스만 재실행할 수 있습니다.

  • 비교를 위해 결과는 어떻게 정리되나요? 결과(점수, 궤적, 오류, 실행 시간)를 캡처·정리하고 에이전트의 커밋 해시로 태그하여 나란히 비교할 수 있습니다.

대안

  • 로컬 또는 단일 머신 벤치마크 스크립트: 노트북에서 벤치마크 스위트를 실행하는 건 처음엔 간단할 수 있지만, 워크플로가 느리고 결과를 추적·재현 도구를 직접 구축하지 않으면 파편화됩니다.
  • Docker와 커스텀 하네스 글루 코드로 수동 오케스트레이션: 컨테이너로 병렬화하고 각 벤치마크별 글루 코드를 작성할 수 있지만, 인터페이스 쉼, 재개 로직, 중앙화된 결과 이력을 여전히 구현해야 합니다.
  • 스프레드시트/Notion/Slack 등의 임시 결과 로깅: 공유 문서에 숫자를 복사하는 건 소규모 실험에 쓸 수 있지만, 표준화된 실행 관리, 커밋 태그 이력, 구조화된 비교를 자동으로 제공하지 않습니다.