프롬프트 길이에 따라 라우팅한 LLM 라우터 — 12단어 요청이 프로덕션 에이전트 루프를 망가뜨리다
요약
LLM 라우터 설계 시 단순히 프롬프트 길이에 의존하는 것은 위험합니다. 짧은 요청이라도 도구 정의나 구조화된 출력 제약이 포함되면 높은 능력이 필요하므로, 비용 기반의 라우팅만으로는 에이전트 루프에서 실패를 초래할 수 있습니다. 따라서 능력 플래그(capability flags)와 응답 검증기를 도입하여 요청을 적절한 최소 티어로 보내는 것이 중요합니다.
핵심 포인트
- 라우팅은 프롬프트 길이보다 '능력'에 기반해야 합니다.
- 도구 정의나 JSON 스키마가 있으면 짧아도 높은 능력이 필요합니다.
- 응답 검증기를 추가하여 도구 호출 실패 시 상위 티어로 재시도하는 것이 효과적입니다.
- 최종적으로 에이전트 루프의 안정성과 비용 효율성을 모두 확보했습니다.
제가 자체 OpenAI 호환 채팅 게이트웨이를 구축하면서, 저는 라우팅 계층(routing tiers)이 필요했습니다. 사소한 호출에는 저렴한 모델을, 실제 추론이 필요한 경우에는 프리미엄 모델을 사용해야 했습니다. 첫 번째 휴리스틱은 놀라울 정도로 간단했는데 — 전체 프롬프트 길이였습니다. 약 500자 미만이면 에코 티어(eco tier)로 보내고, 그 이상이면 프리미엄으로 보냈습니다. 저는 제가 작성한 모든 테스트를 통과했습니다.
그러다가 프로덕션에 있는 에이전트가 루프를 돌기 시작했습니다. 같은 요청을 20번이나 반복했지만, 절대 수렴하지 않았습니다. 저는 이 트레이스(trace)를 확인했는데: 사용자 프롬프트는 매우 작았습니다 — “이것을 요약하고 보고서 도구를 호출해 줘”라는 12단어짜리 문장이었습니다. 하지만 그 요청에는 여섯 개의 도구 정의와 JSON 모드 플래그가 포함되어 있었습니다. 제 라우터는 짧은 프롬프트를 보고 가장 저렴한 모델로 전송했고, 이 모델은 일반적인 글쓰기(prose)에는 괜찮았지만 도구 호출(tool calls)에는 신뢰성이 떨어졌습니다. 절반 정도의 경우에 자연어로 답변하는 바람에 아무것도 호출하지 않았고, 에이전트는 이를 실패로 간주하고 재시도하며 루프를 돌게 되었습니다.
배운 점은 이겁니다: 프롬프트 길이는 비용을 측정할 뿐, 능력을 측정하는 것이 아닙니다. 도구 정의나 구조화된 출력 제약(structured-output constraints), 또는 이미지 입력이 있는 요청은 텍스트가 아무리 짧더라도 확실한 능력 하한선(capability floor)을 가집니다. 예산 모델(budget model)은 70%의 확률로 준수할 수 있지만 — 에이전트 루프 안에서 70%의 성공률은 무한대로 증폭되어 결국 실패하게 만듭니다.
해결책을 찾는 데는 오후가 걸렸습니다. 라우터는 이제 먼저 능력 플래그(capability flags)를 확인합니다 — 도구가 선언되었는지? JSON 스키마가 있는지? 이미지가 있는지? — 그리고 그러한 요청들은 검증된 최소 티어(minimum tier)로 보내집니다. 길이는 오직 능력 클래스 내에서만 결정하는 것입니다. 또한 응답 검증기(response validator)를 추가했습니다: 만약 요청이 도구를 선언했는데 답변에 도구 호출이 포함되어 있지 않다면, 호출자에게 쓰레기를 반환하는 대신 한 단계 높은 티어(one tier up)로 재시도하게 합니다.
결과적으로, 도구를 사용하는 에이전트의 루프율은 꾸준한 물줄기에서 사실상 0으로 떨어졌고, 에코 티어 지출액은 거의 변하지 않았는데, 이는 대부분의 실제 트래픽이 도구가 첨부되지 않은 채팅 길이의 프롬프트였기 때문입니다.
저는 이 라우터를 LLM Chat API 형태로 패키징했습니다. 즉, 자동(auto), 경제적(eco), 프리미엄(premium) 등급을 갖춘 OpenAI와 호환되는 단일 엔드포인트(https://x402.freeq.one/tools/llm_chat.html)를 제공합니다. 자동(auto) 등급은 정확히 '기능성 우선, 길이는 차순'이라는 규칙을 인코딩합니다. 만약 툴 호출(tool calls)을 사용하는 에이전트 루프(agent loop)를 구축하고 있다면, 프롬프트 크기만으로 비용 휴리스틱(cost heuristic)에 의해 라우팅되도록 두지 마십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기