콘텐츠로 이동

05. τ-bench와 pass^k

τ-bench (tau-bench)는 Sierra가 2024년 공개한 tool-using 에이전트의 실제 도메인 평가 벤치마크다. 두 가지가 핵심 차별점:

  1. 사용자도 시뮬레이션 — 정답 입력 한 줄이 아닌, 시뮬레이션 사용자와의 멀티턴 대화 속에서 에이전트를 평가.
  2. 정책 준수까지 측정 — 작업을 완료했어도 도메인 규칙(환불 정책, 변경 수수료 등)을 어기면 fail.

두 도메인 (retail, airline)을 갖고 있으며, 각 태스크는 데이터베이스 종료 상태 를 정답 상태와 비교해 평가한다. 추가로 pass^k 라는 일관성/신뢰성 메트릭을 도입해 산업계에 큰 영향을 주었다.

후속작 τ²-bench (2025)는 dual-control conversational 평가로 확장. 사용자와 에이전트 둘 다 행동 권한이 있는 상황을 본다.

[시뮬레이션 사용자 (LLM, persona + goal 보유)]
⇅ 자연어 대화
[평가 대상 에이전트 (function-calling LLM)]
⇅ 툴 호출
[도메인 DB + 정책 문서]

사용자 LLM: 페르소나(예: “내 항공편 변경하고 싶다, 출발일 임박”) + 숨긴 goal(예: “수수료 면제 받기”). 에이전트 응답에 자연스럽게 반응.

에이전트: 툴 (DB 조회·수정 API) + 시스템 프롬프트(정책 문서) 부여. 사용자 요청을 정책에 맞게 처리해야 함.

평가: 대화 종료 시 DB 상태 ≡ 정답 상태? + (선택) 정책 위반 step 카운트.

τ-bench의 진짜 가치는 여기 있다. 단순 task completion은 다른 벤치도 한다. τ-bench는:

“옳은 결과로 가는 과정에서 정책을 어기지 않았는가.”

예시 — airline 도메인의 정책:

  • “출발 24시간 이내 변경은 풀-수수료”
  • “마일리지 회원 골드 등급 이상은 1회 면제”

에이전트가 사용자 동정심에 휘둘려 정책 외 면제 를 해주면 — DB 상태는 사용자 만족(변경됨) 이지만, 회사 정책 위반. fail.

이게 LLM 에이전트의 새로운 약점을 드러냈다: agreeableness가 비즈니스 손해로 직결.

기존 벤치마크는 보통 pass@k (= k번 시도 중 적어도 한 번 성공) 를 본다. ICML 코드 평가의 표준.

τ-bench는 정반대인 pass^k 를 도입:

$$\text{pass}^k = \Pr[\text{모든 } k\text{ 회 시도가 성공}]$$

중요: ^ 은 지수 (모두 성공). @ 은 집합 (적어도 하나).

메트릭정의측정하는 것
pass@11회 시도 성공률평균 능력
pass@kk회 시도 중 1+ 성공 비율다양 sampling으로 최선 발견 (벤치 가능성)
pass^kk회 모두 성공 비율재현성/신뢰성

왜 이게 중요한가? 프로덕션에서 한 고객을 한 번만 응대하지 않는다. 100명이 같은 요청을 했을 때 99명에게 정상, 1명에게 정책 위반은 큰 문제. pass^k는 그걸 잡는다.

보고된 SOTA 수치 (논문): 함수호출 SOTA(gpt-4o)도 retail에서 pass^8 < 25%. 즉 같은 요청을 8번 던지면 적어도 1번은 정책 위반/실수 가 75%+ 확률로 발생. 충격적 수치였음.

  • Database state diff: SQL 또는 dict 비교. 순서 무관, 추가 필드 무관, 핵심 변경만 매치.
  • 멀티턴 대화: 사용자 LLM의 randomness가 매 시도 다른 발화를 만들어냄 → pass^k가 의미 있음 (에이전트의 대화 강건성 도 측정).
  • 함수호출 정확도와 별개로, 어떤 함수를 부르지 말아야했나도 평가 가능 (정책 위반).
강점약점
정책 준수를 작업 완료와 분리해 측정두 도메인 (retail, airline) — 일반화 약
pass^k로 재현성 명시화시뮬레이션 사용자라 진짜 사용자 행동 미반영
DB state 비교 → exact match 같은 자동 채점DB 모델링이 도메인마다 새로 필요
함수호출 SOTA의 한계 노출시뮬레이션 사용자 LLM의 품질이 평가 신뢰도에 직결
산업계 정책-aware 에이전트 표준 자극멀티턴이라 비용 ↑
벤치tool-use?멀티턴?정책?일관성?
BFCLYNNN (pass@1만)
ToolBenchYpartialNN
τ-benchYYYY (pass^k)
AgentBenchYvariesNN
GAIApartialNNN

