본문으로 건너뛰기

도구 호출 평가에서 빈 응답이 만드는 착시

응답 파서가 Tool-call 결과를 빈 문자열로 바꾸면 평가 점수는 실제 동작이 아닌 fallback 안정성을 측정하게 됩니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

작성자는 평가 파이프라인의 범위와 실제 점수 산출 과정 사이에서 Tool-call 응답이 빈 문자열로 소거되는 경로를 소스 추적으로 확인했습니다. OpenAI adapter는 null content를 빈 문자열로 바꾸고 Anthropic adapter는 text 블록만 남겨 tool_use 블록을 버렸으며, 오류가 아닌 빈 문자열은 성공 샘플로 받아들여질 수 있었습니다. 그러면 서로 다른 도구 호출이 동일한 빈 출력으로 합쳐져 mode share 1.0이 나오고, 도구 호출의 안정성이 아니라 fallback 처리의 일관성을 측정하게 됩니다. 다만 현재 요청 생성기가 tools를 전달하지 않아 실제 사례에는 도달하지 않았고, 563개 기록 샘플에도 빈 결과가 없어 공개 benchmark 영향은 없었습니다. 수정안은 tools를 포함한 사례와 빈 비오류 completion을 지원 대상 및 성공 샘플에서 제외해 미지원 응답, 파싱 실패, 진짜 빈 출력의 경계를 분리했습니다.

실용적 조언

  • 평가 입력에 tools가 포함된 사례는 지원 여부를 별도 상태로 기록하고 성공 샘플 집계에서 제외해야 합니다.
  • null content를 빈 문자열로 자동 변환하지 말고, 원본 응답의 content 상태와 tool_use 같은 블록 존재 여부를 보존해야 합니다.
  • 빈 비오류 completion은 파싱 실패나 미지원 응답과 구별되는 별도 유형으로 기록한 뒤 benchmark 통계에 포함할지 명시적으로 결정해야 합니다.

섹션별 상세

01
작성자는 문서상 Tool-call 응답을 지원하지 않는 평가 범위와 실제 parser 동작 사이의 불일치를 소스에서 추적했습니다. OpenAI adapter는 message.get("content") 또는 빈 문자열을 사용해 content가 null인 응답을 빈 문자열로 만들었고, Anthropic adapter는 text 블록만 유지해 tool_use 블록을 제거했습니다. 오류 응답은 제외하면서도 빈 문자열은 허용하는 조건이 겹치면 서로 다른 도구 호출이 같은 출력으로 합쳐져 mode share 1.0이 산출되고, 평가 대상인 도구 호출 대신 fallback의 안정성이 점수에 반영됩니다.
02
현재 request builder는 tools를 전달하지 않았으므로 기존 테스트가 문제 경로에 실제로 도달하지 않았습니다. 작성자는 이 현상이 라이브 실행 재현이 아니라 소스 추적 결과라고 밝혔고, maintainer가 기록된 비오류 샘플 563개를 확인한 결과 빈 샘플은 하나도 없었으며 공개 benchmark에도 영향이 없었습니다. 수정은 tools가 포함된 사례를 거부하고, 빈 비오류 completion을 미지원으로 표시하며, 이를 성공 샘플에서 제외하는 방식으로 문서화된 경계를 복원했습니다.
03
이 사례의 핵심은 전처리 단계가 측정하려던 동작을 없애도 결과 형식만 유효하게 남길 수 있다는 점입니다. 평가 파이프라인은 미지원 응답과 파싱 실패를 성공적인 빈 출력과 별도 상태로 보존해야 하며, 그렇지 않으면 입력이 누락된 상황에서도 안정적인 점수가 계산됩니다. 따라서 요청에 tools가 포함됐는지, parser가 어떤 응답 블록을 제거했는지, 최종 completion이 실제 빈 출력인지 확인할 수 있는 상태값을 성공 샘플 집계 전에 분리해야 합니다.

용어 해설

도구 호출 응답(Tool-call Response)
모델이 일반 텍스트 대신 도구 실행을 요청하는 응답입니다. 이 글에서는 content가 null이거나 tool_use 블록을 포함할 때 파서가 호출 정보를 보존하는지가 평가 결과를 좌우합니다.
응답 파서(Response Parser)
모델 응답의 구조를 평가기가 읽을 수 있는 값으로 변환하는 처리 단계입니다. 필요한 블록을 누락하거나 null을 빈 문자열로 바꾸면 실제 동작과 다른 평가 입력이 만들어집니다.
최빈값 비율(Mode Share)
전체 결과 중 가장 자주 나온 출력이 차지하는 비율입니다. 모든 응답이 빈 문자열로 변환되면 서로 다른 도구 호출을 구분하지 못한 채 1.0이라는 안정성 점수가 산출될 수 있습니다.
미지원 사례(Unsupported Case)
평가 파이프라인이 의도적으로 처리하지 않는 입력이나 응답 유형입니다. 이를 성공적인 빈 결과와 구분하지 않으면 측정 대상이 사라진 상태에서도 유효한 점수처럼 보일 수 있습니다.
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 04.수집 2026. 09. 04.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.