Claude Code 서브에이전트를 Kimi K3 / DeepSeek V4 Flash로 네이티브하게 돌리기
목차
대상 독자
- Claude를 구독 플랜(Pro/Max)으로 결제해 CLI(Claude Code)로 사용하는 사람
- 주간 한도(weekly limit)가 빡빡해서 아쉬움을 느끼는 사람
- API 종량제 과금을 쓸 각오가 있는 사람
배경
오픈모델이 프론티어를 따라잡기 시작했다
2026년 7월 31일, DeepSeek V4 Flash 정식 버전이 릴리스되었습니다. 화제가 된 건 성능과 가격의 조합입니다. 에이전트 계열 벤치마크 9종 전부에서 자사 상위 모델인 V4 Pro를 앞질렀습니다. Terminal-Bench 2.1에서는 82.7을 기록했습니다. Artificial Analysis의 Intelligence Index에서는 GPT-5.6 Luna (max)와 불과 1포인트 차이인데 태스크당 비용은 약 60% 저렴하다는 평가입니다. 그런데도 API 가격은 입력 $0.14 / 출력 $0.28 그대로 유지되었습니다.
2026년 7월 16일에는 Kimi K3가 공개되었습니다(오픈 웨이트는 7월 27일 Hugging Face에 공개). Artificial Analysis Intelligence Index 기준으로 Kimi K3가 약 57, Claude Fable 5가 약 60입니다. 공통 평가 35개 중 Fable 5가 22승, K3가 12승을 거뒀는데 K3는 장기 호라이즌(long-horizon) 코딩, Automation Bench, BrowseComp, SpreadsheetBench 2에서 앞섰습니다. 종합 성능은 Fable 5가 위지만 영역에 따라서는 K3가 앞서는 구도입니다.
API 가격
100만 토큰당 가격입니다.
| 모델 | 입력 | 출력 |
|---|---|---|
| Claude Fable 5 | $10.00 | $50.00 |
| Claude Opus 5 | $5.00 | $25.00 |
| Claude Opus 4.6 | $5.00 | $25.00 |
| Claude Sonnet 5 | $3.00 | $15.00 |
| Kimi K3 | $3.00 | $15.00 |
| Claude Haiku 4.5 | $1.00 | $5.00 |
| DeepSeek V4 Flash | $0.14 | $0.28 |
Claude Sonnet 5는 2026년 8월 31일까지 프로모션 가격(출력 $10.00)이 적용됩니다. Kimi K3는 캐시 히트 시 입력 가격이 더 내려가고, DeepSeek V4 Flash는 캐시 히트 시 입력이 $0.0028까지 떨어집니다.
이 표를 보면 두 가지를 알 수 있습니다.
- Kimi K3는 Claude Sonnet 5와 정확히 같은 가격입니다. 그러면서도 Fable 5에 육박하는 성능을 냅니다.
- DeepSeek V4 Flash의 출력 단가는 Sonnet 5의 약 54분의 1입니다. 자릿수가 두 개 차이 납니다.
그래서 무엇이 달라지는가
Claude 구독자 상당수는 비싼 Fable이나 Opus를 오케스트레이션 역할로 쓰고 Sonnet이나 Haiku를 서브에이전트로 돌리는 방식으로 API 요금과 주간 한도를 아껴 쓰고 있을 겁니다.
이 서브에이전트 자리를 Kimi K3나 DeepSeek V4 Flash로 바꾸면, Sonnet과 같거나 더 낮은 비용으로 Sonnet보다 나은 모델을 서브에이전트로 쓸 수 있게 됩니다. 오케스트레이션은 Opus 그대로 두고 손이 많이 가는 구현이나 조사만 저렴한 모델에 넘기는 구성이 가능해집니다.
문제점
그런데 현재 Claude와 다른 모델을 연동하는 데에는 장벽이 있습니다.
Claude와 Codex를 같이 쓰는 사람이라면 이 장벽을 이미 겪어봤을 겁니다. Claude에게 "Codex한테 이 작업 시켜줘"라고 요청해서 Codex를 bash로 실행하게 하는 식으로 말이죠. 오픈모델과의 가장 간단한 연동도 Codex 연동과 같은 방식입니다. opencode 같은 CLI에 DeepSeek이나 Kimi의 API 키를 설정해 두고 Claude가 그 CLI를 호출해 지시를 내리는 방법입니다.
하지만 이 방법은 네이티브 연동이 아니라서 다음 문제가 생깁니다.
- agent view에 나오지 않는다. 같은 터미널에서 뭐가 돌고 있는지 한눈에 볼 수 없다.
- 완료 알림이 오지 않는다. 주기적으로 Claude를 깨워 로그를 확인하러 가는 폴링(polling)이 필요해진다.
- 실행 중인 세션에 추가 지시를 보낼 수 없다. 잘못된 방향으로 가도 멈출 수 없다.
이게 꽤 곤란합니다. 특히 세 번째가 치명적입니다. 엉뚱한 방향으로 달려가는 에이전트를 잠자코 지켜보든가, 포기하고 세션을 죽이든가 둘 중 하나를 골라야 합니다.
동작 원리
브리지는 로컬 전단 프록시(proxy.mjs, 기본 127.0.0.1:8787)입니다. ANTHROPIC_BASE_URL을 로컬 프록시로 돌리되 OAuth 구독 인증은 유지하고, 모델명이 deepseek*이면 api.deepseek.com, kimi*/moonshot*이면 api.moonshot.ai로 OpenAI chat/completions 형식으로 변환해 보냅니다. 그 외 모델은 api.anthropic.com으로 무수정 중계합니다. 즉 Anthropic으로 가는 트래픽에는 손대지 않고, "Anthropic에 존재하지 않는 모델명" 요청만 가로채는 구조입니다. proxy.mjs의 PROVIDERS 배열에 항목을 추가하면 다른 OpenAI 호환 프로바이더도 붙일 수 있습니다.
요구 환경
macOS 12.3 이상 또는 Linux(Windows는 미지원 — WSL로 우회 필요), Claude Code native build(2.1.226에서 확인), Node.js 18 이상이 필요합니다. claude를 직접 실행하면 브리지를 거치지 않으므로 기존과 똑같이 동작하지만, 그 상태에서 deepseek/kimi 모델을 지정하면 "존재하지 않는 모델" 에러가 납니다.
알아둘 제약
- Remote Control(
/rc) 사용 불가. Claude Code는ANTHROPIC_BASE_URL이 api.anthropic.com이 아니면 Remote Control을 비활성화하며, 우회 방법이 없습니다. RC가 필요한 세션은claude로, 서브에이전트 연동이 필요한 세션은claude-ds로 나눠 쓰는 게 공식 가이드입니다. VS Code 확장도 같은 제약을 받습니다. - Anthropic의
cache_control(프롬프트 캐싱)은 무시됩니다. 대신 DeepSeek/Kimi 자체의 prefix cache는 동작합니다. - DeepSeek V4 Flash는 Vision 미지원이라 이미지 입력이 버려집니다(Kimi K3는 지원).
- 스트리밍 시 툴 호출 인자는 확정 후 일괄 전송되므로, 툴 입력이 실시간으로 타이핑되듯 보이는 표시는 지원되지 않습니다.
_CLAUDE_CODE_ASSUME_FIRST_PARTY_BASE_URL은 Claude Code 내부 플래그라서 본체 업데이트로 언제든 깨질 수 있습니다. 업데이트 후에는 동봉된verify.sh실행이 권장되는데, 이 스크립트는 실제 API를 호출하므로 소액의 요금이 발생합니다. 무료로 돌릴 수 있는 회귀 테스트는regress.py입니다.- README 명시: 이 소프트웨어는 Anthropic과 무관하며 승인받지 않은 서드파티 도구입니다. 구독 인증을 유지한 채 프록시를 끼워 넣는 구성이므로, 업무용 계정에 도입하기 전에는 이용약관 관점의 리스크도 감안하는 게 좋습니다.
해결책
Kimi K3나 DeepSeek V4 Flash를 Claude Code의 모델로 선택할 수 있게 해주는 래퍼를 만들었습니다.
https://github.com/gaebalai/cc-model-bridge
설치는 명령어 3개면 끝납니다.
git clone https://github.com/gaebalai/cc-model-bridge.git
cd cc-model-bridge
./install.sh
API 키를 설정합니다. DeepSeek과 Kimi 중 하나만 있어도 동작합니다.
$EDITOR ~/.claude/model-bridge/.env
export DEEPSEEK_API_KEY=...
export KIMI_API_KEY=...
API 키는 DeepSeek은 platform.deepseek.com, Kimi는 platform.moonshot.ai에서 발급받을 수 있습니다. 두 곳 모두 선불 충전 방식이며, 한국에서 발급된 Visa/Mastercard 해외 결제 카드로 충전이 가능합니다.
이제 claude 대신 claude-ds로 실행하기만 하면 됩니다.
claude-ds
이렇게 하면 Claude Code 안에서 다음과 같이 서브에이전트를 호출할 수 있습니다.
Agent(subagent_type="deepseek", prompt="...") # DeepSeek V4 Flash가 동작
Agent(subagent_type="kimi", prompt="...") # Kimi K3가 동작
네이티브 서브에이전트로 동작하기 때문에 agent view 목록에 함께 표시되고 백그라운드 실행 완료 알림이 도착하며 실행 중에도 추가 지시를 보낼 수 있습니다. 앞서 말한 세 가지 문제가 한꺼번에 해결됩니다. 메인 루프는 Claude 그대로고 구독 로그인도 그대로입니다.
메인 모델로 쓸 수도 있습니다.
claude-ds --model kimi-k3[1m]
모델명 뒤의
[1m]접미사는 컨텍스트 길이 힌트입니다. Claude Code는 모르는 모델을 200K 컨텍스트로 가정하는데,[1m]을 붙이면 1M으로 취급합니다(접미사는 API 전송 전에 제거됨). 또한 브리지는 기본적으로max_tokens를 65,536으로 클램프하므로, DeepSeek V4 Flash의 상한(393,216)까지 쓰려면BRIDGE_MAX_TOKENS=393216 claude-ds로 실행하면 됩니다.
마치며
claude로 평소처럼 실행하면 래퍼를 거치지 않으므로 기존과 똑같이 동작합니다. 맞지 않으면 claude로 돌아가기만 하면 원래 상태입니다.
Claude Code 본체에는 손을 대지 않았기 때문에 본체 업데이트도 그대로 적용됩니다. 업데이트 후에 통합이 살아 있는지 확인하는 스크립트도 함께 들어 있습니다.
한국의 기업 환경에서 도입할 때는 한 가지 주의할 점이 있습니다. DeepSeek과 Kimi(Moonshot AI)는 모두 중국계 API 서비스라서, 서브에이전트로 넘기는 프롬프트와 코드가 해당 업체 서버로 전송됩니다. 사내 코드나 고객 데이터를 다루는 조직이라면 보안·컴플라이언스 정책상 외부 전송이 허용되는 범위인지 먼저 확인하는 것이 좋습니다. 개인 프로젝트나 오픈소스 작업에서는 문제가 되지 않습니다.
이 글이 도움이 됐다면 추천해 주세요