AI 에이전트를 실제 쓰는 도구(하네스)째로 강화학습시키는 법, 그리고 그 과정에서 터지는 숨은 버그들
AI 에이전트를 실제 쓰는 도구(하네스)째로 강화학습시키는 법, 그리고 그 과정에서 터지는 숨은 버그들
요즘 AI 에이전트는 툴 사용, 대화 맥락 관리, 실행 흐름 제어를 담당하는 '하네스'라는 껍데기 안에서 돌아가는데, 이 하네스까지 통째로 강화학습(RL) 훈련에 끼워 넣으려다 보면 기존 방식에서 없던 문제들이 생긴다. 연구팀은 이런 문제를 네 가지(재토큰화, 샘플 병합, 보상 계산, 손실 정규화)로 정리하고, 이를 해결한 경량 프레임워크 Agent Lightning v1.0을 코드 약 3500줄로 공개했다. 이 프레임워크로 코딩 에이전트를 훈련시킨 결과 SWE-bench Verified 벤치마크 점수가 41.8%에서 56.4%로, 학습 데이터 6000개만으로 14.6%포인트 올랐다.
METAL MEDIA 해설 도표
AI 에이전트를 실제 쓰는 도구(하네스)째로 강화학습시키는 법, 그리고 그 과정에서 터지는 숨은 버그들
- 01에이전트를 실행하는 하네스(도구 호출·대화 맥락·실행 흐름을 관리하는 소프트웨어)를 훈련 루프 밖에 두지 않고 그대로 RL 훈련에 연결하는 방식(harnessed agentic RL)을 정리했다
- 02이 방식에서는 하나의 에이전트 실행(rollout)이 텍스트를 다시 토큰으로 바꾸는 과정에서 여러 개의 학습 샘플로 쪼개질 수 있는데, 이를 어떻게 합치고 보상을 나눠줄지가 명확한 기준 없이 프레임워크마다 제각각이었다
- 03연구팀은 보상과 손실 계산을 '샘플 단위'가 아니라 '전체 실행(rollout) 단위'로 맞춰야 훈련이 안정적이라는 결론을 내리고, 이를 구현한 Agent Lightning v1.0을 코드 약 3500줄로 만들었다
- 04GPU를 아끼기 위해 롤아웃 생성과 모델 업데이트가 같은 GPU 묶음을 시간차로 나눠 쓰는 'collocated async RL' 방식을 제안해 기존 동기식 대비 약 2배 속도 향상을 얻었다
- 05공개된 데이터 정제 파이프라인과 학습 스크립트로 Qwen3.5-9B 모델을 훈련해 SWE-bench Verified 점수를 41.8%에서 56.4%로 올렸다(학습 데이터 6000개, RL만 적용)
무엇을 했나
- 에이전트를 실행하는 하네스(도구 호출·대화 맥락·실행 흐름을 관리하는 소프트웨어)를 훈련 루프 밖에 두지 않고 그대로 RL 훈련에 연결하는 방식(harnessed agentic RL)을 정리했다
- 이 방식에서는 하나의 에이전트 실행(rollout)이 텍스트를 다시 토큰으로 바꾸는 과정에서 여러 개의 학습 샘플로 쪼개질 수 있는데, 이를 어떻게 합치고 보상을 나눠줄지가 명확한 기준 없이 프레임워크마다 제각각이었다
- 연구팀은 보상과 손실 계산을 '샘플 단위'가 아니라 '전체 실행(rollout) 단위'로 맞춰야 훈련이 안정적이라는 결론을 내리고, 이를 구현한 Agent Lightning v1.0을 코드 약 3500줄로 만들었다
- GPU를 아끼기 위해 롤아웃 생성과 모델 업데이트가 같은 GPU 묶음을 시간차로 나눠 쓰는 'collocated async RL' 방식을 제안해 기존 동기식 대비 약 2배 속도 향상을 얻었다
- 공개된 데이터 정제 파이프라인과 학습 스크립트로 Qwen3.5-9B 모델을 훈련해 SWE-bench Verified 점수를 41.8%에서 56.4%로 올렸다(학습 데이터 6000개, RL만 적용)
| Method | Endpoint | Comment |
|---|---|---|
| POST | /api/rollouts | Create a batch of rollouts. |
| GET | /api/rollouts | List rollouts, optionally filtered by state. |
| GET | /api/rollouts/{rollout_id} | Get one rollout. |
| PATCH | /api/rollouts/{rollout_id} | Update rollout status. |
| POST | /api/rollouts/{rollout_id}/attempt/{attempt_id}/events | Append an event to a rollout attempt. |
| GET | /api/rollouts/{rollout_id}/events | Read rollout events. |
| POST | /api/models | Register model endpoints. |
| DELETE | /api/models | Remove all registered model endpoints. |
| POST | /proxy/rollout/{rollout_id}/attempt/{attempt_id}/mode/{mode}/openai/v1/chat/completions | Forward an OpenAI-compatible model call. |
왜 중요한가
에이전트를 실제 배포 환경과 똑같은 도구·맥락 관리 방식으로 훈련시켜야 배포 후 성능 차이가 줄어드는데, 이 연구는 그 과정에서 흔히 놓치는 기술적 함정들을 처음으로 체계적으로 정리하고 검증 가능한 해결책과 코드를 공개했다. 코딩 에이전트처럼 데이터와 훈련 스크립트가 부족했던 영역에서도 적은 자원으로 재현 가능한 훈련법을 제시해, RL로 에이전트를 훈련하려는 연구자와 개발자에게 실질적인 참고 자료가 된다.
이 논문의 용어
- 에이전트 하네스(harness) · AI 에이전트가 도구를 쓰고 대화 맥락을 관리하며 실행 흐름을 통제하도록 감싸는 실행 환경/소프트웨어
- 강화학습(RL) · 모델이 행동하고 보상을 받으며 점점 더 나은 행동을 하도록 학습시키는 방법
- 롤아웃(rollout) · 에이전트가 한 번 작업을 처음부터 끝까지 실행한 기록 전체
- 재토큰화(retokenization) · 생성된 텍스트를 다시 토큰(모델이 처리하는 최소 단위)으로 바꿀 때 원래와 다른 토큰으로 나뉘는 현상
- SWE-bench Verified · 실제 소프트웨어 버그 수정 능력을 측정하는 코딩 에이전트 평가 벤치마크
본문에 싣지 못한 그림
- Figure 4: Traditional agentic RL, where each rollout is one training sample (left), versus harnessed agentic RL, where a rollout can expand into a dynamic number of samples that inherit its reward (right).
- Figure 5: An example batch with three rollouts of different sample counts and response lengths.
- Figure 6: Sync RL, async RL, and our collocated async RL. Collocated async RL shares the same GPUs between rollout and update while still avoiding the need to wait for the slowest rollout.
- Figure 7: Search-agent training dynamics. From left to right: mean training reward and mean validation reward.
- Figure 8: General instruction-following agent training dynamics. From left to right: mean training reward and mean validation reward.
- Figure 9: Coding-agent training dynamics for Sample-level Advantage, Rollout-level Advantage, and Rollout-level Advantage + Rollout-level Norm. Left: validation reward. Right: policy entropy.
- Figure 10: Rollout-merging behavior for the Rollout-level Advantage + Rollout-level Norm run. Left: fraction of rollouts that yield exactly one training sample. Right: average number of training samples produced per rollout. Dashed lines mark the mean over training.
- Figure 11: The objects stored by the API Gateway.
- Figure 12: The Rollout Controller reconciles rollout status in the API Gateway with agent executions running as Kubernetes Jobs or local processes.
최신 논문
- AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다AI 코딩 에이전트에게 과학 소프트웨어 수리를 시켜보니, 절반도 제대로 못 고쳤다
- 논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기논문 속 시연이 아니라 실제 서비스에 넣을 수 있는 희소 어텐션 만들기
- 고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법고객상담 AI 상담원이 규정을 '한 번의 행동'이 아니라 '전체 절차'로 지키게 만드는 방법
- 로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다로봇 팔에게 사람의 시연 없이 새 일 시키기, 말 잘하는 AI가 대신 가르친다
- 에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법에이전트 학습용 환경을 새로 만드는 대신, 기존 환경에 '패치 부품'을 씌워 그 에이전트의 약점에 맞게 바꾸는 방법
- AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다AI 모델을 '소유'하지 못한 조직은 안전 통제도 절반밖에 못 한다
- AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다AI가 선생님 모델을 따라 배우다가, 정답에 다가가는 '좋은 생각'까지 억누르는 문제를 잡아낸다
- AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다AI가 특정 사람 말투를 흉내내도록 시켜봤더니, 결국 AI 자신의 말투에서 못 벗어난다