Claude Code 2.1.212: 비용이 걷잡을 수 없이 커지기 전에 에이전트 팬아웃(Fan-out)에 엄격한 예산 설정하기
요약
Claude Code 2.1.212 업데이트를 통해 에이전트의 무분별한 팬아웃과 비용 상승을 방지하기 위한 예산 설정 기능이 추가되었습니다. 세션당 서브에이전트 생성 및 웹 검색 상한선을 환경 변수로 제어하여 비용과 리소스를 효율적으로 관리할 수 있습니다.
핵심 포인트
- 세션당 서브에이전트 및 웹 검색 상한선 설정 기능 추가
- 환경 변수를 통한 에이전트 활동량 및 비용 제어 가능
- 느린 MCP 호출을 백그라운드로 이동시켜 대화형 세션 차단 방지
- 에이전트 팬아웃 제어를 통한 비용 및 작업 충돌 리스크 감소
무한히 위임(delegate)하고 검색할 수 있는 코딩 에이전트는 더 자율적인 것이 아닙니다. 그것은 모호한 작업, 불안정한 도구(flaky tool), 또는 잘못된 재시도 루프(retry loop)를 기다리고 있는 제한 없는 생산 워크로드일 뿐입니다.
Claude Code 2.1.212는 일반적인 릴리스 노트 훑어보기보다 더 많은 주의를 기울여야 할 두 가지 간단한 제어 기능을 추가했습니다: 세션당 서브에이전트 생성(subagent spawns) 상한선과 세션당 웹 검색 상한선입니다. 두 기능 모두 기본값은 200이며 환경 변수(environment variables)로 설정할 수 있습니다. 또한 이번 릴리스에서는 2분 이상 실행되는 MCP 호출을 기본적으로 백그라운드로 이동시키므로, 하나의 느린 통합(integration)이 더 이상 대화형 세션(interactive session)을 멈추게 하지 않습니다. Anthropic의 릴리스 노트에는 이러한 기본값과 제어 기능에 대해 명시되어 있습니다.
이는 모든 에이전트 하네스(agent harness)를 위한 실질적인 신뢰성 패턴입니다: 비용이 많이 드는 팬아웃(fan-out)과 외부 I/O를 유한하고(finite), 관찰 가능하며(observable), 복구 가능하게(recoverable) 만드십시오.
실패 모드는 비용 문제만이 아닙니다
긴 작업은 에이전트가 계속해서 연구 브랜치를 열거나, 약한 쿼리를 재시도하거나, 동일한 작업의 변형을 위임하게 만들 수 있습니다. 명백한 영향은 토큰(token) 및 도구(tool) 사용 비용입니다. 덜 명백한 영향은 다음과 같습니다:
- 부모 세션이 조정해야 할 더 많은 부분적 결과(partial results)를 갖게 됨
- 중복된 서브에이전트가 충돌하는 편집이나 결론을 생성함
- 느린 MCP 서비스가 대화형 워크플로(interactive workflow)를 차단된 워크플로(blocked workflow)로 바꿈
- "여전히 작업 중"이라는 표시가 시스템이 유용한 진전을 멈췄다는 사실을 숨김
이는 에이전트 팀(agent teams)의 경우 특히 관련이 깊습니다. Anthropic은 에이전트 팀이 단일 세션보다 훨씬 더 많은 토큰을 사용한다고 문서화하고 있으며, 독립적인 병렬 작업이 실제 가치를 더하는 경우에만 에이전트 팀 사용을 권장합니다. 에이전트 팀은 실험적이며 조정(coordination)의 한계가 있습니다. 병렬 처리를 기본값으로 취급하기 전에 에이전트 팀 가이드라인을 읽어보세요.
새로운 제어 기능을 운영 정책으로 변환하기
Claude Code는 두 가지 제한 사항을 환경 변수로 노출합니다:
# 예시 시작 예산이며, 보편적인 기본값은 아닙니다
export CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION=12
export CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION=30
...
릴리스 노트에 따르면 /clear 명령어가 하위 에이전트 (subagent) 예산을 초기화한다고 합니다. 이를 통제 불능 세션의 가드레일 (guardrail)을 우회하기 위한 허점이 아니라, 새로운 작업 세그먼트 (work segment)로 취급하십시오.
적절한 값은 워크로드 (workload)에 따라 달라집니다. 제한된 PR 리뷰 (PR review)는 3~8개의 전문가가 필요할 수 있으며 웹 검색은 필요하지 않을 수 있습니다. 연구 작업은 더 많은 검색 호출 (search calls)이 필요할 수 있지만, 합성 작업자 (synthesis workers)는 한두 명이면 충분할 수 있습니다. 한도에 도달하는 것이 유용한 신호가 될 수 있을 만큼 충분히 낮은 값에서 시작하고, 트레이스 (traces)를 통해 추가 작업이 결과물을 개선한다는 것이 확인될 때만 값을 높이십시오.
| 워크로드 (Workload) | 시작 값 | 중단 또는 확대 시점 |
|---|---|---|
| 로컬 버그 수정 (Local bug fix) | 하위 에이전트 0-2개, 검색 0-5회 | 작업자가 저장소 (repo) 외부의 정보가 필요할 때 |
| ... |
이것들은 제품의 제한 사항이 아니라 운영상의 시작점입니다. 완료 품질, 경과 시간, 도구 호출 (tool calls), 그리고 승인된 변경 사항당 비용을 측정하십시오.
포그라운드 (foreground) 작업의 응답성 유지
Claude Code는 이제 기본적으로 2분 후에 MCP 도구 호출을 백그라운드 (background)로 전환하며, CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS를 통해 해당 동작을 조정하거나 비활성화할 수 있습니다. 이는 좋은 UX 가드레일이지만, SLO (Service Level Objective)는 아닙니다. 느린 MCP 호출은 여전히 용량을 소비하며 오래된 데이터를 반환할 수 있습니다.
통합 (integration) 자체를 위해 별도의 타임아웃 (timeout) 정책을 사용하십시오:
- 인덱싱 (indexing)이나 대규모 이슈 검색과 같이 비동기적으로 실행될 수 있는 MCP 작업이 무엇인지 결정합니다.
- 쓰기 작업 (write actions) 및 승인이 필요한 작업은 명시적으로 사용자에게 보이는 상태와 함께 포그라운드 (foreground)에 유지합니다.
- 요청, 시작 시간, 결과, 실패 이유 및 재시도 횟수를 기록합니다.
- 리드 (lead)가 독립적인 작업을 계속하게 한 다음, 백그라운드 결과가 도착하면 가정을 다시 확인하도록 요구합니다.
MCP 서버는 이슈 트래커(issue trackers), 데이터베이스, API를 에이전트에게 직접 노출할 수 있으므로, 이들의 지연 시간(latency)과 신뢰 경계(trust boundaries)는 단순한 플러그인 세부 사항이 아니라 애플리케이션 아키텍처의 일부입니다. Claude Code의 MCP 문서 또한 외부 콘텐츠를 가져오는 서버가 프롬프트 인젝션(prompt-injection) 위험을 초래할 수 있다고 경고합니다.
최소 예산 계약 (A minimal budget contract)
모델에게 "효율적으로 행동하라"고 요청하는 대신, 작업 옆에 정책을 배치하십시오:
agent_budget:
max_subagents: 4
max_web_searches: 20
...
중요한 필드는 정확한 숫자가 아닙니다. 바로 중단 동작(stop behavior)입니다. 경계가 설정된 시스템은 비용이 많이 드는 탐색을 조용히 다시 시작하는 것이 아니라, 미결 질문을 포함한 유용한 부분적 결과(partial result)를 반환해야 합니다.
지금 해야 할 일
- 비핵심적인 Claude Code 환경을 2.1.212 버전으로 업그레이드하고 먼저 릴리스 동작을 점검하십시오.
- PR 리뷰나 인시던트 분류(incident triage)와 같이 측정 가능한 결과가 나오는 하나의 워크플로우에 대해 보수적인 세션 예산을 설정하십시오.
- 서브에이전트(subagent) 수, 검색 횟수, MCP 지연 시간, 재시도(retries), 수락된 결과 비율(accepted-result rate)에 대한 텔레메트리(telemetry)를 추가하십시오.
- 한도(cap)에 도달한 모든 실행을 검토하십시오: 한도가 낭비를 방지했습니까, 아니면 명확하게 가치 있는 단계를 차단했습니까?
- 권한 제어(permission controls)를 예산 제어(budget controls)와 분리하여 유지하십시오. 요청은 안전하지만 비경제적일 수 있고, 저렴하지만 안전하지 않을 수 있습니다.
이미 조정된 워커(coordinated workers)를 실행 중이라면, 이를 명시적인 작업 계약(task contract) 및 평가 루프(evaluation loop)와 결합하십시오. 다음의 이전 가이드들이 관련 내용을 다룹니다: 공유 컨텍스트 에이전트 팀이 더 많은 서브에이전트보다 나은 경우, 잘못된 실행을 회귀 테스트로 전환하기, 그리고 승인 프롬프트에 심층 방어(defense in depth)가 필요한 이유.
한계 및 적용되지 않는 경우
태스크 설계 (task design)의 대체제로 하드 캡 (hard caps)을 사용하지 마십시오. 대규모 마이그레이션 (migration)이나 심층 조사 (deep investigation)는 정당하게 더 많은 작업이 필요할 수 있지만, 이는 새로운 예산과 인간의 체크포인트 (human checkpoint)를 포함하여 재개 가능한 단계 (resumable phases)로 분할되어야 합니다. 또한, 느린 MCP 호출을 백그라운드 (backgrounding)로 처리하는 것은 상호작용성 (interactivity)을 개선할 뿐이며, 원격 시스템을 신뢰할 수 있게 만들거나 그 출력을 신뢰할 수 있게 만드는 것은 아닙니다.
Sources
- Claude Code v2.1.212 release notes
- Claude Code agent teams documentation
- Claude Code MCP documentation
당신의 에이전트 워크플로 (agent workflow)에서 실제로 가장 많은 낭비를 잡아낸 예산 설정은 무엇이었습니까: 위임 (delegations), 검색 (searches), 재시도 (retries), 아니면 느린 도구 호출 (slow tool calls)입니까?
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기