τ-bench의 자리는 명확하다: 고객 응대 류 멀티턴 + 정책 평가. 다른 벤치엔 못 미치는 자리.

τ-bench를 그대로 쓸 수는 없다 — 도메인이 다르고, retail/airline 환경이 우리 페르소나와 무관. 하지만 두 아이디어 는 직접 가져올 가치가 크다.

5.1 pass^k 도입 — H2 가설의 직접 증거

섹션 제목: “5.1 pass^k 도입 — H2 가설의 직접 증거”

본 실험의 H2: “Hermes가 둘째 주에 따라잡거나 역전”. 이는 반복 일관성 가설이다. Hermes의 학습이 진짜라면 같은 태스크 3회차 모두 성공해야 함.

현 §6 메트릭(“반복 가속 = 같은 태스크 3회차가 1회차 대비 몇% 빨라졌나”) 은 속도만 본다. 일관성은 안 본다.

제안:

  • 정형 태스크 (T1, T2, T8) 를 매주 3회씩 의도적으로 반복
  • 각 회차별로 결과물 품질(rubric 4-차원) 채점
  • pass^3 (3회 모두 종합 ≥ 4) 비율을 도구별·태스크별 집계
  • Hermes pass^3 / OpenClaw pass^3 비교

기대 결과:

  • H2 참 → Hermes의 pass^3 가 OpenClaw보다 높음 (특히 둘째 주)
  • H2 거짓 → 두 도구 pass^3 비슷 또는 OpenClaw 우위 (셋업이 곧 재현성)

이 한 메트릭만 추가해도 본 실험의 결정 매트릭스 (§9) 가 정량 결정 가능해진다.

τ-bench의 정책 = 우리의 페르소나 모드 강제 (§7).

  • “코드/JSON/YAML 직접 작성 금지” → 정책
  • “셋업 도와줘 형이 깔아줘 모드” → 정책

OpenClaw가 결과는 좋은데 민지에게 코드 보여달라고 요구하는 순간 → τ-bench 식으로 fail. 현 측정은 이걸 “셋업 가능 여부 (Y/도움받음/N)” 정도로만 잡는다.

제안 — Policy violation event 카운트:

각 태스크 실행에서 다음을 trajectory(hook log) 에서 자동 검출:

  • 에이전트 응답에 코드 블록 등장 → +1 위반
  • 에이전트가 YAML/JSON 편집을 요청 → +1 위반
  • 에이전트가 터미널 명령 직접 입력 요구 → +1 위반 (단 “내가 이거 실행할게” 는 OK)

이 카운트는 hook 로그의 텍스트 검색으로 거의 자동 가능. 민지에게 부담 X.

5.3 사용자 시뮬레이션? — 미적용

섹션 제목: “5.3 사용자 시뮬레이션? — 미적용”

τ-bench의 사용자 LLM 아이디어는 우리 실험엔 오히려 해로움. 우리는 진짜 페르소나 (민지) 를 쓰는 것이 목적. 시뮬레이션은 시뮬레이션이 가진 한계(자연 사용자의 변덕·실수·재질문 부족)를 그대로 받게 됨.

다만 후속 실험 (예: Hermes vs OpenClaw 자동 평가 파이프라인) 에서는 도입 검토 가치 있음.


τ-bench는 “tool + user + policy” 라는 좁은 영역의 깊은 평가였다. 더 넓은 범용 보조 능력은 어떻게 측정할까. GAIA(165 multi-step 문항) 와 AgentBench(8개 환경)이 이 자리를 잡고 있다. 06장.

이 장에서 확실히 알아야 하는 것

섹션 제목: “이 장에서 확실히 알아야 하는 것”
  • τ-bench의 두 차별점(시뮬레이션 사용자, 정책 준수)을 외워서 말할 수 있다.
  • pass@k 와 pass^k의 정확한 수식 차이를 안다.
  • gpt-4o 의 pass^8 < 25% 가 의미하는 바를 한 줄로 설명할 수 있다.
  • 본 실험에 pass^3 를 도입할 구체적 절차(태스크/주기/임계)를 안다.
  • 페르소나 모드 위반을 정책 위반 카운트로 자동화하는 아이디어를 이해한다.