학습하지 않은 공개 27B 모델이 τ³-bench banking_knowledge에서 pass^1 49.5에서 57.2로 오릅니다. 공개 리더보드 1위(55.2)보다 높습니다. 모델 가중치, 도구, 벤치마크의 정책 문서는 그대로 두고 층 하나만 더했습니다.
성능
+7.7
층만으로 오른 banking pass^1. 네 번 모두 실패하던 과제는 35개에서 25개로 줄었습니다.
이동 비용
파일 1개
새 도메인에는 선언 파일 하나만 씁니다. 엔진에는 도메인 단어가 없고, 바꾸지 않습니다.
신뢰도
0건
올바른 행동을 잘못 막은 횟수(처음 보는 airline 20과제). 모든 판정은 결정론적이고 기록됩니다.
문제
알면서 어기는 실수
고객 상담 에이전트는 정책을 읽고, 도구를 부르고, 데이터베이스에 씁니다. 실패의 대부분은 지식이 모자라서 생기지 않습니다. 필요한 조회 없이 쓰기, 머릿속 암산, 아무도 말하지 않은 값처럼 확인할 수 있는 작은 실수에서 생깁니다. 기록에 한 번 쓰면 되돌릴 수 없으니, 실수 하나로 과제가 끝납니다.
get_reservation_detailscreated_at 2024-05-02 · 정책 시각 05-15cancel_reservation(…) 고객 말만 믿음예약 취소
거부 · NOT EXECUTED
✕ 24시간 이내 예약인가?
기록 05-02 · 정책 시각 05-15
① 실행 안 한 호출 cancel_reservation
② 기록의 사실 created_at 2024-05-02
③ 정책의 취소 조건 원문
기록 그대로
VOCAB_EXT.md §5-2.아이디어
프로그램이 판정할 수 있는 것만 강제
어떤 정책 조건은 보기만 하면 답이 정해집니다. 조회를 했는지, 가져온 기록의 필드 값이 무엇인지, 어떤 값이 도구 출력에 있는지. 다른 조건은 해석이 필요합니다. 이 요청이 합당한지, 고객이 무슨 뜻으로 말했는지. 정책 층은 앞의 것만 강제하고 뒤의 것은 모델에 맡깁니다.
닫힘층이 강제
사건, 기록의 필드, 대화 속 문자열만으로 답이 정해집니다.
- 사건
cancel전에 예약을 조회했는가? - 기록
created_at이 정책 시각 기준 24시간 이내인가? - 문자열쓰려는 우편번호가 도구 출력이나 고객 말에 나오는가?
- 계산환불액이 가져온 기록으로 계산한 값과 같은가?
열림모델이 판단
해석이 필요합니다. 층은 규칙 문장을 보여 줄 수는 있어도, 이 조건으로 막지는 않습니다.
- 의도고객이 정말 계좌를 닫고 싶은가?
- 어조상위 담당자에게 넘길 불만인가?
- 적합성세 상품 중 고객 설명에 맞는 것은?
- 의미"며칠 전"은 기간 안인가?
작동 방식
한 턴의 흐름
스크롤하면 단계마다 그림에서 해당 부분이 밝아지고, 점이 정보가 흐르는 길을 따라 움직입니다.
모델이 대화를 읽고 다음 턴을 제안합니다. 도구 호출일 수도, 고객에게 보낼 메시지일 수도 있습니다. 아직 아무것도 실행되지 않았습니다.
엔진이 도메인의 선언 파일과 지금까지의 대화 기록을 읽습니다. 어떤 도구가 돌았고, 무엇을 돌려줬고, 고객이 무엇을 말했는지 봅니다.
일곱 레버가 제안된 호출의 닫힌 조건을 검사합니다. 각 레버는 조용히 넘어가거나, 어긴 사실 하나를 보고합니다. 레버 하나하나는 아래 「일곱 레버」에서 설명합니다.
어긴 것이 없으면 호출은 그대로 실제 도구로 갑니다. 층은 인자를 고치지 않습니다.
어긴 것이 있으면 호출은 실행되지 않습니다. 모델은 그 호출, 확인되지 않은 사실, 정책 문장을 받고 다시 제안합니다. 재시도는 작은 고정 예산 안에서만 하므로 대화가 멈추지 않습니다.
통과, 거부, 계산 주입, 재시도를 모두 근거가 된 도구 출력과 함께 감사 로그에 씁니다. 같은 입력이면 같은 판정이 나옵니다.
거부문에 값을 넣지 않는 이유
층이 고칠 값을 적어 주면(예: "환불 0으로 취소하라") 규칙의 실수가 곧 행동의 실수가 됩니다. 어긴 사실과 정책 문장만 돌려주면 다음 행동의 책임은 모델에 남고, 층이 두 번째 에이전트처럼 움직이지 않습니다.
일곱 레버
실수 유형별 레버
레버는 실패한 궤적을 읽으며 되풀이되는 실수에 이름을 붙여 만들었습니다. 하나를 골라 무엇을 읽고, 무엇을 판정하고, 끄면 점수가 어떻게 되는지 확인해 보세요.
ABLATION*.md.도메인 이동
엔진은 그대로, 선언 파일만 교체
엔진 코드에는 "카드", "항공편", "수수료" 같은 도메인 단어가 없습니다. 도메인에 딸린 것은 모두 선언 파일 하나에 있습니다. 어떤 쓰기에 어떤 조회가 먼저 필요한지, 어떤 값에 출처가 있어야 하는지, 어떤 계산을 쓸 수 있는지, 어떤 도구에 어떤 정책 문장이 붙는지.
hours_between · count_of · prefix · eq)와 피연산자 1개(now)를 더했습니다(+74줄). 그 뒤에도 기록된 banking 6,197턴의 판정은 바이트 단위로 같았습니다. 출처: VOCAB_EXT.md.수치
닫힌 규칙을 어기는 곳에서 이득
선언 파일만 바꿔 같은 층을 벤치마크 두 개와 모델 설정 열 개에서 돌렸습니다. 모델이 닫힌 규칙을 자주 어기는 곳에서는 이득이 크고, 그렇지 않은 곳에서는 사라집니다.
처음 보는 airline 과제
학습용 30과제만 보고 규칙을 만든 뒤, 보지 않은 20과제로 채점했습니다. GPT-4o-mini 31.2 → 52.5, 막힌 올바른 행동은 0건입니다.
공개된 게이트와 같은 조건 비교
Reason Less, Verify More(2607.07405)는 airline 전용 게이트 4개를 공개했습니다. 우리 시뮬레이터와 과제로 다시 돌렸습니다. 발동 과제에서 잃은 시뮬레이션: 이 층 1건, 게이트 5건.
한계
효과가 없던 세 곳
≈0
τ² retail, 4개 모델 모두
실패 대부분이 어느 상품, 어느 옵션 같은 판단이 필요하거나, 사용자 시뮬레이터가 대화를 일찍 끝내서 생깁니다. 닫힌 규칙 위반은 적습니다.
≈0
τ² airline, Qwen3.8-27B
모델이 이미 정책을 지킵니다. 층은 한 과제에서 발동했고 순효과는 0입니다. 강한 모델에는 잡을 실수가 적습니다.
−0.4
SOPBench hotel
공식 채점기로는 +11.0이지만, 56과제의 OR→AND 채점 결함을 고치면 −0.4입니다. 공식 이득은 채점기가 만든 착시입니다.
효과가 없는 곳에서 손해도 없었습니다. 수백 번의 시뮬레이션 가운데 잃은 것은 0~3건이고, 잘못된 거부 때문에 잃은 경우는 없었습니다.
측정 방법