도구 출력을 파일로 넘기면 GPT 에이전트는 맞게 계산하고 틀리게 답한다

Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy

arXiv2610.26836v1

Ke Zhang2026-10-19

무엇인가

LLM 에이전트는 정답을 계산하고도 틀린 답을 낼 수 있다. 최근 에이전트 하네스는 로그, 검색 결과, 시뮬레이터 리포트처럼 긴 도구 출력을 컨텍스트 윈도우에 넣지 않고 파일로 저장한 뒤, 에이전트가 필요할 때 검색하거나 읽게 한다. 이 논문은 그 선택이 정확도를 어디서 잃게 만드는지를 실제 과학 도구로 추적한다. 대상은 USGS의 수용액 지구화학 시뮬레이터 PHREEQC다. 리포트가 최대 846,800자에 이르고, 결정론적으로 동작하기 때문에 출력된 모든 값을 원래 입력까지 역추적할 수 있다는 점이 이 실험의 핵심 조건이다.

어떻게 동작하나

실험은 도메인 전문가가 작성한 4지선다 158문항으로 구성된다. 원래 200문항 풀에서 저자들이 직접 입력을 재실행해 정답 키를 검증했고, 키가 정확히 하나로 재현되지 않거나 수치적으로 불안정하거나 문장이 결함 있는 42문항을 제외했다. 제외 판정에는 모델 출력을 쓰지 않았다. 에이전트는 write_file, read_file(줄 범위 지정 가능), list_file, execute_phreeqc 네 도구를 가지고 격리된 워크스페이스에서 최대 24스텝 동안 작업한 뒤 파일로 답을 제출한다. 조건은 오직 리포트가 모델에 도달하는 방식만 바꾼다. Raw100k는 리포트를 10만 자로 앞뒤를 잘라 컨텍스트에 넣고, TOC는 섹션 목차와 시작 줄 번호만 준 뒤 에이전트가 줄 범위를 읽게 하며, Grep은 메타데이터만 주고 정규식 검색으로 근거를 찾게 한다. Hybrid는 10만 자 안에 들어오면 인라인, 아니면 TOC를 쓴다.

무엇과 다른가

분석의 핵심은 실패 지점을 세 단계로 분해한 것이다. 에이전트가 실행한 입력을 전부 오프라인으로 다시 돌려(총 11,007회 시뮬레이터 호출) 각 궤적마다 build(자기 시뮬레이션이 정답 값을 출력했는가), exposure(그 값이 인라인이든 읽기·검색 결과든 에이전트에게 도달했는가), closure(값을 본 뒤 정답을 골랐는가)를 라벨링했다. 정확도는 p·s·c에 키 값을 보지 못한 채 나온 답(unsupported)을 더한 형태로 정확히 분해되고, 조건 간 차이는 Shapley 분해로 각 단계에 배분된다. 수치 궤적 5,009건 중 4,971건은 재실행이 저장된 리포트를 그대로 재현했다.

어떻게 쓰나

결과는 모델에 따라 갈린다. TOC는 인라인 대비 GPT-5.1에서 −11.3포인트[−18.0, −4.9], GPT-5.2에서 −7.9포인트[−14.9, −0.9]의 정확도 손실을 냈다. 반면 Claude Opus 4.6 −0.6, Claude Sonnet 4.6 −0.5, GPT-5.4 +0.2포인트로 신뢰구간이 0을 포함한다. PHREEQC 섹션 구조를 전혀 쓰지 않는 Grep도 TOC보다 나은 성능을 내지 못했으므로, 손실이 목차 인터페이스 특유의 것이 아니라는 점도 확인했다. 참고로 도구 없이 프롬프트만 주는 베이스라인은 25.9~43.0%였고, 최빈 레이블 비율이 32.9%였으며, 시뮬레이터 접근은 이보다 15.8~45.6포인트를 더했다.

전제와 한계

