목차
비녀장Claude Code 서브 에이전트 심층 분석: 아키텍처 설계부터 실제 적용까지
Anthropic이 Claude Code에 서브 에이전트(Sub-Agents) 기능을 도입함으로써, 단일 AI 모델이 모든 작업을 처리해야 했던 한계를 극복했습니다. Claude Code 서브 에이전트를 사용하면 각각 독립적인 컨텍스트 환경, 전용 도구 권한 및 특정 모델 구성을 갖춘 여러 개의 전문화된 서브 에이전트를 생성할 수 있습니다.단일 범용 AI 에이전트가 코드 검토, 의존성 확인, 테스트 작성까지 동시에 처리하도록 하는 대신, 서브 에이전트를 통해 진정한 작업 격리를 실현할 수 있습니다. 이는 단순한 기능의 중첩이 아니라 근본적인 아키텍처의 변화입니다.
당신이 프로젝트 매니저라고 상상해 보세요. 부하 직원으로는 조사 담당자, 실행 담당자, 품질 보증 담당자가 있습니다. 조사 담당자에게 코드 수정을 맡기지도 않을 것이고, 품질 보증 담당자에게 아키텍처 결정을 맡기지도 않을 것입니다.Claude Code Sub-Agents는 바로 이러한 논리를 AI 차원에서 구현한 것입니다. 각 에이전트는 단일 영역에 집중함으로써 컨텍스트 오염을 방지하고, 작업 수행 정확도를 높입니다.
Claude Code 공식 문서에 따르면,서브 에이전트(Sub-Agents)의 모델 선택은 명확한 우선순위 순서를 따릅니다: 환경 변수 `CLAUDE_CODE_SUBAGENT_MODEL` > 각 호출 시 지정된 `model` 매개변수 > 서브 에이전트 정의 내의 `model` 필드 > 주 대화의 모델.이러한 우선순위 설계 덕분에 엔지니어는 전역, 프로젝트 수준 및 호출 수준에서 세밀한 제어가 가능합니다.
이 글에서는 세 가지 측면에서 서브 에이전트(Sub-Agents)를 분석할 것이다. 첫째, 격리 아키텍처가 왜 필요한지 이해하는 것
왜 단일 AI 에이전트만으로는 복잡한 엔지니어링 과제를 처리할 수 없는가
Claude Code Sub-Agents의 분리 설계가 단일 AI 에이전트보다 우수한 이유는 무엇인가
Claude Code 에이전트 하나가 코드 검토, 의존성 검사, 단위 테스트 작성을 동시에 처리할 때, ‘컨텍스트 오염’이라는 숨겨진 병목 현상이 발생합니다.
에이전트가 불과 5분 만에 완전히 다른 세 가지 엔지니어링 분야를 오가게 되면, 그 추론 경로들이 서로 간섭하게 됩니다. 논리를 검토하는 의사결정 규칙이 테스트 작성의 사고방식에 영향을 미치고, 검사 도구의 출력 결과가 후속 코드 분석에 부정적인 영향을 미칩니다. 그 결과 의사결정의 질이 떨어지고, 실행 시간이 길어지며, 오류율이 상승합니다.
기존의 단일 모델 아키텍처는 모든 작업이 동일한 컨텍스트 윈도우를 공유하도록 강제합니다. 에이전트가 A 프로젝트의 검토 규칙, B 프로젝트의 의존성 구성, C 프로젝트의 테스트 프레임워크를 동시에 관리해야 한다고 가정해 보겠습니다. 이 세 가지 규칙은 동일한 메모리 공간 내에서 자원을 놓고 경쟁하게 됩니다.Anthropic이 Claude Code에 서브 에이전트(Sub-Agents)를 도입한 핵심 이유는 바로 이러한 제한을 깨기 위함입니다.
Claude Code의 3가지 기본 내장 서브에이전트 유형과 작동 방식
Anthropic은 Claude Code에 세 가지 전문화된 하위 에이전트 유형을 내장했으며, 각 유형은 특정 엔지니어링 작업을 위해 설계되었다[citation:8]. 이는 단순한 기능 분류가 아니라, 읽기 및 쓰기 권한, 모델 구성, 자동 라우팅 로직에 따른 아키텍처적 차이에 기반한 것이다.
Explore형 서브 에이전트: 읽기 전용 전문가
Explore 유형 프록시의 핵심 제한 사항은 읽기 전용이라는 점입니다. 이 프록시는 전체 코드베이스를 스캔하고, 파일 구조를 분석하며, 의존성 목록을 추출할 수 있지만, 어떤 파일도 수정할 수는 없습니다.
낯선 프로젝트의 아키텍처를 빠르게 파악해야 할 때, Explore 유형의 서브 에이전트가 특히 유용합니다.예를 들어, 신입 개발자가 입사 첫날 50개의 파일로 구성된 Node.js 프로젝트를 맡게 되면, Explore 유형의 서브 에이전트가 30초 이내에 전체 디렉터리 트리 다이어그램과 핵심 모듈 관계도를 생성해 줍니다[citation:4].이러한 읽기 전용 설계는 코드베이스의 보안을 보장하는 동시에 아키텍처를 신속하게 파악할 수 있게 해줍니다.
Modify형 하위 에이전트: 실행 전문가
Modify 유형의 서브 프록시는 쓰기 권한을 가지고 있어 코드를 직접 수정하고, 구성 파일을 업데이트하며, 변경 사항을 커밋할 수 있습니다. 이는 자동화된 코드 리팩토링, 의존성 업그레이드 및 테스트 수정 작업에 적합합니다.
Audit 유형 하위 에이전트: 감사 전문가
Audit 유형의 서브 에이전트는 읽기 및 검증 기능을 결합하여 코드 품질, 보안 취약점 및 규정 준수 문제를 검사할 수 있지만, 파일을 직접 수정할 수는 없습니다.
Subagent 모델 선택의 우선순위와 비용 최적화 전략
Anthropic은 Claude Code에서 서브에이전트가 어떤 모델을 사용할지 결정하기 위해 4단계 우선순위 시스템을 설계했습니다[citation:1].높은 순서부터 낮은 순서로 환경 변수 CLAUDE_CODE_SUBAGENT_MODEL, 단일 호출 시의 model 매개변수, 서브에이전트 정의 내의 model 필드, 마지막으로 메인 대화의 모델 순입니다.
최고 우선순위의 환경 변수를 사용하면 코드를 수정하지 않고도 환경 설정을 통해 모든 서브에이전트의 모델을 전역적으로 전환할 수 있습니다. 이는 비용이나 성능을 신속하게 조정해야 하는 운영 환경에서 특히 유용합니다.
실무적으로 Haiku, Sonnet, Opus 세 가지 모델을 조합하여 구성하면 비용과 성능을 효과적으로 균형 있게 맞출 수 있습니다. 코드 검토(심층적인 의미 분석 필요)는 Opus에, 의존성 검사(규칙 검증)는 Sonnet에, 코드 탐색(빠른 스캔)은 Haiku에 각각 할당합니다.이러한 구성은 전체 비용을 40% 이상 절감하면서도 고품질의 검토 결과를 유지할 수 있습니다.
권한 제어, 도구 접근 및 조건 규칙의 설계 패턴
이는 선택 사항이 아니라, 하위 에이전트가 자신의 권한 범위를 벗어난 작업을 수행하지 못하도록 방지하기 위한 필수적인 설계입니다. 권한 제어는 ‘최소 권한 원칙’에 기반을 두고 있으며, 각 하위 에이전트가 특정 작업을 수행하는 데 필요한 자원과 도구에만 접근할 수 있도록 보장합니다.
도구 액세스 목록은 첫 번째 방어선입니다. 각 하위 에이전트가 사용할 수 있는 도구를 명확하게 정의할 수 있습니다. 감사 에이전트는 파일 및 버전 관리 이력을 읽기만 할 수 있어야 하며, 코드 수정은 금지되어야 합니다. 예를 들어, `git log`, `grep`과 같은 읽기 전용 도구는 허용하되, `git push`, `rm`과 같은 파괴적인 명령어는 금지해야 합니다.
의존성 검사 에이전트는 패키지 관리 도구를 사용하여 버전을 검증해야 하지만, package.json을 직접 수정하는 것은 금지되어야 합니다. 감사 에이전트가 예기치 않게 쓰기 권한을 획득할 경우, 중요한 코드가 실수로 삭제될 수 있으며, 의존성 에이전트가 구성을 수정할 수 있게 되면 호환되지 않는 버전이 도입될 수 있습니다.
조건 규칙은 두 번째 방어선입니다. 논리적 조건을 설정하여 에이전트의 의사 결정을 검증할 수 있습니다. 예를 들어, 수정 에이전트는 코드 변경을 실행하기 전에 정적 분석 검사를 통과해야 하며, 종속성 에이전트는 버전을 업그레이드하기 전에 하위 호환성을 검증해야 합니다. 이러한 조건 규칙은 자동화 프로세스의 보안과 제어 가능성을 보장합니다.
자주 묻는 질문
Sub-Agent의 컨텍스트 크기에 제한이 있나요?
각 서브 에이전트는 독립적인 컨텍스트 환경을 가지고 있습니다 [citation:4]. 이는 다른 에이전트와 대화 이력을 공유하지 않음을 의미합니다.실제로, 주 대화에서 80% 컨텍스트 윈도우를 사용하고 있는 경우, 새로 생성된 서브 에이전트는 완전히 새로운 컨텍스트에서 시작되며 부모 에이전트의 이력을 상속받지 않습니다. 이는 장기 프로젝트를 처리할 때 매우 중요한데, 코드 검토 서브 에이전트가 이전 의존 항목의 검사 로그로 인해 오염되지 않기 때문입니다.
모델 상속의 우선순위는 어떻게 되나요?
모델 선택은 명확한 우선순위 계층을 따릅니다 [citation:1]: 먼저 CLAUDE_CODE_SUBAGENT_MODEL 환경 변수를 확인하고, 다음으로 단일 호출 시의 model 매개변수를 확인하며, 그 다음으로 Sub-Agent 정의 내의 model 필드를 확인하고, 마지막으로 메인 대화의 모델을 확인합니다.명시적으로 지정하지 않은 경우, 서브 에이전트는 기본적으로 메인 대화의 모델을 상속받습니다 [citation:3]. 지원되는 별칭으로는 ‘sonnet’, ’opus’, ’haiku’ 또는 ‘claude-opus-4-8’과 같은 전체 모델 ID가 있습니다 [citation:2].
자동 라우팅이 실패할 때 어떻게 문제를 해결해야 할까요?
세 가지 측면을 확인하십시오. 첫째, 서브 에이전트의 도구 접근 권한이 올바르게 구성되어 있는지 검증하고 [citation:7], 둘째, 조건 규칙의 논리가 실제 작업과 일치하는지 확인하며, 마지막으로 모델 별명이 지원되는 형식을 사용하고 있는지 점검하십시오.흔히 발생하는 원인은 권한 모드가 지나치게 엄격하게 설정되어 서브 에이전트가 필요한 도구에 접근할 수 없는 경우입니다.
여러 Sub-Agent가 하나의 도구를 공유할 수 있나요?
가능하지만, 권한 수준에서 명확하게 정의해야 합니다.서로 다른 서브 에이전트가 동일한 도구에 접근할 수 있지만, 각 서브 에이전트의 권한 범위는 독립적입니다. 예를 들어, 코드 검토용 서브 에이전트는 파일 읽기 권한만 가질 수 있는 반면, 테스트를 실행하는 서브 에이전트는 실행 권한을 가질 수 있습니다. 이러한 계층적 설계는 정보 유출을 방지합니다 [citation:5].
Sub-Agent는 어떤 엔지니어링 시나리오에 적합할까요?
전문화와 재사용성은 핵심 강점이다 [citation:6]. 대표적인 응용 사례로는 정적 분석 전용 에이전트, 의존성 관리 에이전트, 문서 생성 에이전트 등이 있다. 각 에이전트는 단일 영역에 집중함으로써 범용 에이전트보다 정확도가 30~40% 더 높다.관련 주제: 《Subagent 모델 선택의 우선순위 및 비용 최적화 전략》.
결론
Claude Code의 서브 에이전트(Sub-Agents) 아키텍처는 단일 모델로는 복잡한 엔지니어링 과제를 처리하기 어려운 현 상황을 변화시켰습니다. 격리, 전문화, 권한 제어라는 세 가지 핵심 설계 원칙을 통해 개발 팀은 비용 효율성을 유지하면서 더 안정적이고 감사 가능한 자동화 워크플로를 구축할 수 있습니다.격리는 오류가 연쇄적으로 확산되는 것을 방지하며, 전문화는 각 에이전트가 자신만의 전문 분야에 집중하도록 하여 환각 위험을 줄여주고, 권한 제어는 무단 시스템 변경을 방지합니다.실무에서는 적절한 모델 우선순위 선정(고빈도 작업에는 claude-3-5-sonnet, 복잡한 추론에는 claude-3-opus 사용), 명확한 도구 접근 경계 정의, 그리고 에이전트의 의사결정을 검증하기 위한 조건 규칙 수립이 개념을 실제 생산 환경에 적용하는 데 핵심입니다.이는 단순한 기술 업그레이드가 아니라, 소프트웨어 개발 워크플로우의 아키텍처 방식을 재고하는 것입니다.
주요 내용
- 서브 에이전트는 격리와 전문화를 통해 복잡한 엔지니어링 과제에서 단일 AI 에이전트가 겪는 성능 한계를 해결한다.
- 세 가지 기본 유형(코드 실행, 도구 사용, 추론)은 각각 명확한 작동 범위와 비용 특성을 가지고 있다.
- 모델 선택 우선순위와 도구 접근 권한의 설계는 시스템의 안정성과 감사 능력에 직접적인 영향을 미친다.
- 조건 규칙과 권한 제어는 프록시의 권한을 벗어난 작업을 방지하는 방어선이며, 운영 환경에 필수적인 메커니즘입니다.
- 개발부터 배포에 이르기까지, 핵심은 더 많은 모델 기능을 무작정 추가하는 것이 아니라 명확한 에이전트 경계를 정의하는 데 있다.
다음 엔지니어링 프로젝트에서 서브 에이전트(Sub-Agents) 아키텍처를 구현해 보세요. 단일 에이전트의 책임 범위를 정의하는 것부터 시작하여, 권한 제어 및 조건 검증 규칙을 단계적으로 통합해 나가세요. 실천 결과를 @hogan.tech 에게 공유해 주세요.
출처
- 하위 에이전트 모델 선택은 우선순위 계층 구조를 따릅니다. — code.claude.com
- Claude Code Sub agents 기능을 사용하면 독립적인 컨텍스트를 가진 여러 개의 특화된 하위 에이전트를 생성할 수 있습니다. — ithelp.ithome.com.tw
- Claude Code에는 세 가지 내장 서브에이전트 유형이 포함되어 있습니다. — ksred.com
