에이전트 운영 시리즈 세 번째예요. 오늘은 돈 얘기예요. 운영하다 보면 꼭 듣는 질문이 있어요. "지난달보다 비용이 두 배인데 왜죠?" 이 질문에 5분 안에 답할 수 있어야 해요.
청구서로는 답이 안 나와요
LLM 제공사 청구서는 모델별 토큰 합계예요. "어느 기능이", "어느 고객이", "어느 프롬프트 버전이" 늘렸는지는 안 나와요. 그래서 호출 단위로 비용을 계산하고 귀속시켜야 해요.
호출 하나의 비용
4월 7일 글에서 트레이스 스팬에 토큰 수를 넣었죠. 거기에 단가표를 곱하면 호출 비용이에요.
cost = input_tokens × 입력 단가
+ output_tokens × 출력 단가
+ cache_read_tokens × 캐시 읽기 단가
+ cache_write_tokens × 캐시 쓰기 단가
단가표는 모델·날짜별로 버전 관리해요. 단가가 바뀌면 과거 비용은 그 당시 단가로 남아 있어야 하니까요. 셀프호스팅 모델(vLLM 등)은 토큰 단가가 없어서 GPU 시간 비용을 토큰당으로 환산한 추정 단가를 써요. 추정이라는 표시를 붙이고요.
귀속 차원
비용 하나에 이런 라벨을 붙여요. 전부 트레이스 스팬 속성에서 와요.
| 차원 | 예 | 어디서 |
|---|---|---|
| 기능 | 계약서 추출, 보고서 요약, 질의응답 | 루트 스팬 이름 |
| 테넌트/고객 | 고객사 ID | 요청 컨텍스트 |
| 프롬프트 버전 | v42 | makeai.prompt_version |
| 모델 | 모델 이름 | gen_ai.request.model |
| 단계 | 계획 / 실행 / 검증 | 자식 스팬 이름 |
| 결과 | 성공 / 실패 / 재시도 | 스팬 상태 |
"결과" 차원이 의외로 중요해요. 실패하거나 재시도한 호출의 비용은 낭비예요. 이게 전체의 몇 %인지가 첫 번째로 볼 숫자예요.
대시보드 화면 구성
위에서부터 이 순서예요.
- 이번 달 총액과 전월 대비. 당연히 맨 위.
- 낭비 비율. 실패·재시도·타임아웃 호출의 비용 비율. 10%를 넘으면 빨간색.
- 차원별 전월 대비 증감. 기능별, 고객별, 프롬프트 버전별로 "누가 얼마나 늘렸나". 두 배가 됐을 때 여기서 범인이 보여요.
- 호출당 평균 비용 추이. 호출 수가 늘어서 비용이 는 건 정상이에요. 호출당 비용이 늘었으면 프롬프트나 모델이 바뀐 거예요.
- 토큰 분포. 입력 토큰이 큰 호출 상위 목록. 문서 전체를 매번 넣고 있는 기능이 여기서 걸려요.
실제로 잡은 "두 배"의 원인들
저희가 겪은 사례들이에요.
- 프롬프트 버전 변경. "예시를 3개 더 넣자"고 했더니 모든 호출의 입력 토큰이 늘었어요. 호출당 비용 추이 그래프에서 배포 날짜에 계단이 생겨요.
- 재시도 폭주. 외부 도구가 간헐적으로 실패하자 에이전트가 최대 재시도까지 계속 돌았어요. 낭비 비율이 하루 만에 30%가 됐어요.
- 한 고객의 사용 패턴. 특정 고객이 밤에 배치로 대량 돌리기 시작했어요. 정상이지만 미리 알았으면 단가 협의를 했겠죠.
- 캐시 미적중. 시스템 프롬프트에 날짜를 넣어서 매일 캐시가 깨졌어요. 캐시 읽기 비율 그래프가 매일 0으로 떨어지는 걸 보고 알았어요.
예산과 알림
대시보드는 보는 사람이 있어야 의미가 있어요. 저희는 세 가지 알림을 둬요.
- 일 비용이 최근 7일 평균의 1.5배를 넘으면
- 낭비 비율이 15%를 넘으면
- 특정 테넌트의 월 누적이 계약 한도의 80%에 닿으면
알림엔 "어느 차원이 늘었는지" 상위 3개를 같이 보내요. 그래야 보고 바로 움직일 수 있어요.
셀프호스팅 비용도 같이 보세요
폐쇄망 고객은 API 비용이 없는 대신 GPU 비용이 있어요. 저희는 같은 대시보드에 GPU 사용률과 시간당 환산 비용을 넣어서, API 모델과 셀프호스팅 모델을 같은 단위로 비교할 수 있게 했어요. "이 기능은 작은 자체 모델로 돌리는 게 싸다"는 판단을 데이터로 하려면 이게 필요해요.
정리
- 비용은 청구서가 아니라 호출 단위로 계산하고 귀속하세요.
- 낭비 비율(실패·재시도)을 첫 번째 지표로 두세요.
- "호출 수가 늘었나, 호출당 비용이 늘었나"를 분리해서 보세요.
- 알림에 원인 후보를 같이 보내세요.
다음 주는 저희 업무 자동화 에이전트 "뚝딱"의 설계 노트예요. 계획-승인-실행 구조를 왜 그렇게 만들었는지요.