LLM 에세이 파싱 중단: 판정 레이어(Verdict Layer) 구축하기
요약
기존 LLM 에이전트들이 정규 표현식 파싱에 의존하는 불안정한 구조에서 벗어나, OpenAI Decisions API와 같은 '판정 레이어(Verdict Layer)' 패턴을 구축해야 합니다. 이 패턴은 텍스트 생성 대신 유형화된 결정 호출과 확률 점수화를 통해 안정적인 제어 흐름을 제공합니다.
핵심 포인트
- LLM 에이전트는 정규 표현식 파싱에 의존하는 불안정한 구조를 탈피해야 합니다.
- OpenAI Decisions API는 `predicate`, `choice`, `score` 등 유형화된 결정 호출 방식을 지원합니다.
- 판정 레이어 패턴은 점수 기반의 결정, 임계값 정책 적용, 감사 로그 기록으로 구성됩니다.
- 이 방식은 서술형 출력보다 훨씬 높은 안정성과 감사 가능성을 제공하여 아키텍처를 개선합니다.
지금까지 출시한 모든 에이전트는 제어 흐름에 당황스러운 비밀을 가지고 있습니다. 즉, 어딘가에서 정규 표현식(regex)이 모델의 영어 출력을 부울 값으로 파싱하고 있다는 것입니다. 이번 주, 업계는 이 해킹을 막아줄 기본 요소를 마침내 제공했습니다.
10월 6일, OpenAI의 Decisions API가 공개 베타로 출시되었습니다 — POST /v1/decisions를 통해 확률, 선택지 또는 점수와 같이 유형이 지정된 답변만 받습니다. 10월 9일에는 Microsoft가 Foundry에 Decision-1을 배포했습니다: 이는 Qwen3.5-9B 모델을 단일 패스(single-pass) 결정 스코어링용으로 미세 조정했으며, 입력 토큰 백만 개당 $0.042의 비용으로 출력이 무료입니다. 같은 주에는 SGLang이 야간 버전의 /v1/decisions 엔드포인트를 추가했고 vLLM은 /v1/systemone을 병합했습니다. 인터페이스 합의점은 여기에 있습니다: 결정을 생성하는 대신, 점수를 매기세요.
우리가 사용하던 임시방편(Duct Tape)
현재 스택에 대해 솔직하게 이야기해 보세요. 다음과 같은 모습일 것입니다:
response = llm.chat("이 리드를 HOT, WARM, 또는 JUNK으로 분류하세요. JSON만 응답하세요.")
label = json.loads(response.text)["label"] # 기도하는 마음
당신은 버릴 추론에 대해 출력 토큰을 지불합니다. 예/아니오 답변을 위해 전체 생성을 기다립니다. 그리고 몇 백 번 호출할 때마다 모델이 창의적이 되어 파서가 새벽 2시에 예외를 처리하게 됩니다.
JSON 모드와 구조화된 출력이 오류 발생률을 줄였지만, 아키텍처 자체는 여전히 잘못되었습니다: 서비스되는 분류기가 없었기 때문에 텍스트 생성기를 분류기로 사용하고 있었던 것입니다. 이제 그러한 것이 생겼습니다.
판정 레이어 패턴(The Verdict-Layer Pattern)
대체 패턴은 세 부분으로 구성됩니다:
1. 유형이 지정된 결정 호출 (Typed decision call). 입력으로는 고정된 옵션을, 출력으로는 보정된 확률을 받습니다. OpenAI의 세 가지 형태는 거의 모든 제어 흐름을 다룹니다: predicate (조건이 성립할 확률 — 당신의 if 문), choice (옵션 하나와 확률들 — 당신의 switch문), score (순서가 지정된 레벨 상의 위치 — 당신의 우선순위 큐).
2. 분위기(Vibes)가 아닌 임계값 정책 (Threshold policy, not vibes). 이 부분은 대부분의 튜토리얼에서 건너뛰는 부분입니다. 숫자는 그 주변에 정책이 없으면 쓸모가 없습니다:
score = decide("이 지원 티켓이 긴급한가?", ticket.text)
# → {"urgent": 0.91, "normal": 0.09}
...
결정 로깅 및 주요 벤더 API 비교 분석
3. 감사 로그(Audit log). 모든 결정은 입력 해시, 점수, 임계값 결과, 타임스탬프가 포함된 로그에 기록됩니다. 결정이 잘못되었다고 보일 때, 여러분은 문단으로 논쟁하는 것이 아니라 숫자를 보고, 임계값을 확인하고, 입력을 살펴봅니다. 이것이 패턴 준수에 친화적인 이유이기도 합니다. OpenAI는 Zero Data Retention 지원과 HIPAA 적격성을 갖춘 베타 버전을 출시했는데, 점수가 매겨지고 기록된 결정은 서술로는 불가능했던 방식으로 감사(auditable)가 가능하기 때문입니다.
벤더들이 실제로 주장하는 내용 (비판적으로 읽기)
- OpenAI Decisions API: public beta를 지난 10월 6일에 출시되었으며, gpt-6-luna에서만 실행됩니다. 비용은 입력 토큰당 $0.10이며 출력/캐시 요금은 없습니다. "Responses API보다 약 10배 빠르다"고 주장하지만, 이는 OpenAI 자체 API를 기준으로 측정된 것이며 공개된 벤치마크나 상호 비교 정확도는 발표되지 않았습니다. 이미지는 인라인 base64 형식이어야 하며, 호스팅 URL과 파일 ID는 거부됩니다.
- Microsoft Decision-1: Achint Srivastava (VP, Office of the CTO)에 의해 10월 9일에 발표되었으며, Foundry에서 시작하여 OpenRouter로 제공될 예정입니다. Post-trained Qwen3.5-9B를 기반으로 하며, 추후 Microsoft AI 및 OpenAI 모델을 기반으로 재구축할 계획입니다. 입력 토큰당 $0.042이며 출력은 무료입니다. 주장하는 바는 다음과 같습니다: 36개 벤치마크(약 15만 개의 미공개 질문)에서 최고 정확도를 보임, Quyet-1.0-Large보다 4.5배 빠름, P50 기준 GPT-6 Sol보다 35배 빠름, 8가지 입력 교란에 걸쳐 결정 플립이 단지 1.3%에 불과함, 11개 벤치마크에서 5,250개의 안전 요청을 처리함. 모든 것은 벤더가 실행합니다. 따라서 신뢰하되, 자체 평가 세트(eval set)로 검증해야 합니다.
실제로 흥미로운 가격 비교: TypeSafe의 Jev는 독립적인 글 하나에서 결정 모델로 언급되었으며, OpenAI가 직접적으로 대응하는 제품이라고 불렸습니다. 이 제품은 동일한 입력 토큰당 $0.042를 나열합니다. 이제 이 카테고리는 가격 기준점(price anchor)을 갖게 되었고, 매우 저렴합니다.
마이그레이션 체크리스트
- 덕트 테이프처럼 검색하기. 'reply with JSON only' 또는 'respond with just the label.'로 끝나는 모든 프롬프트를 찾아내세요. 이것이 당신의 마이그레이션 목록입니다.
- 클래시파이어를 하나씩 변환하기. 가장 많은 양이고 위험도가 낮은 것(트리아지, 태깅, 라우팅)을 고르세요. 해당 유형의 엔드포인트를 섀도우 모드(shadow-mode)로 일주일 동안 파서와 함께 실행하고 불일치율을 비교하세요.
- 임계값 정책을 문서화하기. 보정되었든 아니든, 확률에는 기록된 차단점과 에스컬레이션 범위가 필요합니다. '0.85 미만은 차단, 0.6–0.85는 인간 검토'는 정책이지만, 느낌 기반의 차단점은 버그입니다.
- 모든 판정(verdict)을 기록하기. 입력 해시, 점수, 결과, 타임스탬프를 기록하세요. 이것이 이 패턴 전체에서 가장 저렴한 신뢰성 업그레이드입니다.
- 이를 통해 에이전트를 평가하기. Microsoft는 AI 응답과 에이전트 액션에 대한 루브릭 기반(rubric-based) 채점을 명시적으로 목표로 하고 있습니다. 당신의 에이전트 출력은 사용자에게 도달하기 전에 더 저렴한 모델에 의해 점수를 받게 됩니다 — 이것이 포함(containment) 패턴을 제품화하는 것입니다.
API를 넘어 중요한 이유
저는 오랫동안 자체 에이전트 스택에서 의사결정 단계를 운영해 왔습니다 — THINK, ACT, 그리고 DECIDE: 작고 점수 매기는 모델이 모든 중요한 단계마다 판정을 내리고, 이를 기록하고 임계값을 설정합니다. 이것은 항상 조용한 단계였으며 시스템을 정직하게 유지하는 역할을 했습니다. 이번 달에 업계는 이를 서비스되는 기본 요소(served primitive)로 공식화했으며, 두 공급업체가 같은 주에 동일한 인터페이스로 수렴하고 있습니다.
이런 일이 발생할 때, 이야기는 리더보드가 아니라 인터페이스입니다. 판정 레이어(verdict layer)를 구축하세요. 2시의 당신 자신이 고마워할 것입니다.
Shivam Kumar 작성 — VisionQuantech. 저는 리드 스코어링, 응답 분류 및 빌드 우선순위화를 위해 의사결정 엔진(Jev)을 프로덕션 환경에서 매일 운영합니다. 이번 주 출시들은 제가 운영해 온 스택을 공식화했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기