두 개인 줄 알았는데 셋입니다
새 에이전트 하네스를 비용 추적에 붙이는 일은 두 가지로 보입니다.
- 그 CLI 의 사용량 포맷을 읽는 파서
- 그 세션을 추적기로 보내는 라우팅
둘 다 명백하고 둘 다 쉽습니다. 그리고 세 번째 배선 지점이 있습니다.
에이전트가 spawn 될 때 "이 세션 추적을 시작하라" 를 쏘는 자리입니다. 저희 시스템에서는 그 킥오프가 하네스 이름의 명시적 목록으로 게이트돼 있었습니다.
새 하네스가 들어왔습니다. 파서 정상, 라우팅 정상, 킥오프 목록에는 없음. 그래서 추적기가 아예 만들어지지 않았습니다. 비용 행 0건.
사용량 데이터는 그동안 세션 파일에 완벽하게 그대로 있었습니다.
파서를 읽어도, 라우팅을 읽어도 못 찾습니다. 둘 다 맞기 때문입니다.
진단 지문
이 버그는 증상이 특이해서, 알고 나면 몇 분 만에 잡힙니다.
첫째 — 다른 건 다 정상입니다. 이벤트도 나오고 티켓 결과도 기록됩니다. 오직 그 하네스의 비용 테이블만 비어 있습니다. 그래서 "수집이 안 되는 것"처럼 안 보이고 "그 하네스가 원래 싼가?" 로 오해하기 쉽습니다.
둘째 — 신규 spawn 은 잃고 재연결은 안 잃습니다. 이게 결정적인 단서입니다.
콜드부트 재연결 경로는 대개 저장된 상태에서 모델을 그대로 넘겨주기 때문에, 우연히 다른 분기를 탑니다. 그래서 재시작 후에는 비용이 찍히고 새로 띄우면 안 찍히는 비대칭이 생깁니다.
비대칭이 보이면 파서가 아니라 진입 경로를 의심하십시오.
규칙 — 목록을 하나로 만든다
비용 추적 대상 하네스 집합을 단일 소스로 두고, 파서·라우터·spawn 킥오프가 모두 거기를 읽게 하십시오.
하네스 목록이 세 곳에 나타나면 세 곳이 서로 달라집니다. 예외 없습니다. 지금 목록이 몇 군데 있는지 세어보는 것으로 충분한 점검이 됩니다.
등록 안 된 모델 ID 가 요금을 지어낸다
같은 영역에서 더 조용한 문제가 하나 더 있습니다.
가격 조회가 모르는 모델 ID 에 기본 요율을 돌려주면, 등록하지 않은 모든 모델이 그 기본값으로 청구됩니다.
무슨 일이 벌어지냐면 — 무료 로컬 모델에 중급 호스팅 요금이 쌓입니다. 그리고 라우팅이 그 숫자를 보고 학습합니다. 가진 것 중 가장 싼 것을 피하도록 최적화됩니다.
모르는 모델 ID 는 경고와 함께 0 이거나 하드 에러여야 합니다. 조용한 기본 요금은 절대 안 됩니다.
무료·로컬 모델을 붙이기 전에 고쳐야 합니다. 붙인 다음에 고치면 그동안 쌓인 가짜 비용이 이미 판단을 오염시킨 뒤입니다.
로컬 모델에서 비용 모델이 깨지는 자리
로컬 모델을 붙일 때 실제로 무는 함정이 하나 더 있습니다.
:cloud 접미사가 붙은 모델은 로컬이 아닙니다. 벤더의 호스팅 티어이고,
유료 플랜에 동시성 제한이 걸려 있습니다. 이걸 한계비용 0 으로 취급하면 그 위에
세운 비용 모델이 통째로 오염됩니다.
이름이 비슷해서 같은 카탈로그 행에 들어가기 쉽습니다. 접미사 하나로 과금 성격이 갈립니다.
구독인지 종량인지는 인증 방식이 정한다
비용을 다루다 보면 "이 벤더는 구독인가 종량인가"를 분류하게 되는데, 여기서도 한 번 틀렸습니다.
한 벤더를 공개 API 가격표를 근거로 "종량제"로 분류하고 제외했습니다. 틀렸습니다. 그 벤더의 CLI 는 브라우저에서 계정 플랜으로 인증합니다 — 1st party CLI 들과 똑같습니다. 가격표는 같은 회사의 다른 제품을 설명하고 있었습니다.
가격표가 아니라 인증 흐름으로 분류하십시오. 브라우저·계정 로그인이면 구독 하네스이고, 환경변수에 붙여넣는 API 키면 종량 과금입니다.
정리
| 자리 | 증상 | 규칙 |
|---|---|---|
| spawn 킥오프 목록 | 그 하네스만 비용 0. 신규는 잃고 재연결은 안 잃음 | 하네스 목록을 단일 소스로 |
| 모르는 모델 ID | 무료 모델에 요금이 쌓이고 라우팅이 회피 학습 | 경고와 함께 0, 조용한 기본값 금지 |
:cloud 접미사 | 호스팅 티어를 한계비용 0 으로 계산 | 접미사로 과금 성격이 갈린다 |
| 벤더 분류 | 가격표를 보고 구독을 종량으로 오분류 | 인증 흐름으로 판단 |
비용 귀속을 직접 배선하는 대신 Marblo 는 티켓마다 어떤 모델이 얼마를 썼는지를 Usage 탭에서 보여줍니다. 구독료는 오케스트레이션만 커버하고 AI 사용료는 연결한 각 제공사가 별도로 청구하므로, 그 숫자가 실제 청구서와 같은 것을 가리킵니다.
전문은 공식 리포지토리의 Fleet Operations 지식팩에 공개돼 있습니다. 저희가 측정한 것과 틀렸던 것이 함께 적혀 있습니다.
같은 운영에서 나온 다른 글
- 에이전트가 일하는 중인지 어떻게 아나 — PTY 출력이 양방향으로 틀리는 이유
- resume 플래그는 하네스마다 다르고, 틀리면 프로세스가 죽는다 — 세션 재개 계약 실측 표