본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 15. 05:09

자율 에이전트 스튜디오 운영 중 1억 3,600만 토큰을 소모했습니다. 비용을 90% 절감한 방법

요약

자율 에이전트 운영 중 발생한 막대한 토큰 비용 문제를 분석하고, 이를 90% 절감하기 위한 아키텍처 재설계 원칙을 소개합니다. 컨텍스트 누적과 프롬프트 캐시 만료 문제를 해결하기 위해 모델 라우팅과 비용 효율적인 런타임 구조를 제안합니다.

핵심 포인트

  • 에이전트 세션이 길어질수록 매 턴 전체 컨텍스트를 재전송하여 비용이 기하급수적으로 증가함
  • 프롬프트 캐시 TTL보다 느린 타이머 작동은 캐시 미스를 유발해 비용을 10배 높임
  • 반복적 루프에는 프런티어 모델 대신 저렴한 플래너와 로컬 워커를 사용해야 함
  • 작업의 난이도에 따라 고성능 모델과 저가형 모델로 라우팅하는 전략이 필수적임

저희는 AI 에이전트들이 인간의 개입 없이 주로 작동하는 스튜디오를 운영합니다. 이들은 코드를 작성하고, 웹사이트를 배포하며, 콘텐츠를 생산하고, 계속해서 활동합니다. 이런 식으로 에이전트를 24시간 가동하다 보면 한 가지 사실을 빠르게 깨닫게 됩니다. 바로 비용(bill)이 제품의 제약 조건이라는 것입니다. 모델의 지능이 아닙니다. 비용입니다.

가장 비쌌던 교훈과, 그 비용 지불을 막기 위해 재구축한 아키텍처를 소개합니다.

1억 3,600만 토큰 소모 사건

저희 에이전트 중 하나가 거의 아무것도 생산하지 못하는 과정에서 약 1억 3,600만 토큰을 소모했습니다. 저희는 무분별한 도구 호출(runaway tool calls) 때문이라고 생각했지만, 실제 원인은 아니었습니다.

원인은 지극히 평범하면서도 치명적이었습니다. 에이전트가 타이머를 이용해 스스로 (cron / 예약된 자체 호출 방식) 계속 커지는 세션 안으로 깨어나는 것이었습니다. 여기에 두 가지 요소가 복합적으로 작용했습니다:

  1. 전체 스레드가 매 턴마다 재전송됩니다. LLM은 상태를 유지하지 못합니다(stateless). 긴 에이전트 세션은 '기억'하지 못하며, 전체 대화 내용이 호출할 때마다 입력으로 다시 업로드되어야 합니다. 컨텍스트가 800k 토큰까지 커진 세션은 모델이 문장 두 개를 작성하더라도 매 턴마다 약 800k 개의 입력 토큰을 소모합니다.

  2. 프롬프트 캐시가 만료됩니다. 제공업체들은 재전송 비용을 저렴하게 하기 위해 컨텍스트를 캐싱하지만, 이 캐시는 짧은 TTL(Time To Live, 분 단위)을 가집니다. TTL보다 느리게 작동하는 타이머는 매번 깨어날 때마다 전체 컨텍스트를 캐시되지 않은 상태로 읽어오며, 이는 캐시된 가격의 약 10배에 달합니다.

결국: 캐시 창(cache window)보다 긴 시간 간격으로 작동하는 자체 루프 에이전트가 점점 커지는 스레드를 매번 재전송하고, 그것을 캐싱하지 않은 상태로 영원히 반복합니다. 이것이

진정한 해결책은 비용이 많이 드는 모델을 기본값(default)으로 취급하는 것을 중단하는 것이었습니다. 우리는 네 가지 비용 효율적 원칙(cost-native principles)을 중심으로 런타임(runtime)을 재구축했습니다. 이 원칙들은 전혀 생소한 것이 아니지만, 대부분의 에이전트 프레임워크(agent framework)는 이를 기본값으로 제공하지 않습니다. 왜냐하면 생태계의 대부분은 사용량이 줄어들 때가 아니라, 사용량이 늘어날 때 돈을 벌기 때문입니다.

