LLM WikiAccess-protected knowledge portal
← 스터디 홈
69편 · 약 13분

Claude Code 2.1 에이전트 플릿 제어: 배경 실행·서브에이전트 예산·MCP 자동화로 멀티에이전트 운영 기준을 다시 쓴 방법

왜 지금 봐야 하나

2026년 7월 한 달 동안 Claude Code는 에이전트 플릿 제어 측면에서 가장 큰 변화를 연속으로 적용했다. 단순히 기능을 추가한 것이 아니라, 서브에이전트가 언제 생성되고, 얼마나 깊이 중첩되며, 무엇을 소비할 수 있는지에 대한 기본값이 바뀌었다.

세 변화가 핵심이다.

  1. 서브에이전트 배경 실행 기본화 (v2.1.198, 7월 1일): 서브에이전트가 기본으로 백그라운드에서 실행된다.
  2. 중첩 깊이 제한과 재조정 (v2.1.217 → v2.1.219, 7월 21~24일): 무제한 중첩이 차단됐다가 기본 깊이 3으로 재허용됐다.
  3. 예산 상한 버그 수정과 세션 예산 (v2.1.217, 7월 21일): 배경 에이전트가 --max-budget-usd를 초과하는 버그가 수정됐고, 세션당 서브에이전트 생성 수 상한이 추가됐다.

MCP 도구 자동 백그라운드(v2.1.210)와 Hook 오류 처리 수정이 이 흐름의 기반을 이룬다.

이 변화들은 Claude Code를 무인 에이전트 워크플로에서 안전하게 사용하기 위한 제어 레이어를 완성했다.


배경: 멀티에이전트 확장이 만든 문제

스케일이 드러낸 세 가지 빈틈

Claude Code가 워크트리 기반 서브에이전트와 병렬 실행을 지원하면서 하나의 세션이 수십 개의 에이전트를 생성하는 패턴이 생겼다. 문제는 도구 자체가 아니라 경계가 없었다는 것이다.

빈틈증상결과
중첩 깊이 제한 없음A가 B를 생성하고, B가 C를 생성하고, C가 D를...지수적 에이전트 생성, 비용 폭증
배경 예산 미적용--max-budget-usd 명시해도 배경 에이전트는 계속 소비예산 설정이 의미 없음
Hook 타임아웃 오처리Hook 콜백이 타임아웃되면 "사용자 거부"로 처리무인 세션이 사람을 기다리며 멈춤

이 세 가지가 맞물리면 무인(배경) 에이전트 워크플로가 실질적으로 불가능하다. 비용이 통제 안 되거나, 세션이 예상치 못하게 중단된다.


배경 실행 기본화 (v2.1.198, 7월 1일)

무엇이 바뀌었나

v2.1.198 이전에는 서브에이전트가 포어그라운드로 실행됐다. 부모 세션은 서브에이전트가 끝날 때까지 대기 상태였다.

v2.1.198부터 서브에이전트는 기본적으로 배경 실행된다. 부모 세션은 서브에이전트를 시작한 직후 다음 작업으로 진행할 수 있다.

배경 에이전트의 추가 권한

7월 1일 업데이트는 배경 에이전트에 두 가지 능력을 추가했다.

  1. 워크트리 작업 완료 후 자동 커밋·푸시·드래프트 PR 열기: 코드 변경 작업을 마친 배경 에이전트가 사람 없이 결과를 푸시하고 PR을 열 수 있다.
  2. Notification Hook 발화: agent_needs_inputagent_completed 이벤트가 배경 세션에서도 발화된다. 외부 시스템이 에이전트 상태를 추적할 수 있다.

중첩 깊이 제한의 조정 과정 (v2.1.217 → v2.1.219)

v2.1.198 (7월 1일) — 배경 실행 기본화
부모 세션
서브에이전트 (배경)
깊이 제한: 없음
서브의 서브 (배경)
깊이 제한: 없음
무제한 중첩
v2.1.217 (7월 21일) — 중첩 차단 (일시적)
부모 세션
서브에이전트 (배경)
동시 실행 ≤ 20
중첩 생성 불가
v2.1.219 (7월 24일) — 기본 깊이 3 재허용
부모 세션
(깊이 0)
서브 (깊이 1)
서브의 서브
(깊이 2)
최대 깊이 3
깊이 4 차단
Claude Code 서브에이전트 중첩 정책 변화 타임라인

왜 일주일 사이에 두 번 바뀌었나

