AI 에이전트를 위한 토큰 비용 최적화: 비용을 73% 절감한 7가지 패턴

발행: (2026년 4월 6일 PM 04:15 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

Six months ago our monthly LLM bill at RapidClaw hit a number I’d rather not print. We were running production AI agents across customer workloads, and every “let’s just add one more tool call” quietly compounded into a four‑figure surprise on the invoice.

6개월 전, RapidClaw의 월간 LLM 비용이 제가 말하고 싶지 않은 금액에 달했습니다. 우리는 고객 워크로드 전반에 걸쳐 프로덕션 AI 에이전트를 운영하고 있었고, “툴 호출을 하나 더 추가하자”는 요청이 하나씩 조용히 누적되어 청구서에 네 자리 수의 깜짝 비용을 만들었습니다.

I’m Tijo Bear, founder of RapidClaw. After a quarter obsessing over our own token economics, we cut spend by 73 % — without degrading agent quality. Below are the seven patterns that mattered most.

저는 RapidClaw의 설립자 Tijo Bear입니다. 우리 자체 토큰 경제에 한 분기 동안 몰두한 끝에, 우리는 73 % 비용을 절감했습니다 — 에이전트 품질을 저하시키지 않고. 아래는 가장 중요한 일곱 가지 패턴입니다.

프롬프트 캐싱

매 턴마다 동일한 시스템 프롬프트, 툴 정의, 혹은 RAG 컨텍스트를 보내고 있다면, 모델이 이미 본 토큰에 대해 전체 가격을 지불하고 있는 것입니다. Anthropic, OpenAI, 그리고 대부분의 주요 제공업체는 이제 프롬프트 캐싱을 지원하며, 캐시 히트는 일반 입력 토큰 비용의 약 10 % 수준으로 책정됩니다.

Before (full price)

# 4,200 input tokens/turn at full price
messages = [
    {"role": "system", "content": LARGE_SYSTEM_PROMPT + TOOL_DEFINITIONS},
    {"role": "user", "content": user_input}
]

After (cacheable)

messages = [
    {
        "role": "system",
        "content": [
            {
                "type": "text",
                "text": LARGE_SYSTEM_PROMPT + TOOL_DEFINITIONS,
                "cache_control": {"type": "ephemeral"}
            }
        ]
    },
    {"role": "user", "content": user_input}
]

단 한 줄의 설정만으로 캐시된 부분에서 약 85 %의 비용 절감 효과를 얻었습니다. 오늘 바로 적용하지 않을 이유가 없습니다.

Model routing

Not every task needs your most expensive model. We built a tiny router that classifies incoming agent requests into three buckets and dispatches them to the cheapest model that can plausibly handle the job:

def route_model(task_type: str, context_size: int) -> str:
    if task_type in ("classify", "extract", "format"):
        return "haiku"          # ~$0.25 /M input
    if context_size > 50_000 or task_type == "reason":
        return "sonnet"         # ~$3 /M input
    return "haiku"              # default to cheap

우리는 저렴한 모델이 낮은 신뢰도를 반환하거나 검증에 실패할 때만 더 큰 모델로 확장합니다. 대략 **68 %**의 에이전트 호출이 이제 작은 모델에서 해결되어 다른 최적화보다 더 큰 효과를 냈습니다.

도구 정의 다듬기

도구/함수 스키마도 토큰에 포함됩니다. 감사 결과, 평균 180 토큰씩 설명된 11개의 도구가 있었으며 그 중 절반은 중복된 내용이었습니다. 우리는 다음과 같이 작업했습니다:

  • 각 도구 설명을 가장 핵심적인 한 문장으로 축소했습니다.
  • 작업 예시는 별도의 검색 가능한 문서로 옮겨, 에이전트가 필요할 때만 가져오도록 했습니다.

결과: JSON을 편집하는 것만으로도 회당 약 1,400 토큰을 절감했습니다.

히스토리 압축

단순한 에이전트 루프는 매 턴마다 전체 메시지 히스토리를 전송합니다. 12번째 턴이 되면 1~11번째 턴에 사용했던 토큰을 다시 지불하게 됩니다. 다음 세 가지 기법이 도움이 됩니다:

  1. 슬라이딩 윈도우 – 마지막 N 턴만 그대로 보관합니다.
  2. 요약 압축 – 히스토리가 일정 임계치를 초과하면, 저비용 모델에 오래된 턴을 ~200 토큰 정도의 요약으로 압축하도록 요청합니다.
  3. 메모리 추출 – 사용자 선호, 프로젝트 ID, 결정 사항 등 안정적인 사실을 구조화된 저장소에 옮겨 놓고, 필요한 행만 주입합니다.
def compact_history(messages, threshold=20):
    if len(messages) " in buffer:
        break  # stop paying for more tokens

우리는 “ sentinel이 방출될 때 조기에 중단함으로써 장문 생성 시 22 % 정도의 출력 토큰을 절감했습니다.


자체 호스팅 파이프라인

에이전트 파이프라인의 모든 단계가 최첨단 모델을 필요로 하는 것은 아닙니다. 임베딩, 분류, 재순위 지정, 간단한 추출 작업은 단일 GPU에 배포할 수 있는 작은 오픈 모델로도 월 고정 비용으로 원활히 실행됩니다.

우리는 임베딩과 의도 분류를 자체 호스팅 환경으로 옮겼으며, 그 결과 한계 비용이 사실상 제로로 감소했습니다. 최첨단 모델은 여전히 복잡한 추론을 담당하지만, 주변 파이프라인은 우리가 직접 제어하는 인프라에서 실행됩니다. (자세한 내용은 RapidClaw 블로그의 전체 아키텍처를 참고하세요.)

Contribution breakdown

PatternContribution
프롬프트 캐싱31 %
모델 라우팅19 %
셀프‑호스팅 플러밍11 %
히스토리 압축6 %
툴 정의 트림3 %
루프 캡 + 예산 가드2 %
스트림 쇼트‑서킷1 %

요점

  • 토큰 경제학은 누적됩니다; 평범한 최적화 다섯 개가 한 번의 대단한 최적화보다 낫습니다.
  • 인프라 변경 없이 바로 적용할 수 있는 빠른 승리를 우선시하세요: 프롬프트 캐싱 → 루프 제한 → 모델 라우팅 → 히스토리 압축. 이 네 가지만으로도 약 60 % 절감 효과를 제공합니다.
  • 나머지 패턴들은 시스템을 다듬고 비용을 추가로 절감합니다.

프로덕션 에이전트를 구축하고 있으며 이러한 패턴을 기본으로 적용하는 런타임을 원한다면, 바로 RapidClaw에서 우리가 만들고 있는 것이 바로 그것입니다. 여러분이 자체 스택에서 토큰 경제를 어떻게 다루고 있는지 듣고 싶습니다 — 댓글을 남기거나 연락 주세요.

— Tijo

0 조회
Back to Blog

관련 글

더 보기 »