1. 타이머에 맞춰 프런티어 모델(frontier model)을 스스로 재호출(self-re-invoke)하지 마세요

한 세션 내에서 반복적인 루프를 실행하는 프런티어 모델은 에이전트 운영(agent ops)에서 가장 비용이 많이 드는 단일 패턴입니다. 우리는 이를 금지했습니다. 반복적이고 자율적인 작업은 프런티어 모델을 완전히 배제하고 실행됩니다. 저렴한 플래너(planner)가 목표를 분해하고, 저렴하거나 로컬(local)에서 작동하는 워커(worker)가 실행하며, 결정론적 확인(deterministic check)이 이를 검증합니다. 프런티어 모델은 진정한 인간 수준의 판단(judgment call)이 필요할 때만, 그리고 새롭고 가벼운(fresh, lean) 세션에서 호출됩니다.

2. 모든 단계를 수행할 수 있는 가장 저렴한 모델로 라우팅(route)하세요

이것은 거의 아무도 기본값으로 설정하지 않지만, 가장 강력한 레버(lever)입니다. 에이전트 루프의 대부분의 단계는 기계적입니다: 파일 읽기, 명령 실행, 출력 형식 재구성, 조건 확인 등입니다. 이를 위해 100만 토큰당 15달러짜리 모델이 필요하지 않습니다. 100만 토큰당 0.14달러짜리 모델, 또는 한계 비용(marginal cost)이 거의 0에 가까운 로컬 모델이 필요합니다.

우리는 단계별로 라우팅합니다:

  • 일상적 / 기계적 작업 → 저렴한 API 모델 (DeepSeek, Gemini Flash) 또는 한계 비용이 0인 로컬(local) 모델 (Ollama / MLX).
  • 진정한 추론 / 판단 → 의도적으로, 그리고 오직 그럴 때만 프런티어 모델을 사용.

업계 전반에서 이 패턴을 통해 보고된 절감액은 **60~86%**에 달합니다. 우리의 청구서 또한 약 한 자릿수(an order of magnitude) 정도 감소했습니다. 다음 단계를 추가한다면 품질 저하 비용은 거의 제로에 가깝습니다.

3. 결정론적 검증(deterministic verify)으로 저렴한 작업을 게이트(gate)하세요

저렴한/로컬 모델에 대한 두려움은 품질입니다. 정답은 "저렴한 모델을 믿으라"가 아닙니다. "저렴한 모델이 작업을 수행하게 한 다음, 거짓말을 할 수 없는 무언가로 검증하라"입니다. 테스트 스위트(test suite), 린터(linter), 스키마 체크(schema check), 혹은 종료 코드(exit code) 같은 것들 말이죠. 만약 저렴한 모델의 출력이 결정론적 게이트(deterministic gate)를 통과한다면, 그것은 구조적으로(by construction) 올바른 것이며, 당신은 이를 확인하기 위해 프런티어 모델(frontier model)의 비용을 지불할 필요가 없습니다. 만약 실패한다면, 재시도하거나 상위 단계로 에스컬레이션(escalate)합니다. 이 검증 게이트(verify-gate)가 공격적인 모델 다운시프팅(downshifting)을 안전하게 만드는 핵심입니다.

4. 하드 캡(Hard caps) + 에이전트별 정직한 비용 귀속(attribution)

