🟡 🤝 에이전트 게시일: · 3 분 읽기 ·

LangChain이 RLM 에이전트 도입: 재귀적 모델이 긴 컨텍스트에서 79% 향상된 성능 달성

편집 일러스트레이션: LangChain 딥 에이전트와 QuickJS 오케스트레이터로 긴 컨텍스트를 처리

LangChain이 DeepAgents 프레임워크를 통해 재귀 언어 모델(RLM)을 도입했습니다. 모델이 전체 컨텍스트를 하나의 창에 밀어 넣는 대신 입력 조각 위에서 스스로를 재귀적으로 호출하는 방식입니다. 128k 토큰 OOLONG 벤치마크에서 RLM 에이전트는 0.44였던 표준 에이전트 대비 0.79를 기록해 79% 향상되었습니다.

🤖

이 기사는 AI가 1차 출처를 기반으로 생성했습니다.

LangChain이 DeepAgents 생태계 내에서 **재귀 언어 모델(RLM)**에 대한 상세한 가이드와 프레임워크를 공개했습니다. 이는 LLM 에이전트의 만성적 문제인 긴 컨텍스트에서의 성능 저하, 이른바 「context rot」을 해결하는 접근법입니다.

표준 에이전트가 긴 컨텍스트에서 왜 뒤처지는가?

에이전트가 대량의 정보—이전 메시지, 도구 결과, 중간 산출물—를 쌓으면 모두 하나의 컨텍스트 창에 들어갑니다. 그러면 모델은 컨텍스트의 앞 부분에 있는 관련 세부사항을 놓치거나 지시를 무시하거나 정보 우선순위를 잘못 매기기 시작합니다. 128k 토큰 규모의 작업에서 표준 에이전트는 테스트 시 성능이 크게 떨어지거나 완전히 실패하는 경우가 잦습니다.

Alex Zhang과 MIT CSAIL 연구진이 개발한 RLM 방식은 구조적 변화로 이 문제를 해결합니다. 전체 입력을 컨텍스트 창에 밀어 넣는 대신, 모델이 REPL 환경에서 입력을 변수로 로드하고 더 작고 다루기 쉬운 조각 위에서 자기 자신 또는 서브에이전트를 재귀적으로 호출합니다.

RLM 오케스트레이션은 어떻게 작동하는가?

핵심은 경량 코드 인터프리터(QuickJS)를 통한 코드 기반 오케스트레이션입니다. 모델이 작업을 분해하고 데이터 세그먼트 위에서 재귀 호출을 실행하는 코드를 작성합니다. LangChain은 이를 「동적 서브에이전트」—도구 호출의 순차적 체인이 아닌 코드로 프로그래밍 방식으로 디스패치되는 서브에이전트—를 통해 구현합니다.

이 아키텍처의 핵심 장점은 결정론적 처리 보장입니다. 코드의 루프가 모든 요소가 처리되도록 보장하며, 모델 스스로 무엇을 읽을지 결정하는 방식과 대조됩니다. 파이프라인을 작업 요건에 따라 분기·병렬화·순차화할 수 있습니다. 또한 오케스트레이터와 서브에이전트 레이어에서 서로 다른 모델을 혼합해 정밀한 비용 최적화가 가능합니다—복잡한 단계에는 고가 모델을, 반복 작업에는 저렴한 모델을 활용합니다.

벤치마크 결과

LangChain은 OOLONG 벤치마크 작업—AgNews 데이터셋의 뉴스를 4개 카테고리로 분류하는 작업—을 다양한 컨텍스트 길이에서 테스트했습니다.

컨텍스트 길이REPL 없음REPL 사용(RLM)
64k 토큰0.580.67
128k 토큰0.440.79

128k 토큰에서 RLM 에이전트는 표준 에이전트의 0.44 대비 0.79를 기록해 상대적으로 79% 향상되었습니다. 이 컨텍스트 길이에서 표준 에이전트는 상당수 케이스에서 완전히 실패했습니다. RLM 에이전트는 재귀적 접근법 특성상 고유한 레이턴시를 감수하면서도 높은 정확도를 유지했습니다.

설치 및 코드 예시

DeepAgents 프레임워크와 RLM 지원은 한 번의 명령으로 설치할 수 있습니다.

pip install -U "deepagents[quickjs]"

기본 에이전트 초기화:

from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware

agent = create_deep_agent(
    model="openai:gpt-5.5",
    middleware=[CodeInterpreterMiddleware()],
)

RLM 오케스트레이션은 프롬프트에 「workflow」 키워드를 포함하면 활성화되며, 에이전트에게 동적 서브에이전트 디스패치를 사용하라는 신호가 됩니다. 프레임워크는 레이어 간 모델 혼합을 지원하므로 오케스트레이터와 서브에이전트에 각각 다른 LLM을 지정할 수 있습니다.

이 방식은 기존 LangChain 에코시스템 도구와 호환되며 인프라 변경이 필요하지 않습니다. 패키지를 업그레이드하고 에이전트 초기화 시 미들웨어 레이어를 추가하기만 하면 됩니다.

자주 묻는 질문

재귀 언어 모델(RLM)이란 무엇이며 왜 유용한가요?
RLM은 입력을 REPL 환경의 변수로 로드한 뒤 더 작은 조각 위에서 자기 자신이나 서브에이전트를 재귀적으로 호출하는 모델입니다. 에이전트가 단일 창에 너무 많은 컨텍스트를 쌓아 성능이 저하되는 「context rot」을 방지하는 것이 목표입니다.
RLM 에이전트를 설치하고 활성화하는 방법은?
`pip install -U 「deepagents[quickjs]」` 명령으로 설치하고, `create_deep_agent` 함수로 에이전트를 생성할 때 `CodeInterpreterMiddleware`를 전달하면 RLM 오케스트레이션이 활성화됩니다.
코드 기반 오케스트레이션이 표준 LLM 에이전트보다 나은 이유는?
루프 코드가 모든 요소의 처리를 결정론적으로 보장합니다 — 모델이 스스로 무엇을 읽을지 판단하는 방식과 달리 누락이 없습니다. 파이프라인을 분기·병렬화·순차 실행할 수 있고, 오케스트레이터와 서브에이전트 레이어에서 서로 다른 모델을 혼합해 비용을 최적화할 수 있습니다.