Not a router (한국어)
설치는 한 번이면 됩니다. 이미 쓰고 있는 세션을 그대로 읽으므로, 프롬프트를 쓰는 방식을 바꾸라고 요구하지 않습니다. 요청을 실시간으로 가로채거나 모델을 바꿔치기하지도 않습니다.
라우터가 아닙니다: 60초 설명
설치는 한 번이면 됩니다. 이미 쓰고 있는 세션을 그대로 읽으므로, 프롬프트를 쓰는 방식을 바꾸라고 요구하지 않습니다. 요청을 실시간으로 가로채거나 모델을 바꿔치기하지도 않습니다.
- 되풀이된 실패가 규칙이 됩니다. 처음 겪는 실패는 그냥 작업입니다. 같은 실패가 두 번째로 나타나면 Sprag가 규칙 후보로 알립니다. 적용 범위를 승인하면 그 뒤로는 세션이 시작될 때마다 규칙이 함께 올라옵니다.
- 안전한 작업은 하위 에이전트가 맡습니다. 이력상 안전하다고 확인된 작업과 맞아떨어지면, 더 저렴한 티어로 하위 에이전트를 띄워 처리하고 결과를 메인에게 돌려 검수하게 합니다. 틀려도 겉으로 드러나지 않는 작업은 메인 에이전트가 계속 맡습니다.
- 비용 문제를 미리 알려 줍니다. 캐시 적중률과 TTL 만료, 컨텍스트 증가, 두 가지 사용량 한도를 매 턴 읽어 statusline에 띄웁니다. 아직 손쓸 수 있을 때 보입니다.
실시간 모델 라우팅이 오히려 비용을 키우는 이유
세션 도중에 모델을 바꾸지 않는다는 점이 이 도구의 핵심입니다.
프롬프트 캐시는 모델별로 따로 유지됩니다. 그래서 세션 중간에 더 싼 모델로 전환하면 새 모델은 빈 캐시에서 시작하고, 그때까지 쌓인 대화 전체를 정가로 다시 읽어야 합니다. 캐시 히트는 원래 입력가의 10분의 1 수준이므로, 대화가 2만 토큰만 넘어가도 전환 한 번에 그날 아낀 금액이 통째로 사라집니다. 싼 모델로 옮겼는데 청구서는 더 커지는, 실시간 라우팅의 대표적인 역설입니다.
실제로 라우팅 제품을 만들던 팀들이 같은 이유로 기능을 껐습니다: LLM 라우터를 만든 사람들이 직접 껐습니다 #Shorts
이 도구는 그래서 메인 세션의 모델을 건드리지 않습니다. 서브에이전트 위임만 사용하므로 메인 세션의 캐시는 그대로 유지되고, 위임된 작업만 별도 컨텍스트에서 싼 모델이 처리합니다. 절감액이 캐시 손실로 상쇄되지 않는 이유가 여기에 있습니다.
npm i -g sprag-cli@latest
sprag route-scan # 지난 세션에서 위임 후보 추출 (LLM 호출 없음)
sprag route-scan rules # 승격된 룰 확인 · rm <N> 으로 삭제
sprag route-scan savings # 위임으로 절감한 금액의 근거를 전수 확인
판정 기준선은 다른 사람의 벤치마크가 아니라 사용자 본인의 최근 14일 분포(p25/p75) 로 잡습니다. 위임한 뒤에 실제로 성공했는지까지 측정하는 rule-health는 v3.9.0에 들어갔습니다.