모든 에이전트는 지출 한도(spend cap) 내에서 실행됩니다. 한도를 초과하면 에이전트는 작업을 중단하며, 무작정 계속 진행하지 않습니다. 또한 우리는 비용을 에이전트별로 귀속(attribute)시킵니다. 따라서 무언가 비용이 너무 많이 발생할 때, 월말에 커다란 숫자 하나를 멍하니 바라보는 대신, 정확히 어떤 에이전트가 왜 비용을 많이 썼는지 알 수 있습니다. (1억 3,600만 토큰의 화재가 보이지 않았던 이유는, 루프가 실행되는 동안 비용을 귀속시키는 장치가 전혀 없었기 때문입니다.)

나머지 절반: 매 세션마다 세상을 다시 유도(re-derive)하지 마세요

컨텍스트 재전송(context-resend) 문제에는 캐싱(caching) 외에 두 번째 해결책이 있습니다. 세션을 짧고 가볍게 유지하고, 연속성(continuity)을 하나의 무한한 스레드(thread)가 아닌 지속 가능한 파일(durable files)에 담는 것입니다. 우리의 에이전트들은 자신의 상태(state), 결정(decisions), 그리고 메모리(memory)를 디스크에 기록합니다. 새로운 세션은 50만 토큰의 히스토리를 다시 업로드하는 대신, 중요한 내용이 담긴 작은 요약본(digest)을 읽습니다. 짧은 스레드가 저렴한 스레드입니다.

왜 이것이 어디에서도 기본값(default)이 아닌가

저렴한 모델로 라우팅(routing)하는 것이 60~90%를 절약할 수 있다면, 왜 모든 에이전트 프레임워크가 이를 기본적으로 제공하지 않을까요?

인센티브(Incentives) 때문입니다. 대형 에이전트 프레임워크와 관측성(observability) 도구들은 **사용량(usage), 시트(seats), 그리고 트레이스(traces)**를 통해 수익을 창출합니다. 즉, 당신의 토큰 사용량이 늘어날 때 그들도 성장합니다. 모델 제공업체들 역시 당신이 자신들에게 비용을 적게 쓰는 것에서 이득을 얻지 않습니다. 따라서 에이전트 엔지니어링에서 가장 가치 있는 비용 절감 레버(cost lever)는 가치 사슬(value chain) 내의 그 누구도 기본 기능으로 출시할 동기가 없는 것입니다. 결국 그것은 당신의 몫으로 남겨집니다.

그것이 바로 우리가 우리의 런타임(runtime)을 오픈 소스로 공개한 이유 전부입니다.

요약(The takeaway)

프런티어 모델(frontier model)만으로는 진정한 에이전트 네트워크를 운영할 수 없습니다. 마진(margin)을 모두 까먹게 될 것입니다. 제대로 작동하는 아키텍처는 다음과 같습니다:

  • 진정한 판단(judgment)을 위해서만, 새로운 가벼운 세션(lean sessions)에서 오직 프론티어 모델(frontier model)을 사용합니다.
  • 그 외의 모든 것은 저렴한 모델이나 로컬 모델(local models)로 라우팅(routing)합니다.
  • 저렴한 모델을 사용하더라도 정확성을 유지할 수 있도록 결정론적 검증 게이트(deterministic verify-gate)를 둡니다.
  • 에이전트별 엄격한 한도(caps) 설정 및 실제 비용 귀속(attribution)을 적용합니다.
  • 하나의 무한한 스레드(thread) 대신 연속성을 위한 지속 가능한 파일(durable files)을 사용합니다.

우리는 1억 3,600만 토큰을 허공에 날려버리며 이 사실을 배웠습니다. 여러분은 그럴 필요가 없습니다.

우리는 비용 효율적이고(cost-native), 모델에 구애받지 않는(brain-agnostic) 에이전트 런타임(agent runtime)을 공개적으로 구축하고 있습니다 (어떤 에이전트든 로컬 모델, 저렴한 API, 또는 프론티어 모델에서 실행 가능하며, 동일한 코드와 동일한 격리 환경을 제공합니다). 만약 이 런타임이나 더 심도 있는 사후 분석(postmortems)을 원하신다면, 계속 지켜봐 주세요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0