v2.1.217(7월 21일)이 중첩을 완전히 차단한 것은 지수적 에이전트 생성을 막기 위한 즉각적인 조치였다. 그러나 서브에이전트 기반 워크플로 일부가 정상 동작을 위해 한 단계 중첩을 필요로 했다. 3일 뒤 v2.1.219(7월 24일)가 기본 깊이 3을 허용하면서 균형점을 찾았다.

동시 실행 상한

v2.1.217과 함께 동시에 실행 중인 서브에이전트는 최대 20개로 제한됐다. 이 값은 환경 변수로 조정할 수 없다.


세션 예산과 MCP 자동 백그라운드

세션 서브에이전트 예산 (v2.1.217)

한 세션에서 생성할 수 있는 서브에이전트의 누적 수 상한이 추가됐다.

기본값: 200
환경 변수: CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION
초기화: /clear 명령으로 카운터 리셋

실행 중인 서브에이전트 수가 아니라 세션 전체에서 생성된 누적 수를 센다. 긴 자동화 워크플로에서 에이전트 생성 폭주를 막는 안전 장치다.

MCP 도구 자동 백그라운드 (v2.1.210)

MCP 도구 호출이 2분 이상 걸리면 자동으로 백그라운드로 이동한다. 세션이 도구 실행을 기다리는 동안 멈추지 않는다.

임계값 기본값: 2분 (120,000ms)
환경 변수: CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS
비활성화: CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS=0

장시간 실행되는 데이터베이스 마이그레이션, 빌드 파이프라인, 원격 API 호출 등을 MCP 도구로 래핑하는 경우에 특히 유용하다.


Hook 인프라 수정 (v2.1.210)

타임아웃이 거부로 오인되던 문제

v2.1.210 이전에는 Hook 콜백이 타임아웃되면 모델에게 "사용자가 거부했습니다" 로 전달됐다. 결과는 예상치 못한 세션 중단이었다. 무인 세션이 사람을 기다리며 정지한다.

v2.1.210에서 이 처리가 수정됐다. 타임아웃은 타임아웃으로 전달된다.

잘린 MCP 출력의 메모리 누수

같은 릴리스에서 잘린(truncated) MCP 도구 출력이 세션 전체 메모리에 전체 크기로 유지되던 버그도 수정됐다. 긴 세션에서 MCP 도구를 반복 호출하는 경우 메모리 사용량이 비정상적으로 증가하던 원인이었다.


운영 기준 정리

중첩 깊이 제어
기본값: 3
동시 실행 상한: 20
수정 불가 하드 리밋
세션 예산
기본값: 200회
CLAUDE_CODE_MAX_
SUBAGENTS_PER_SESSION
/clear로 리셋
MCP 자동 백그라운드
기본값: 2분
CLAUDE_CODE_MCP_
AUTO_BACKGROUND_MS
=0 비활성화
비용 상한
--max-budget-usd
배경 에이전트에도
적용 (v2.1.217+)
이전 버전은 미적용
Claude Code 에이전트 플릿 운영 파라미터

체크리스트

무인 Claude Code 워크플로를 운영하는 팀이 v2.1.219 이상으로 업그레이드할 때 확인할 사항:

  • [ ] 예산 적용 확인: v2.1.217 이전에서 배경 에이전트를 사용했다면 실제 비용 소비량을 점검한다. 예산 상한이 미적용된 기간이 있다.
  • [ ] 중첩 깊이 확인: 서브에이전트가 서브에이전트를 생성하는 패턴이 있다면 깊이가 3을 초과하지 않는지 확인한다.
  • [ ] Hook 타임아웃 재검토: continue:false Hook이 있는 워크플로에서 타임아웃이 거부로 처리되어 멈추는 경우가 있었는지 로그를 확인한다.
  • [ ] 세션 예산 조정: 200회가 부족한 대규모 병렬 작업은 CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION 값을 늘린다.
  • [ ] MCP 임계값 조정: 2분보다 짧게 자동 백그라운드를 원하면 CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS를 조정한다.

Agent View /resume 기능

v2.1.219와 함께 Agent View의 /resume 명령이 확장됐다. 목록에서 삭제된 세션을 포함한 과거 세션 선택기를 열고, 선택한 세션을 배경 세션으로 재개한다.

장시간 실행 워크플로가 도중에 끊어졌을 때 세션 기록이 표시 목록에 없어도 재개할 수 있다.


Open Questions

  • 중첩 깊이 기본값 3이 프로덕션 워크플로에서 충분한지, 향후 환경 변수 제어가 열릴지 공식 언급이 없다.
  • 세션 예산 200회가 대규모 리팩터링 워크플로에서 적절한지에 대한 Anthropic 가이드라인은 미확인이다.

References