랭체인이 딥 에이전트(Deep Agents)에 재귀 언어 모델을 붙이는 방법을 정리해서 냈어. 재귀 언어 모델(RLM, Recursive Language Model)은 모델이 최종 답을 내기 전에 자기 자신이나 다른 모델을 다시 불러 쓰는 방식이야. 프롬프트를 통째로 컨텍스트 창에 밀어 넣는 대신, 입력을 코드 환경의 변수로 두고 모델이 짧은 스크립트를 짜서 데이터를 조각조각 나눠 처리해.

이게 나온 배경은 컨텍스트 문제야. 에이전트가 작업하면서 맥락을 계속 쌓으면 성능이 떨어지는 현상이 있는데, 랭체인은 이걸 ‘context rot’라고 불러. 맥락이 길어질수록 모델이 앞부분을 놓치는 거지. RLM은 데이터를 코드로 다루니까 두 가지가 달라져. 하나는 모델 판단이 아니라 코드가 모든 데이터를 빠짐없이 훑는다는 거고, 다른 하나는 파이프라인을 분기하거나 병렬로 돌리는 식으로 흐름을 짤 수 있다는 거야.

딥 에이전트는 이걸 동적 서브에이전트와 가벼운 코드 인터프리터로 구현해. 코드 인터프리터는 모델이 쓴 스크립트를 실제로 실행하는 도구야. 턴을 주고받으며 도구를 하나씩 부르는 대신, 모델이 스크립트 한 편을 쓰면 인터프리터가 그걸 돌려.

수치도 붙였어. OOLONG이라는 데이터셋의 뉴스 분류 작업에서, 64k 토큰 구간은 코드 실행 없이 0.58, 실행을 붙이면 0.67이었어. 128k 토큰으로 가면 차이가 커져서, 일반 에이전트는 0.44로 사실상 무너졌는데 RLM 방식은 0.79를 유지했어. 다만 이 방식은 지연이 더 크고, 특정 분류 데이터셋 기준이라는 점은 감안해야 해. 긴 문서를 통째로 다루는 에이전트를 짜고 있다면, 컨텍스트를 코드로 쪼개는 이 접근이 맞는지 한 번 따져볼 만해.