지난 2월에 '클로드 코드(Claude Code)의 내장 Explore 서브 에이전트는 Haiku 고정'이라는 기사가 퍼졌습니다. 그런데 지난주 2.1.318 버전으로 측정했을 때, Opus 세션의 Explore는 모두 Opus로 작동하고 있었습니다.
둘 다 맞는 내용이었습니다. 언제 변경되었는지 알아보기 위해 클로드 코드의 26개 버전을 대상으로 205회 실행했습니다.
- 2.1.197까지: Explore는 매번 Haiku로 작동했습니다.
- 2.1.198부터: 메인 세션과 동일한 모델로 작동합니다.
- Opus 사용 시 비용: 서브 에이전트에게 맡긴 코드 검색 1회당 비용이 0.18달러에서 0.37달러로 (105% 증가) 올랐습니다.
- 대책:
CLAUDE_CODE_SUBAGENT_MODEL=haiku<br><br>와 CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1<br><br>두 가지를 모두 설정했습니다. 36회 모두 Haiku로 돌아왔고, 비용은 60% 절감되었으며, 찾아낸 답도 동일했습니다.
오픈 소스 리포지토리(undici, fastify, cachetools, Python-Markdown, anyio, zod)에 대해 '모든 곳을 찾기' 질문을 하고 Explore 서브 에이전트를 사용하도록 지시했습니다. 헤드리스(claude -p) 환경에서 읽기 및 검색 도구만 사용했습니다. 서브 에이전트의 모델은 로그에 남는 서브 에이전트 자체 메시지와 모델별 비용으로 확인했습니다.
- 버전 추적: 2.1.0부터 2.1.318까지 18개 버전을, 이후 사이의 버전들은 이진 탐색(binary search)을 통해 확인했습니다. 메인 모델은 Opus 4.5로 고정했습니다 (Opus 5.5는 2.1.280 미만에서는 API가 수신하지 않기 때문에).
- 설정 비교: 2.1.318과 Opus 5.5에서, 12개의 질문을 각각 3번씩, 3가지 설정으로 실행했습니다.
실행 전 GitHub에 사전 등록하고, 두 번의 수정 사항을 날짜와 함께 기록했습니다 (그중 하나는 저의 실수입니다).
| 설정 | Explore 모델 | 발견 비율 | 1회당 비용 |
|---|
| 기본값 | Opus 5.5 | 100% | 0.38달러 |
CLAUDE_CODE_SUBAGENT_MODEL=claude-haiku-5-5만 설정 | Opus 5.5 | 99% | 0.37달러 |
CLAUDE_CODE_SUBAGENT_MODEL=haiku + CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 | Haiku 5.5 | 100% | 0.15달러 |
모델 지정만으로는 Explore가 바뀌지 않았습니다. 공식 문서와도 일치합니다. CLAUDE_CODE_SUBAGENT_MODEL은 기본값에 불과하며, FORCE(2.1.257 이상)를 통해서 모든 서브 에이전트에 적용됩니다. 프로젝트에 model: haiku의 Explore 서브 에이전트를 배치하는 방법도 적혀 있지만, 이는 시도하지 않았습니다.
settings.json 파일의 경우 다음과 같습니다.
{ "env": { "CLAUDE_CODE_SUBAGENT_MODEL": "haiku", "CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1" } }
FORCE는 Explore뿐만 아니라 모든 서브 에이전트에 영향을 미칩니다.
첫 번째 이진 탐색에서는 2.1.176에서 변경되었다고 나왔습니다. Haiku를 찾는 정규 표현식(regular expression)이 로그 형식에 맞지 않아, 항상 'Haiku가 아니다'라고 판정하고 있었기 때문입니다. 원본 로그를 보니 2.1.176~2.1.186도 모두 Haiku였습니다. 판정을 수정하여 다시 찾아보고, 사전 등록 내용에 수정한 것으로 기록했습니다. 오판한 횟수도 데이터에 남겨두었습니다.
버전별로 질문이 2개씩이라 어떤 모델이 작동했는지는 알 수 있지만 품질까지는 말할 수 없습니다. PC 한 대, 계정 하나, 지시문 하나입니다. 기본값은 또 바뀔 수도 있습니다.
205회 전체(모델, 비용 내역, 발견 비율, 모든 답변)를 CC BY 4.0으로 공개하고 있습니다.