LLM 에이전트를 작업해 보신 분이라면, 이 고통을 느끼셨을 것입니다: 동일한 모델은 하나의 프레임워크에서는 탁월하지만 다른 곳에서는 쓸모없어 보입니다. 에이전트는 도구 사용 리더보드에서 압도적인 성과를 내더라도 간단한 실제 세계의 임무에서는 실패할 수 있습니다. 벤치마크 성능과 실용적 활용성 사이의 간극은 이 분야의 가장 큰 도전 과제 중 하나입니다.
M2 를 설계할 때, 우리는 이 문제를 직면하여 해결해야 한다는 것을 알았습니다. 이는 두 가지 핵심적이면서도 때로는 상충되는 목표를 도출했습니다:
- 오픈소스 벤치마크에서 탁월하게 수행하기. 벤치마크는 "순수" 능력을 측정하는 데 필수적입니다. 예를 들어, BrowseComp 와 같은 벤치마크는 고급 검색 기술을 테스트합니다. 사용자가 "제 n 작자의 이름의 3 번째 글자가 'x'인 논문을 찾아라"와 같이 고안된 질문을 거의 묻지 않을 것입니다. 그러나 이를 해결할 수 있는 모델은 강력한 기초 능력을 증명합니다.
- 실제 세계에 견고하게 일반화하기. 이것이 더 어렵고 중요한 부분입니다. 훌륭한 에이전트는 낯선 도구, IDE/CLI, 에이전트 스프레임워크 및 사용자 설정을 가로지르는 신뢰성 있는 성능을 발휘해야 합니다. 그것은 한 가지 마법사 (one-trick pony) 가 될 수 없으며, 일반화해야 합니다.
그러니 우리는 누구와 맞춰야 할까요? 답은 둘 다입니다. 우리는 벤치마크와 맞추어 기술을 구축하지만, 결국 사용자와 맞출 것입니다. 즉, 그 기술이 모든 곳에서 작동하도록 보장합니다.
벤치마크를 잘하는 방법들은 다른 날을 위한 심오한 주제이지만, 저는 두 번째, 더 까다로운 목표에 집중하고 싶습니다: 야생 (wild) 을 위한 에이전트를 어떻게 훈련할까요?
프로젝트 초기에 우리는 좌절적인 벽에 부딪혔습니다. 에이전트 성능은 일관성이 없었고, 왜인지 진단하는 데 어려움을 겪었습니다. 많은 논의 끝에, 특히 @Junxian He 교수님과 @Wenhu Chen 과의 논의 후, 우리는 첫 번째 주요 결론에 도달했습니다: 에이전트는 교차된 사고 (Interleaved Thinking) 를 필요로 합니다.
이는 에이전트의 내부 독백 (내부적 사고 과정) 이 임무 중 어느 시점에서든 발생하고 있어야 하며, 표준 추론 모델과 달리 처음에만 한 번 발생하는 것이 아니어야 한다는 것을 의미합니다. 이 설계는 두 가지 이유로 중요합니다:
- 장기 임무에 대한 집중 유지. 복잡한 에이전트 임무는 매우 긴 컨텍스트를 가집니다. 시작에서의 단일 사고 과정은 지시 따름 및 일관성을 유지하는 데 충분하지 않습니다.
- 외부 교란에 적응하기. 이것이 결정적인 차이입니다. 에이전트 임무는 외부 세계 (즉, 도구 출력) 에서의 지속적인 예측 불가능한 교란을 도입합니다. 모델은 이러한 교란을 처리하고 오류를 진단하며 유용한 정보를 추출할 만큼 견고해야 합니다. "사고" 과정은 모델이 환경에서 새로운 정보에 대해 지속적으로 재평가 및 적응하도록 허용합니다.
이 원칙은 M2 의 효과성의 핵심이 되었습니다.
M2 사용자를 위한 팁: M2 는 Interleaved Thinking 에 의존하므로, 그 컨텍스트는 그 기억입니다. 최적의 성능을 위해, 사고 단계를 포함하여 전체 세션 역사를 유지해야 합니다. 우리는 커뮤니티 피드백 중 많은 부분이 이 중요한 컨텍스트를 실수로 버리는 데서 비롯된다는 것을 발견했습니다. 이는 단순한 추론 모델과 일반적인 관행입니다.
우리의 초기 이론은 간단했습니다: 도구 확장 (tool scaling) 은 에이전트 일반화입니다.
우리는 기본 라인 (baseline) 의 도구 호출 능력을 구축하기 위해 최소한의 도구 세트 (파이썬 인터프리터, 검색 엔진, 브라우저) 를 시작했습니다. 로드맵은 명확했습니다: 도구의 수와 다양성을 확대하고, 에이전트의 미확인 도구로의 일반화 능력이 자연스럽게 따라올 것입니다.
처음에는 이 접근법이 작동했습니다. 벤치마크 점수가 존경할 만한 수준으로 상승했습니다. 하지만 더 깊이 파고들면서 우리는 잘못된 문제를 해결하고 있음을 깨달았습니다. 모델은 시험을 완벽하게 통과했지만, 환경을 조금만 바꿔도—예를 들어 다른 스캐폴딩 프레임워크로 교체하는 경우—성능이 급격히 떨어졌습니다. 우리는 여전히