벤치마크 · agentic
Terminal-Bench
Terminal-Bench 는 AI 에이전트가 터미널에서 소프트웨어 설치, 디버깅, 시스템 운영 같은 실제 명령줄 작업을 얼마나 잘 완료하는지를 측정합니다. 점수는 에이전트가 성공적으로 완료한 작업의 비율(%)입니다.
자세히 보기
- 예시
- 전형적인 작업은 에이전트에게 망가졌거나 비어 있는 환경을 주고 동작하는 상태로 만들도록 요구합니다. 예를 들어 올바른 의존성을 설치하고 설정을 고쳐 프로그램이 실행되게 하되, 모두 터미널 명령으로 수행합니다.
- 채점 방식
- 각 작업은 에이전트가 요구된 최종 상태에 도달했는지에 따라 통과/실패로 판정되며, 벤치마크 점수는 전체 작업 중 해결한 작업의 비율(%)입니다.
- 검증 방식
- 결과는 격리된 샌드박스(sandbox) 환경 안의 자동 검사가 작업의 의도한 결과가 달성되었음을 확인할 때만 인정됩니다. 사람의 투표나 정확한 텍스트 일치가 아닙니다.
- 왜 중요한가
- 명령줄에서 설치, 디버깅, 시스템 운영을 하는 터미널 능력은 실제 엔지니어링 작업의 핵심이므로, 이 벤치마크는 에이전트가 진짜 명령줄에서 자율적이고 안정적으로 행동할 수 있는지를 보여줍니다. 더 어려운 2.x 버전이 있어 에이전트가 발전할수록 기준을 계속 높입니다.
예제 풀이
문제
Terminal-Bench의 Docker 컨테이너에서 /app/access.log 파일에는 Apache 접근 로그가 들어 있습니다. 서로 다른 클라이언트 IP 주소(각 줄의 공백으로 구분된 첫 번째 필드)의 개수를 세어 그 숫자만 /app/answer.txt에 저장하는 단일 명령을 작성하세요.
해답
awk '{print $1}' /app/access.log | sort -u | wc -l > /app/answer.txt
풀이
awk는 각 로그 줄의 첫 번째 필드(클라이언트 IP)를 출력하고, sort -u는 중복을 제거하며, wc -l은 남은 고유 IP를 세어 결과를 /app/answer.txt로 리다이렉트합니다. Terminal-Bench는 컨테이너에서 pytest 테스트를 실행해 채점하며, 이 테스트는 /app/answer.txt를 읽어 알려진 고유 IP 개수와 같은지 확인합니다.