Show GN: Gemma4 2b 모델을 사용하여 Codex, Claude Code 토큰 비용을 99% 아껴주는 무손실 로컬 라우터 token-router 스킬
(github.com/sleeplesshan)안녕하세요,
평소 클로드 코드(Claude Code)나 코덱스(Codex) 같은 AI 에이전트를 활용해 대용량 로그를 분석하거나 레거시 코드를 수정할 때, 순식간에 차오르는 토큰 비용과 지연 시간 때문에 고민하셨던 분들을 위해 제가 만든 스킬을 공유합니다.
대용량 파일을 다룰 때 "탐색은 로컬에서 무료로, 추론은 클라우드에서 고성능으로" 처리하는 하이브리드 컨텍스트 라우터인 token-router입니다.
🛑 어떤 문제를 해결하나요?
2,000줄이 넘는 인프라 배포 로그나 거대한 소스코드 파일을 클라우드 LLM에 통째로 넣으면 입력 토큰이 엄청나게 낭비되고 대기 시간도 길어집니다.
이를 아끼려고 소형 모델로 코드를 미리 요약하기도 하지만, 이 방식은 위험합니다. 에러 한 줄이나 변수 정의가 누락되는 순간 클라우드 AI가 맥락을 잃고 엉뚱한 오답을 내기 때문입니다.
그리고 최신 버전에서는 여기에 더해, 매 턴마다 반복적으로 붙는 긴 CLAUDE.md, AGENTS.md, .cursorrules 같은 정적 에이전트 지침 파일도 라우팅 대상으로 확장했습니다. 다만 이미 자동으로 주입된 긴 root 파일의 토큰 비용을 사후에 줄이는 것은 불가능하므로, root 지침 파일은 짧게 유지하고 긴 작업별 규칙은 별도 reference 파일로 분리한 뒤 필요할 때만 라우팅하는 구조를 권장합니다.
🧠 어떻게 해결하나요? (사용자 관점의 작동 방식)
이 툴은 텍스트를 요약하지 않고 철저하게 원문을 필요한 만큼만 오려내는 방식을 사용합니다.
- 로컬 탐색 (Local Triage): 내 컴퓨터에서 Ollama를 통해 가벼운 Gemma 4 2B 모델을 사용하여 돌립니다. 이 로컬 모델은 유저의 질문에 맞는 정확한 라인 번호(좌표)만 빠르게 찾아냅니다.
- 원문 추출 (Raw Slicing): 파이썬 스크립트가 해당 라인 번호를 바탕으로 디스크에서 원본 그대로의 깨끗한 텍스트 조각을 오려냅니다.
- 클라우드 추론 (Reasoning): 메인 클라우드 모델은 불필요한 노이즈가 제거된 고밀도의 원문 조각과 파일 구조 지도만 받아서 디버깅과 코드 작성에만 집중합니다.
가공되지 않은 원문 그대로를 전달하기 때문에, 클라우드 모델의 추론 능력을 100% 활용하면서 비용만 획기적으로 줄일 수 있습니다.
현재는 error_log, heavy_code, agent_context 세 가지 모드를 지원합니다. agent_context는 긴 CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules, agent-context/*.md 같은 에이전트 지침 참조 문서에서 현재 작업과 관련 있는 원문 라인만 찾아오는 모드입니다.
📊 실제 제 PC에서 테스트한 결과
- 대용량 인프라 로그 (2,000줄): 입력 컨텍스트를 41,711 토큰에서 131 토큰으로 감소 (99.69% 절감, 처리 시간 5.37초).
- 레거시 버그 소스코드 (2,155줄): 원래 7,520 토큰 분량을 단 70 토큰으로 압축해 전달 (99.06% 절감, 처리 시간 4.46초).
🛠️ 실무에서 쓸 때 편했던 점들
- PC 버벅임 차단: 로컬 AI를 쓰면 컴퓨터가 느려질까 봐 걱정되실 텐데요. 이 툴은 라우팅 좌표 추출이 끝나는 정확한 그 순간 로컬 모델을 VRAM 메모리에서 즉시 해제합니다.
- 똑똑한 역방향 맥락 확장: 만약 잘라온 코드가 너무 좁아 앞뒤 의존성 파악이 어렵다면, 클라우드 AI가 대충 찍어서 답변하지 않고 스크립트에 "더 넓은 범위를 다시 오려오라"고 역요청하는 프롬프트 안전장치를 심어두었습니다.
- 대용량 파일 스트리밍: 파일이 너무 커서 로컬 모델의 메모리 용량을 초과하더라도, 백엔드에서 키워드와 파일 끝부분을 먼저 스캔하는 스트리밍 로직이 알아서 작동하므로 안전합니다.
- Claude Code 지원: 최신 버전에는 Claude Code용 compact
CLAUDE.mdbootstrap도 포함했습니다. 긴 Claude 전용 지침은 별도 reference 파일로 두고agent_context로 라우팅하는 방식으로 사용할 수 있습니다.
MIT 라이선스로 전면 무료 공개되어 있으며, 독립형 스크립트나 OpenAI Codex의 스킬 형태로 바로 등록해 쓸 수 있습니다. Claude Code에서도 CLAUDE.md bootstrap을 참고해 같은 라우터 스크립트를 호출할 수 있습니다. 대용량 로그 디버깅이나 무거운 코드를 자주 다루시는 분들의 개발 생산성에 도움이 되었으면 좋겠습니다.
아키텍처나 프롬프트 최적화에 대해 다양한 피드백과 의견 주시면 감사하겠습니다!
댓글과 토론
좋은 스킬이네요 가볍게 써봤습니다.
파이썬으로 던질 json 생성할 때 json 문법을 어겨 오류가 나는 케이스가 간혹 발생하여 4b나 qwen2.5-coder:7b로 변경하여 써봤을 땐 오류율이 현저히 줄어들었습니다.
오, 올리자마자 바로 테스트해 주시고 구체적인 모델 체급별 비교 피드백까지 남겨주셔서 정말 감사합니다!
말씀해 주신 대로 2B 급 초소형 모델들은 가끔 복잡한 로그나 특수문자가 섞인 환경에서 시스템 프롬프트 제약을 깨고 문법을 어긴 JSON을 출력하는 한계가 있을 것 같습니다. VRAM 자원에 여유가 있다면 확실히 Qwen 2.5 Coder 7B나 Gemma 4B 계열이 라우팅 좌표를 훨씬 안정적으로 뽑아내 주는 것 같습니다.
혹시 다른 분들도 테스트하시다가 JSON 문법 오류를 겪으신다면, 환경 변수 설정을 통해 다음과 같이 더 큰 체급의 모델로 변경하여 실행해 보시면 활용에 더 도움이 될 것 같습니다.
OLLAMA_MODEL=qwen2.5-coder:7b python3 scripts/router.py ...
소중한 실전 벤치마크 의견 공유해 주셔서 감사합니다.