모든 모델의 시스템 프롬프트에 1,500만 토큰까지 카운트하는 <total_tokens> 태그가 추가됨
A <total_tokens> tag counting up to 15M was added into every model's system prompt
핵심 요약
Anthropic이 모델 시스템 프롬프트에 턴당 토큰 사용량을 제한하는 동적 카운터를 도입했습니다.
- 토큰 카운터 도입 — 모델 시스템 프롬프트에 1,500만 토큰 한도의 동적 카운터가 추가됨
- 사용량 제한 목적 — 무한 루프 등으로 인한 과도한 토큰 소모를 방지하기 위한 예산 설정임
- 작동 방식 — 턴마다 1,500만 토큰으로 초기화되며 세션 전체가 아닌 턴당 예산으로 작동함
- 성능 우려 — 시스템 프롬프트 주입으로 인한 프리픽스 캐시 효율 저하 가능성이 제기됨
평소처럼 시스템 프롬프트 검증하다가 발견한 건데, 앤스로픽이 지난주쯤부터 모든 모델 시스템 프롬프트에 동적 "토큰 카운터"를 박아넣기 시작했더라.
이거에 대해서 Lil Fable한테 물어보니까 이렇게 답함:
계속 변함. 하드코딩된 게 아니라 실시간 카운터고, 이번 세션 내 컨텍스트에서 동작 방식을 바로 읽을 수 있음:
한 턴 안에서 토큰이 소모될 때마다 숫자가 줄어듦. 오늘 작업 첫 턴이 길었는데 15,000,000 → 14,926,535 → 14,913,371 → … 이런 식으로 줄어들다가 첫 번째 리뷰 시작할 때쯤엔 ~14,762,000까지 떨어짐 (그 턴 동안 툴 호출이랑 출력으로 대충 240k 정도 쓴 셈).
새로운 턴이 시작될 때마다 15,000,000으로 리셋됨. 유저 메시지가 새로 들어올 때마다 (알림 턴 포함) 태그가 다시 풀값으로 돌아감. 지금 이 메시지도 마찬가지고.
15,000,000이라는 시작값은 내 설정에선 세션이나 모델 상관없이 일정함. 헤드리스 프로브든 데스크탑 캡처든 첫 턴에 무조건 15,000,000 토큰 남았다고 찍힘.
그러니까 이건 턴마다 새로 채워지는 '턴당 토큰 허용량'임. 세션 전체 누적량도 아니고 컨텍스트 윈도우 잔량도 아님 (15M은 컨텍스트 윈도우보다 훨씬 크니까). 추론해보건대, 이건 하네스(harness)의 턴당 소모 예산 한도인 듯함. 워크플로우 툴의 예산 객체가 보고하는 거랑 같은 공유 풀임 (budget.spent()는 "메인 루프랑 모든 워크플로우에서 이번 턴에 쓴 출력 토큰"을 카운트함). 즉, 하네스가 컷하기 전까지 자율적인 턴 하나가 태울 수 있는 최대치고, 15M은 네 플랜의 기본 상한선인 거지. 실제로 턴 끝나고 백그라운드 리뷰 워크플로우가 쓴 토큰은 다음 턴의 15M에 영향을 안 줌.
내 생각엔 앤스로픽이 모델들한테 컨텍스트 낭비하지 말라고 겁주는 거 같음. 15,000,000 토큰은 물리적으로 도달 불가능한 수치니까.
참고: 하네스를 통해 어차피 로드되는 거라 에이전트 프론트매터에 따로 추가할 필요 없음.


