피드로 돌아가기
Claude Code is not a recursive agent. I read the source and checked.
Dev.toDev.to
AI/ML

Recursive Agent 오해를 벗긴 State Loop 기반의 효율적 컨텍스트 관리

Claude Code is not a recursive agent. I read the source and checked.

Sergei Frangulov2026년 6월 7일9advanced

Context

Claude Code의 동작 방식을 Recursive Agent로 오해하여 스택 깊이에 따른 리소스 소모를 예측하는 경향이 존재함. 실제로는 단일 State 객체를 변이시키는 반복 루프 구조이며, 컨텍스트 윈도우 포화 시 발생하는 비용 효율적 메모리 관리 전략이 핵심임.

Technical Solution

  • queryLoopwhile(true) async generator를 통한 State mutation 구조로 Stack Overflow 방지 및 루프 단위의 Budget/Timeout 제어
  • 비용 최적화를 위해 'snip → microcompact → context-collapse → autocompact → reactive' 순의 계층적 컨텍스트 압축 메커니즘 적용
  • AUTOCOMPACT_BUFFER_TOKENS(13,000 tokens) 예약을 통한 요약 공간 확보 및 MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES 제한으로 무한 루프 API 비용 낭비 차단
  • StreamingToolExecutor를 통한 Model 생성과 Tool 실행의 병렬 처리 및 CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY 기반의 동시성 제어
  • Full Compaction 시 messagesToKeep를 비우고 전체 이력을 재구성하는 Summary-based Reconstruction 방식 채택
  • stop_reason의 비동기 업데이트 특성을 고려하여 tool_use 블록의 실제 도착 여부로 도구 호출을 판별하는 상태 검증 로직 구현

1. LLM 에이전트의 Turn 제한과 Timeout 설정을 Stack Frame이 아닌 Loop Pass 단위로 설계했는지 확인

2. 컨텍스트 압축 시 단순 Truncation 대신 요약(Summary)과 정밀 삭제(Surgical Drop)의 계층적 구조 검토

3. 외부 툴 실행 시 모델 응답 완료 전 스트리밍 단계에서 병렬 실행을 시작하여 Latency 최적화 적용

4. 신뢰하지 않는 경로의 설정 파일(.json 등)이 보안 검증 로직 이전에 로드되는 Race Condition 존재 여부 점검

원문 읽기