Claude Code에 '서브 에이전트를 사용해서'라고 쓰는 것은 그만두세요. 288회 측정 결과, 발견량은 동일하지만 비용만 최대 221%
요약
Claude Code 2.1.318의 서브 에이전트 기능 사용에 대한 성능 분석 결과가 발표되었습니다. 측정 결과, '서브 에이전트를 사용하라'는 지시를 추가해도 발견율은 동일하지만, Opus 모델 기준 비용이 최대 221%까지 증가하는 것으로 나타났습니다. 또한, CI/CD 환경에서 정확한 결과를 얻으려면 모든 `result` 이벤트를 읽어 처리해야 합니다.
핵심 포인트
- 서브 에이전트 사용 지시는 발견율 개선 없이 비용과 시간만 늘립니다.
- Opus 모델의 경우 서브 에이전트를 사용하면 서브 에이전트도 Opus로 작동합니다.
- 일반적인 코드 검색에는 서브 에이전트 관련 지시를 넣지 않는 것이 효율적입니다.
- CI/CD나 스크립팅 환경에서는 모든 `result` 이벤트를 읽어 처리해야 합니다.
Claude Code 2.1.318에서 새로운 설정인 서브 에이전트의 노력도(effort)(CLAUDE_CODE_SUBAGENT_EFFORT)가 추가되었습니다. 검색을 Explore 서브 에이전트에 맡기고 노력도를 높이면 더 많은 것을 찾아낼 수 있을 것 같습니다.
그래서 288회 측정해 보았습니다. 결과는 변함없고, 비용만 증가했습니다.
- 발견 비율: 모든 조건에서 97~100%. 차이는 2포인트 미만이었습니다.
- 1회당 비용: Haiku 5.5는 74
116% 증가. Opus 5.5는 143221% 증가. - 시간: 2~3배.
- 서브 에이전트 모델: 항상 메인과 동일했습니다. Opus가 호출하면 서브 에이전트도 Opus입니다.
오픈 소스 레포지토리 6개(undici, fastify, cachetools, Python-Markdown, anyio, zod)를 대상으로 '모든 곳에서 찾기' 질문을 12가지 만들었습니다. 예를 들어, 'lib/에서 RequestAbortedError를 생성하는 모든 곳을 나열하고, 이를 감싸고 있는 함수를 작성해라'와 같은 것입니다.
정답은 정규 표현식(regex)과 파서로 사전에 추출했습니다. 총 151개 항목입니다. Claude Code 2.1.318을 헤드리스(headless) 모드로 구동하고, 읽기 및 검색 도구만 허용했습니다. Haiku 5.5와 Opus 5.5를 각각 3회씩 사용했습니다. (12가지 질문 × 2개 모델 × 4가지 조건 × 3회 = 288회).
| 조건 | 변경된 점 |
|---|---|
| 지시 없음 | 질문만 제공 |
| 서브 에이전트 low / medium / high | '검색은 서브 에이전트(Explore)로 수행하고, 최종 답변은 스스로 작성하라'를 추가하고, 서브 에이전트의 노력도를 low·medium·high로 설정 |
첫 실행 전에 질문 및 정답(sha256), 판정 기준(15점)을 GitHub에 사전에 등록했습니다.
| 조건 | Haiku 발견 비율 | Haiku 1회당 비용 | Opus 발견 비율 | Opus 1회당 비용 |
|---|---|---|---|
| 지시 없음 | 98% | 0.0056달러 | 100% | 0.16달러 |
| ... |
노력도를 높여도 검색 성능은 좋아지지 않았습니다. Opus의 경우 medium이 high보다 비용이 더 많이 들었습니다.
지시가 없을 때, Claude Code는 스스로 서브 에이전트를 호출한 적이 단 한 번도 없었습니다. 이번 72회 측정에서도 0회였고, 이전 504회 측정에서도 0회였습니다.
2.1.318에서는 Explore 에이전트가 백그라운드에서 작동합니다. 따라서 claude -p로 실행하면, 한 번의 실행으로 여러 개의 result 이벤트가 발생합니다.
- '검색 에이전트는 백그라운드에서 작동하고 있습니다. 결과가 돌아오면 목록을 정리하겠습니다.'
- 실제 정답.
- 때때로 '조사는 끝났고 할 일이 없어서 자율 루프를 중단했습니다.'
서브 에이전트를 사용한 216회 중 210회는 첫 번째 result에 답변이 없었습니다. 첫 결과만 읽는 스크립트로는 답의 0~9%밖에 받을 수 없습니다. 마지막 결과만 읽어도 누락되는 경우가 있습니다. 마지막 결과가 '루프를 중단했다'라는 메시지일 수 있기 때문입니다. Haiku 4회 측정에서는 답변을 한 후 20분 동안 종료되지 않았습니다.
저 역시 처음에는 마지막 결과만 채점하다가 이 점을 깨달았습니다. 그래서 모든 result를 연결하여 채점하도록 변경했고, 그 이유를 사전에 등록했습니다. 두 가지 방식 모두 공개하고 있습니다.
CI나 스크립트에서 Claude Code에 서브 에이전트를 사용하게 하려면, 모든 result 이벤트를 읽어야 합니다.
- 일반적인 코드 검색에는 '서브 에이전트를 사용해서'라는 지시를 넣지 마세요. 비용과 시간만 늘어날 뿐입니다.
- Opus에서 서브 에이전트를 사용하면, 서브 에이전트도 Opus가 됩니다.
- 서브 에이전트의 노력도는 기본값으로 두세요. 본인의 작업으로 효과를 확인했을 때만 변경하는 것이 좋습니다.
지시가 없어도 두 모델 모두 거의 모든 것을 찾아냈기 때문에, 개선할 여지는 작았습니다. 레포지토리는 중규모라서, 거대한 모노레포에서는 다를 수도 있습니다. 지시문은 1종류, 버전도 1개였으며, 각 조건별로 3회씩 테스트했습니다.
288회 전체(세 가지 채점 방식, 비용, 시간, 서브 에이전트 호출 및 모델, 모든 답변 텍스트)를 CC BY 4.0 라이선스로 공개합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기