무상태 에이전트가 하네스에 연구 상태를 맡겨 장기 자동 연구를 지속한다

Stateless Language Agents: Scaling Long-Horizon Automated Research

HF Daily2610.07625

Qizheng Zhang, Changxiu Ji, Isaac Sun2026-10-06

무엇인가

LLM 에이전트로 연구를 자동화하는 AutoResearch는 후보 해법을 제안하고 구현하고 평가하는 과정을 반복한다. 문제는 추론을 더 많이 써도 진전이 비례하지 않는다는 점이다. 논문은 실패 양상을 두 가지로 정리한다. 에이전트가 계속 커지는 대화 기록을 다시 읽느라 토큰을 태우고, 병렬 에이전트들이 같은 일을 중복하며, 실험을 멈춘 뒤에도 토큰 소비만 이어지는 경우다. CORAL을 GPU 커널 과제에 돌린 실행에서 마지막 개선은 2억3100만 토큰 지점에서 나왔고, 이후 마지막 1500개 세션 중 98%는 도구 호출 없이 토큰만 소모했다. 그런데 기존 평가는 예산을 반복 횟수나 모델 호출 수로 재고, 26-circle packing처럼 500만 토큰이면 네 방법이 2.3×10⁻¹⁰ 차이로 붙어버리는 천장 있는 벤치마크를 쓴다. 저자들은 원인을 두 가지 설계 선택으로 좁힌다. 연구 상태를 어디에 두는가, 그리고 다음에 무엇을 시도할지 누가 정하는가.

어떻게 동작하나

제안은 Stateless Language Agents(SLA)다. 원칙은 '상태를 가진 탐색, 상태 없는 에이전트'다. 에이전트가 호출 사이에 들고 가는 상태와 한 번의 호출 안에서 보는 컨텍스트를 분리한다. 어떤 에이전트도 자기 대화를 다음 호출로 넘기지 않는다. 대신 하네스가 연구 상태, 즉 후보 해법과 측정된 결과를 소유하고, 호출마다 역할에 맞는 컨텍스트를 새로 만들어 준다. 그래서 각 에이전트가 무엇을 보는지가 누적된 대화의 부산물이 아니라 명시적 설계 결정이 된다. Advisor는 하네스가 요약한, 모든 탐색 방향에 걸친 증거를 읽고 구체적 실험을 병렬 Worker들에게 배정한다. Advisor 컨텍스트에는 과제 명세, 현재 전역 최선 코드와 점수, 최근 시도와 방향별 결과 묶음, Worker 상태, 최근 진전, 과제별 진단이 들어가며, 측정된 비개선과 구현·실행·정확성 실패 같은 불확실한 실패를 구분한다. Worker 컨텍스트는 과제 명세, 자기 배정, 보유 후보, 직전 시도의 상태·점수·정확성 진단만 담는다. 다른 Worker의 작업 공간이나 전체 이력은 볼 수 없다.

무엇과 다른가

두 번째 메커니즘은 증거 기반 작업 배정이다. 로컬 정보만 보는 Worker들은 다른 곳에서 이미 시도한 일을 반복하거나 유용한 발견을 놓친다. 그래서 실험 선택을 전 방향 증거를 보는 Advisor에게 맡기고, Advisor가 이를 구체적이고 조율된 배정으로 바꾼다. Advisor도 무상태이므로 매 에포크마다 자기 과거 추론이 아니라 현재 증거에서 배정을 다시 도출한다. 하네스는 Worker의 로컬 후보가 전역 최선보다 뒤처져도 개선분을 유지해 대안 접근이 성숙할 시간을 준다. Advisor가 Worker를 다른 방향으로 돌리면 Worker는 전역 최선에서 다시 시작하고, 첫 성공 평가 후보가 새 로컬 기준선이 된다. 구현은 Codex나 Claude Code를 Advisor와 Worker 양쪽에 쓰되 무상태성과 격리를 요청이 아니라 강제한다. Advisor는 매 에포크 새 세션에서 시작하고, Worker는 Linux Landlock 파일시스템 제한과 네트워크 제한 아래 비권한 프로세스로 돌며, 하네스가 시도 사이에 저장된 세션을 지운다. 후보 평가는 Worker 환경 밖에서 보호된 평가기 코드로 수행하고, 하네스가 역할별 토큰 사용량을 기록하고 전체 연구 상태를 체크포인트로 남긴다.

어떻게 쓰나

