# SubAgent: Search

## 목적

Search 서브에이전트는 가벼운 읽기 전용 탐색 에이전트입니다. 코드베이스를 이해해야 할 때 — 무언가가 어디에 있는지 찾고, 컴포넌트가 어떻게 맞물리는지 배우고, 구조적 질문에 답해야 할 때 — 파일을 변경하지 않고 디스패치하십시오. 많은 파일에 걸친 많은 작은 읽기에 최적화되어 있으며, 원시 검색 출력이 아닌 간결한 요약을 반환합니다.

Search는 범용 어시스턴트가 아닙니다. 코드를 편집하거나, 빌드를 실행하거나, 변경을 커밋하거나, 읽기 전용 가져오기를 넘어 네트워크 연결을 열 수 없습니다. 그 가치는 메인 에이전트의 컨텍스트를 소비하지 않고 병렬로 큰 탐색 예산을 소모한 다음 간결한 답변을 돌려줄 수 있다는 것입니다.

## 사용 시점

- 세 가지 이상의 서로 다른 검색이나 읽기가 필요한 질문에 답해야 합니다. 예: "로그인 라우트에서 세션 저장소까지 인증이 어떻게 연결되어 있나요?"
- 대상이 알 수 없음 — 어떤 파일, 모듈, 또는 심볼을 볼지 아직 모릅니다.
- 변경하기 전에 저장소의 낯선 영역에 대한 구조적 개요가 필요합니다.
- 여러 후보를 상호 참조해야 합니다 (예: 여러 유사하게 명명된 헬퍼 중 어떤 것이 실제로 프로덕션에서 호출되는지).
- 문헌 스타일 요약이 필요합니다: "X를 가져오는 모든 곳을 나열하고 호출 사이트별로 분류하세요."

Search를 사용하지 말아야 할 때:

- 정확한 파일과 줄을 이미 알고 있습니다. `Read`를 직접 호출하십시오.
- 단일 `Grep`이나 `Glob`이 질문에 답할 것입니다. 직접 실행하십시오. 서브에이전트를 디스패치하면 오버헤드가 추가됩니다.
- 작업에 편집, 명령 실행, 또는 어떤 부작용이든 필요합니다. Search는 설계상 읽기 전용입니다.
- 도구 호출의 정확한 원문 출력이 필요합니다. 서브에이전트는 요약하며 원시 결과를 프록시하지 않습니다.

## 철저함 수준

질문의 중요성에 맞는 수준을 선택하십시오.

- `quick` — 몇 가지 대상을 지정한 검색, 최선의 답변. 빠른 포인터가 필요하고 (예: "환경 변수 파싱 로직은 어디에 있나요?") 답변이 불완전하면 반복하는 것이 편안할 때 사용하십시오.
- `medium` — 기본값. 여러 라운드의 검색, 후보 상호 확인, 가장 관련 있는 파일을 완전히 읽기. 일반적인 "이 영역을 이해하는 데 도움을 주세요" 질문에 사용하십시오.
- `very thorough` — 철저한 탐색. 서브에이전트는 모든 그럴듯한 단서를 추적하고, 주변 컨텍스트를 읽고, 요약하기 전에 결과를 두 번 확인합니다. 정확성이 중요할 때 (예: 보안 검토, 마이그레이션 계획) 또는 불완전한 답변이 재작업을 초래할 때 사용하십시오.

더 높은 철저함은 서브에이전트 내부에서 더 많은 시간과 토큰을 소비하지만, 그 토큰은 서브에이전트 내부에 머뭅니다 — 최종 요약만 메인 에이전트로 반환됩니다.

## 사용 가능한 도구

Search는 메인 에이전트가 사용하는 모든 읽기 전용 도구에 접근할 수 있으며, 그 외에는 없습니다:

- `Read` — 부분 범위를 포함한 특정 파일 읽기.
- `Grep` — 트리 전체의 콘텐츠 검색.
- `Glob` — 이름 패턴으로 파일 찾기.
- 읽기 전용 모드의 `Bash` — 변이 없이 상태를 검사하는 명령 (예: `git log`, `git show`, `ls`, `wc`).
- `WebFetch`와 `WebSearch` — 해당 컨텍스트가 필요할 때 외부 문서 읽기.

편집 도구 (`Write`, `Edit`, `NotebookEdit`), 상태를 수정하는 셸 명령, 작업 그래프 도구 (`TaskCreate`, `TaskUpdate` 등)는 의도적으로 사용할 수 없습니다.

## 참고사항

- Search 서브에이전트에게 주제가 아닌 특정 질문을 제공하십시오. "`renderMessage`의 모든 호출자를 나열하고 어떤 것이 커스텀 테마를 전달하는지 기록하세요"는 유용한 답변을 반환합니다. "렌더링에 대해 알려주세요"는 그렇지 않습니다.
- 서브에이전트는 요약을 반환합니다. 정확한 파일 경로가 필요하면 프롬프트에서 명시적으로 요청하십시오.
- 여러 독립 질문은 하나의 긴 프롬프트보다 병렬 Search 서브에이전트로 디스패치하는 것이 가장 좋으므로 각각이 집중할 수 있습니다.
- Search는 편집할 수 없으므로 변경할 것을 알게 되면 메인 에이전트의 후속 편집 단계와 짝을 지으십시오.
- Search 출력을 근거가 아닌 증거로 취급하십시오. 하중이 실리는 것에 대해서는 행동하기 전에 인용된 파일을 직접 여십시오.