손실의 정체는 계산이 아니라 읽는 대상이다. GPT-5.1과 GPT-5.2는 모든 인터페이스에서 정답 값을 계산해내는 비율(build)이 비슷했고, build 항의 변화는 2포인트 안쪽으로 0을 포함했다. 문제는 TOC에서 리포트를 아예 받지 않은 궤적이 GPT-5.2 60.3%, GPT-5.1 53.0%에 달하고, 그 대부분이 자기가 정의한 SELECTED_OUTPUT 파일을 읽었다는 점이다. 이 파일들은 더 많은 자릿수를 인쇄한다. 리포트는 보기 선택지와 같은 정밀도로 값을 찍지만, 자기 출력 파일은 그렇지 않아 반올림이 필요하고, GPT 모델들은 반올림 대신 절단을 해서 이웃 보기를 골랐다. 키가 2.751인데 "pH = 2.75065, 이는 2.750으로 반올림된다"고 답한 사례가 전형적이다. 키 값이 반올림하면 정답이고 절단하면 이웃 보기가 되는 함정에서 GPT-5.2는 35건 중 26건, GPT-5.1은 27건 중 19건 이웃을 골랐고 Sonnet은 35건 중 1건이었다. 저자들은 이를 evidence substitution(근거 대체)이라 부른다. 시뮬레이션을 첫 성공 실행 시점에 고정하고 전달 방식만 바꾼 짝지은 재실행에서도 GPT-5.2는 −9.4포인트[−14.5, −4.6]를 잃었고, 인라인으로 들어가는 115개 리포트와 키 값이 이미 들어 있는 84문항에서도 각각 −10.1, −9.9포인트로 손실이 유지됐다.

GPT-5.4의 무손실처럼 보이는 결과는 상쇄의 산물이다. GPT-5.4도 리포트를 41.8%에서 건너뛰고 함정의 절반가량에서 절단된 이웃을 골라, exposure −2.6포인트와 closure −7.2포인트를 잃었다. 그러나 TOC에서 정답 값을 계산하는 비율이 +4.1포인트[+0.0, +8.1] 올라 수치 문항 기준 순변화는 −4.4포인트[−12.4, +3.4], 전체 풀링에서는 +0.2포인트로 0과 구분되지 않는다. 즉 최종 정확도만 보면 놓치는 손실이 내부에 존재한다.

개입 실험은 손실 위치를 확정한다. TOC+Report는 도구 설명과 모든 도구 결과에 "result.out의 값이 권위 있고 보기 정밀도로 인쇄됐으니 selected-output 파일로 답하지 말라"는 세 문장을 반복해 넣는다. 이 경우 리포트 건너뛰기가 0.0%(GPT-5.2)와 1.6%(GPT-5.1)로 떨어지고 closure가 98.8%, 99.2%로 회복되며 절단 함정에 빠진 궤적이 사라졌다. build는 런 간 변동 범위에서 그대로였다. 정확도는 전체 TOC 런 대비 +7.9, +6.3포인트, GPT-5.4는 +7.8포인트로 81.6%에 도달했다. 반면 반올림만 요구하는 TOC+Round는 리포트 건너뛰기를 그대로 두고 함정에서 여전히 17/25, 14/19건을 절단해 정확도를 +0.6, +1.2포인트밖에 올리지 못했다. 10만 자 안에 들어오는 리포트를 그냥 인라인하는 Hybrid도 TOC 대비 +4.6, +8.0포인트로 같은 효과를 냈다.

개발자 관점의 결론은 명확하다. 인라인과 검색은 정보량이 동등하지만, 검색은 "리포트를 읽을지"를 에이전트의 선택으로 바꾸고, 자기 출력 파일을 만들 수 있는 하네스에서는 그 선택이 권위 있는 근거 대신 더 정밀해 보이는 자기 산출물로 흘러간다. 따라서 하네스의 컨텍스트 관리 방식은 최종 정확도가 아니라 어느 단계에서 정확도가 새는지로 검증해야 한다. 들어가는 출력은 인라인하는 것이 안전한 기본값이고, 파일 기반 전달을 유지하려면 어떤 출력이 권위 있는지 명시해야 하며, 이 조치는 입력 토큰도 줄인다. 다만 저자들이 밝힌 한계도 분명하다. 모든 모델이 API로만 접근하는 폐쇄 모델이라 어떤 모델 속성이 이 차이를 만드는지는 규명하지 못했고, Claude는 temperature 0에 확장 사고 없이, GPT와 Gemini는 API 기본값에 추론 강도 설정 없이 돌려 명시적 추론에서도 효과가 유지되는지는 모른다. API 예산 때문에 모든 모델을 모든 조건에서 반복 실행하지 못했고, 전체 에이전트 조건들은 서로 다른 시점에 실행돼 서빙 모델 변경 가능성을 모델링하지 않았다. 33개 장문항목은 네 개의 TOC 런이 하나의 인덱스 런을 공유하며, 짝지은 재실행은 GPT-5.2만을 대상으로 한다. 또한 정답 키 검증은 PHREEQC 재실행에 의한 것이지 각 문항에 대한 독립적 과학 검토가 아니고, 3개 셋업(24문항)은 문항 텍스트가 참조 입력을 완전히 규정하지 못한다.