서브에이전트
컨텍스트를 위임하라
한 사람이 직접 모든 자료를 다 뒤지면 책상이 어지러워져요. 같은 일을 부하 직원에게 시키고 요약만 받으면, 책상은 깔끔한 채로 핵심 정보만 손에 쥘 수 있어요. 서브에이전트가 정확히 그 부하 직원이에요.
섹션 3에서 확인한 문제 — 동적 레이어는 정제 없이 쌓여요. 코드베이스를 탐색하면 파일 전체가, 테스트를 돌리면 반복 로그 전체가, 에러가 나면 스택 트레이스 전체가 메인 컨텍스트에 들어와요.
대규모 작업이라면 파일 탐색 수백 회, 테스트 수십 번 — 그것만으로 컨텍스트가 가득 차요. 관련 없는 정보로 오염된 컨텍스트는 LLM의 실효 집중력을 떨어뜨려요.
해법: 작업 위임, 요약 수신
서브에이전트(Sub-agent) 는 메인 에이전트가 생성하는 독립 에이전트예요. 별도의 컨텍스트 윈도우에서 작업을 수행하고, 완료 후 요약된 결과만 메인에게 반환해요.
메인 컨텍스트에 들어오는 것은 요약뿐이에요. 서브에이전트가 내부에서 얼마나 많은 파일을 읽고 로그를 처리했든, 메인은 결과만 받아요.
직접 수행 vs 위임 — 메인 책상에 쌓이는 것
같은 작업을 직접 처리할 때와 위임할 때, 메인 컨텍스트에 들어오는 토큰의 양이 얼마나 다른지 한눈에 보면 이래요.
같은 작업, 같은 결론. 다만 메인 컨텍스트에는 한쪽이 37,000 토큰을 부어 넣고, 다른 한쪽은 두 줄만 받아요. 메인이 이후 작업에서 쓸 수 있는 책상 면적이 차이가 나요.
| 직접 수행 | 서브에이전트 위임 | |
|---|---|---|
| 메인 컨텍스트 증가 | 파일 수백 개 내용 전부 | 요약 단락 하나 |
| 컨텍스트 오염 | 높음 | 없음 |
| LLM 집중력 | 떨어짐 | 유지됨 |
코딩 에이전트에서의 구현 — Claude Code 사례
Claude Code에서 서브에이전트는 Task 도구(또는 문서상 Agent 도구로 지칭되기도 함)로 호출해요. 작업을 위임하고 결과를 즉시 받거나, 시간이 오래 걸리는 일은 백그라운드로 돌릴 수도 있어요.
Task({
description: "코드베이스 탐색",
subagent_type: "Explore", # 탐색에 특화된 서브에이전트 프리셋
prompt: "src/ 디렉토리에서 API 관련 파일을 탐색하고 "
"파일 경로와 핵심 역할만 요약해 반환해줘. 중간 로그 생략.",
run_in_background: false # true로 주면 비동기 백그라운드 실행
})
서브에이전트에 맞는 작업:
- 코드베이스 탐색 (파일 수백 개 검색)
- 반복 테스트 및 에러 로그 분석
- 독립된 유틸리티 구현
- 보안 검토, 의존성 분석
핵심: 서브에이전트 프롬프트에 출력 형식을 명시하세요.
"탐색 후 파일 경로와 핵심 내용만 반환해줘. 중간 과정은 생략."
결과를 통째로 받으면 메인 컨텍스트가 똑같이 오염돼요. 요약 형식을 프롬프트에서 강제하는 것이 서브에이전트 활용의 핵심이에요.
코딩 에이전트에서의 구현 — Codex 사례
Codex CLI 도 같은 위임 메커니즘을 갖고 있어요. 정의는 ~/.codex/config.toml 의 [agents] 테이블에 두고, 세션 안에서는 /agent 슬래시 커맨드로 활성 스레드를 전환해요. 별도 토글 없이 기본 활성이라 설정 파일에 에이전트만 등록하면 바로 써요. 큰 작업을 여러 갈래로 쪼개고 싶을 때는 spawn_agents_on_csv 같은 위임 도구로 분기해요.
# ~/.codex/config.toml
# 서브에이전트 1개 등록 (instructions 는 별도 파일로 분리)
[agents.explore]
description = "코드베이스 탐색 전용"
config_file = "./agents/explore.toml" # 본문은 별도 TOML 파일에
# 분기 한도 — [agents] 글로벌 테이블 직속
[agents]
max_threads = 4 # 동시 실행 스레드 수
max_depth = 2 # 재귀 분기 한도
job_max_runtime_seconds = 600 # 한 서브에이전트 작업 시간 한도
./agents/explore.toml 같은 별도 파일에는 instructions 본문이 들어가요 — 예컨대 "src/ 디렉토리에서 요청한 파일을 탐색하고 파일 경로와 핵심 역할만 한 줄씩 요약해 반환해라. 중간 로그·grep 출력은 절대 본문에 넣지 마라" 같은 한 단락.
# 세션 안에서
/agent explore "src/ 에서 API 관련 파일만 골라줘"
호출 형식은 다르지만 자리는 정확히 같아요 — Claude Code 의 Task 도구가 함수 호출이라면 Codex 는 설정 파일 + 슬래시 커맨드의 짝이에요. 둘 다 별도 컨텍스트 윈도우에서 실행 → 요약만 메인으로 반환이라는 핵심 동작이 동일하고, 작업 시간 / 분기 한도를 잡는 토글이 있다는 점도 닮았어요. Codex 쪽 상세는 Codex 사용 가이드 §5 에서 다뤄요.
두 도구 공통의 핵심: 어느 쪽이든 서브에이전트 프롬프트에 출력 형식을 못박는 한 줄이 결과 품질을 결정해요. "탐색 후 파일 경로와 핵심 내용만 반환, 중간 과정 생략" — 이 한 줄이 빠지면 위임의 의미가 사라져요.