Subagent란?
Subagent(서브에이전트)는 별도의 컨텍스트를 가진, 특정 역할에 특화된 작은 클로드입니다. 메인 세션에서 특정 작업을 서브에이전트에게 위임하면, 그 작업은 독립된 컨텍스트 안에서 처리되고 결과만 메인으로 돌아옵니다.
1. 서브에이전트의 진짜 강점: 별도 컨텍스트
서브에이전트를 단순히 "역할(페르소나)을 부여한 AI" 정도로 생각하기 쉽지만, 그게 핵심이 아닙니다.
사실 여러 연구에서 "당신은 전문가입니다" 같은 역할 부여 프롬프트가 성능에 큰 도움이 되지 않거나, 오히려 떨어뜨리기도 한다는 결과가 보고되었습니다.
- When "A Helpful Assistant" Is Not Really Helpful: https://arxiv.org/html/2311.10054v3
서브에이전트의 가장 강력한 부분은 각 에이전트가 별도의 컨텍스트를 유지한다는 점입니다. 5장에서 배웠듯, 컨텍스트가 길어지면 답변 품질이 떨어집니다. 서브에이전트에게 작업을 위임하면, 그 작업에 필요한 탐색·시행착오가 메인 세션의 컨텍스트를 더럽히지 않습니다. 결과 요약만 메인으로 돌아오므로 메인 컨텍스트가 깨끗하게 유지됩니다.
- 컨텍스트 길이와 성능 저하 연구(NoLiMa): https://arxiv.org/abs/2502.05167
2. 서브에이전트의 구성 요소
각 서브에이전트는 다음을 독립적으로 가질 수 있습니다.
| 요소 | 설명 |
|---|---|
| 별도 컨텍스트 윈도우 | 메인과 분리된 작업 공간 |
| 커스텀 시스템 프롬프트 | 이 에이전트의 역할·지침 |
| 도구 접근 권한 | 사용할 수 있는 도구를 제한/지정 |
3. 언제 서브에이전트를 쓸까?
- 탐색이 많은 작업: 코드베이스를 광범위하게 뒤져 답을 찾는 작업(탐색 과정이 메인을 어지럽히지 않음)
- 반복적인 검증: 작업 후 코드 단순화, E2E 테스트 등
- 병렬 처리: 여러 영역을 동시에 독립적으로 처리
- 특화된 검토: 보안 리뷰, 성능 리뷰 등 관점이 분명한 작업
| 서브에이전트 예시 | 역할 |
|---|---|
| code-simplifier | 작업 완료 후 코드 단순화 |
| verify-app | 앱 동작 E2E 검증 |
| security-reviewer | 보안 취약점 점검 |
Skill vs Subagent
- Skill: "이 작업은 이렇게 처리하라"는 매뉴얼. 같은 세션·컨텍스트 안에서 작동.
- Subagent: "이 작업을 통째로 맡아서 처리하라"는 외주 담당자. 별도 컨텍스트에서 작동.
둘은 함께 쓸 수 있습니다. 서브에이전트가 작업하면서 관련 Skill을 활용할 수도 있습니다.
다음 장에서는 서브에이전트를 직접 만들고 활용하는 방법을 살펴봅니다.