핵심 요약
Recursive Language Model(RLM)은 문서 전체를 모델의 컨텍스트 윈도우에 입력하는 대신, 외부 환경으로 취급하여 프로그래밍 방식으로 상호작용하는 구조다. 루트 LLM은 코드를 작성해 문서를 탐색하고, 필요 시 서브 LLM을 호출하여 특정 섹션을 분석하며 결과를 작업 메모리에 저장한다. 이 방식은 문서 크기와 컨텍스트 윈도우 제한을 분리하여, 수백만 자 이상의 방대한 데이터도 처리 가능하다. LongBench v2 벤치마크 평가 결과, RLM은 기존 방식 대비 100%의 성공률을 기록하며 금융 및 코드 분석 작업에서 정확도를 크게 향상했다.
배경
AWS 계정 및 Amazon Bedrock 접근 권한, Python 3.10 이상, AWS CLI 설정, Boto3 및 Strands Agents SDK 활용 능력
대상 독자
긴 문서나 대규모 코드 저장소를 분석해야 하는 LLM 애플리케이션 개발자
의미 / 영향
RLM은 컨텍스트 윈도우 제한을 기술적으로 극복하여, 금융 보고서나 대규모 코드베이스와 같은 방대한 데이터 분석을 가능하게 한다. 이는 LLM의 활용 범위를 단순 요약을 넘어 심층적인 데이터 분석 영역으로 확장한다.
섹션별 상세
response = client.start_code_interpreter_session(
codeInterpreterIdentifier=code_interpreter_id,
name="rlm-session",
sessionTimeoutSeconds=3600
)Amazon Bedrock AgentCore Code Interpreter 세션을 시작하는 코드
def llm_query(prompt: str) -> str:
"""Query a sub-LLM from within the sandbox."""
response = bedrock_client.invoke_model(
modelId=sub_model_id,
body=json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4096,
"messages": [{"role": "user", "content": prompt}]
})
)
result = json.loads(response['body'].read())
return result['content'][0]['text']샌드박스 내부에서 서브 LLM을 호출하여 분석을 수행하는 함수
agent = Agent(
model="us.anthropic.claude-sonnet-4-5-20250929-v1:0",
system_prompt=rlm_system_prompt,
tools=[execute_python],
)Strands Agent를 생성하고 execute_python 도구를 할당하는 코드

실무 Takeaway
- 문서 크기가 컨텍스트 윈도우를 초과하는 경우, RLM 패턴을 사용하여 외부 환경에서 코드로 데이터를 탐색하고 분석한다.
- 루트 LLM은 오케스트레이션만 담당하고, 서브 LLM을 호출하여 특정 섹션을 분석함으로써 컨텍스트 윈도우 효율을 극대화한다.
- 비용 효율성을 위해 루트 LLM은 고성능 모델을 사용하고, 서브 LLM은 Haiku 4.5와 같은 경량 모델을 활용하여 성능과 비용을 최적화한다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.