평가는 세 갈래 과제에서 이뤄졌다. 장기 소프트웨어 엔지니어링은 FrontierSWE에서 GPU가 필요 없는 네 문제(libexpat→x86-64 어셈블리, Git→Zig, Dart→Haskell, Lua 네이티브 컴파일러)를 골랐다. 커널 최적화는 Anthropic의 VLIW SIMD 커널 과제와 NVIDIA SOL-ExecBench에서 제출이 가장 많은 세 문제(#1 어텐션 소프트맥스·드롭아웃·밸류 행렬곱의 역방향 패스, #58 프리픽스 합을 쓰는 MoE 토큰 정렬, #210 잔차 덧셈과 RMS 정규화 융합)를 썼다. 알고리즘 설계는 FrontierCS의 Structured-LWE다. 베이스라인은 EvoX, CORAL, SwarmResearch이며 각각 고정된 업스트림 릴리스의 검색 로직을 그대로 쓴다. 코딩 에이전트는 Codex CLI v0.152.1 + GPT-5.5와 Claude Code v2.1.258 + Claude Opus 4.8 두 구성이고, 예산은 최대 10억 누적 토큰이다.

전제와 한계

결과는 모든 과제에서 SLA가 전체 예산 기준 최고 성능을 냈다. Anthropic 커널 최적화에서 사이클을 8.1~12.8% 줄였고, Codex 구성으로 10억 토큰 시점에 SLA 3회 실행이 베이스라인 9회 실행을 모두 앞섰다. 최악의 SLA 실행(1122 사이클)이 최선의 베이스라인 실행(1191 사이클)보다 좋았고, 평균은 SLA 1112.0±8.9 사이클 대 SwarmResearch 1275.7±133.9 사이클이었다. FrontierSWE에서는 과제별 최강 베이스라인 대비 평균 4.95점, SOL-ExecBench 세 과제에서 평균 5.5%, FrontierCS Structured-LWE에서 1.5점을 올렸다. 토큰 효율도 함께 보고하는데, 같은 목표 성능에 도달하는 데 걸린 토큰이 Anthropic 커널 Codex 구성에서 SLA 6790만 대 SwarmResearch 9억8630만으로 93.1% 적었고, Claude Code 구성에서는 84% 이상 절감, SOL-ExecBench #58에서는 95.9% 절감이었다. 예외는 SOL-ExecBench #1로, EvoX가 목표에 더 먼저 도달했지만 최종 점수는 SLA가 높았다. 또 평가 지평에 따라 순위가 뒤집힌다. FrontierSWE 네 과제 모두 25% 예산에서는 SLA가 최강 베이스라인에 뒤지지만 전체 예산에서는 앞선다.

설계 선택의 기여는 공유 체크포인트에서 이어가는 방식으로 분리했다. 각 과제 전체 예산의 10%와 20% 지점에서 연구 상태를 보존한 체크포인트를 뜨고, 거기서 1억 토큰을 추가로 돌리며 Advisor 컨텍스트 재구성, Worker 컨텍스트 격리, Advisor 배정 중 하나씩을 제거한 변형과 비교했다. 세 제거 모두 모든 비교에서 평균 진전을 떨어뜨렸다. Worker 격리 제거 비용은 1억 토큰 연장에서는 5~11 사이클이었지만 10억 토큰 전체 실행에서는 224 사이클로 커졌다(1336 사이클 대 SLA 평균 1112.0). 조율 비용은 싸다. Advisor는 전체 토큰의 0.24~0.51%, 모델 비용의 1.20~2.29%만 쓰는 반면 SwarmResearch의 Shepherd는 토큰 8.39~10.70%, 비용 6.14~7.35%를 쓴다. Shepherd의 호출 하나가 평균 약 9만9000 입력 토큰을 읽는 데 비해 새 세션 시작 시점은 약 8000 토큰이었다. Worker 수는 1·3·7·15로 실험했는데, 1에서 15로 늘리면 Anthropic 커널 경과 시간이 6.6배, FrontierSWE 평균 경과 시간이 7.3배 줄었다. Anthropic 커널에서는 25% 예산 시점에 W=7과 W=15가 W=1보다 337·174 사이클 뒤처졌지만 전체 구간에서는 네 폭 모두 1107~1113 사이클 안에 들어왔다. FrontierSWE에서는 최적 폭이 과제마다 달랐다(Dart W=3 45.2, Git·libexpat W=7 29.0·34.5, Lua W=1 97.3). 기본값 W=3은 Anthropic 커널에서 5 사이클, FrontierSWE 모든 과제에서 3.2점 이내이면서 W=1보다 2.5~2.7배 빨랐다. Worker 모델도 따로 고를 수 있어, GPT-5.5 Advisor에 GPT-5.4 mini Worker를 붙이면 100달러 동일 비용에서 Git→Zig 점수가 20.88로 GPT-5.5 Worker의 19.68을 앞섰지만 Anthropic 커널에서는 GPT-5.5 Worker가 더 좋았다.

실무적으로 이 논문은 장시간 도는 에이전트 하네스를 만들 때 무엇을 어디에 둘지에 대한 설계 지침을 준다. 대화 이력을 에이전트 세션에 쌓아두면 길이에 따라 비용이 늘고 행동이 나빠지며, 재시작해도 멈추기로 한 그 대화에서 다시 시작해 같은 결정을 반복한다. 대신 후보와 측정 결과를 하네스가 소유하고 호출마다 역할별 컨텍스트를 재구성하면, 무엇을 보여줄지가 튜닝 가능한 변수가 되고 체크포인트·롤백·재현 실험도 가능해진다. 또 하나 실무적으로 중요한 건 평가 지평이다. 25% 예산에서 측정한 순위가 전체 예산에서 뒤집히고, 컴포넌트 제거 비용이 1억 토큰과 10억 토큰에서 자릿수 단위로 달라진다. 에이전트 시스템을 짧은 예산으로만 비교하면 잘못된 결론을 얻는다. 저자들은 여러 누적 토큰 예산에서 결과를 보고하라고 권한다.

저자들이 밝힌 한계는 분명하다. 장기 실행이 비싸서 대부분 구성은 단일 실행이며, Anthropic 커널 Codex 구성과 체크포인트 ablation만 3회 반복했다. 비교는 토큰 기준으로 맞췄고 비용 추정에는 실험 실행·평가 컴퓨트가 빠져 있다. ablation은 각 에이전트가 무엇을 보는지를 바꾼 것이지 호출 사이에 대화를 들고 가는지 여부를 바꾼 게 아니다. 모든 과제에 실행 가능한 평가기가 있어서, 목표가 모호하거나 평가가 느린 문제는 검증되지 않았다. SOL-ExecBench #210에서는 SLA를 포함해 어떤 방법도 25%와 100% 예산 사이에 0.02 이상 개선하지 못했는데, 모든 방법의 최선 커널이 Triton을 썼고 Triton이 CUDA보다 워프 수준 리덕션을 직접 제어하기 어렵다는 점이 원인일 수 있다고 본다.