토큰 효율 진단 (2026-09-21)

7월 말부터 9월 21일까지 Claude Code 309세션, Codex 360세션의 토큰 로그를 직접 집계한 결과와, 그걸로 바꾼 규칙.

점수 55/100 — 캐싱은 A, 컨텍스트 위생은 D

항목실측점수
캐시 적중률Claude 97.9%, Codex 97.5%. 캐시 덕에 87% 절감9
컨텍스트 크기호출당 평균 317K, peak 중앙값 235K. 400K 이상 호출 34%가 비용 54%3
턴당 비용10 → 9월 중순 $3.66
일간 지출중앙값 13). 구독이라 실제 제약은 한도 소진2
subagent 위임컨텍스트의 33%가 sidechain, 최근 15%로 하락6
도구 위생같은 파일 중복 Read 48%6
사고/effortthinking이 output의 38%, effort max 17%5
피처 단위9월 lane 중앙값 318·85턴7

무엇이 떨어져 있었나

  • 비용 구성이 cache read 50%, cache write 40%, output 10%. 사고 토큰을 줄여봐야 10%가 상한이고, 결국 “매 호출 다시 읽는 컨텍스트 크기”가 전부다.
  • 세션이 길수록 산출물이 비싸진다. 출력 1K당 1턴 세션 0.40.
  • multi-session-dev를 써도 절감이 안 나왔다. lane은 $0.12/1K로 싸지만, lane을 띄운 Lead 세션이 350~650K까지 커져 지출의 87%를 썼다. 실행만 분리됐고 계획·통합은 여전히 긴 세션이었다.
  • Codex도 창이 258K로 고정인데 턴당 토큰은 Claude와 같다(3.9M). 턴당 tool call 28.5회.

어떻게 고쳤나 (ai-working 31cec881)

  1. 계획 세션과 lane 실행 세션 분리. 계획 세션은 plan과 계약 파일을 ~/.local/state/multi-session-dev/plans/에 저장하고 끝낸다. 새 세션이 그 두 파일만 읽고 lane을 띄운다.
  2. 계약 파일에 결정·기각한 대안·발견한 제약을 필수로 적는다. 안 그러면 새 세션이 조사를 반복한다.
  3. 컨텍스트 상한은 강제 안 함(내 결정). phase 경계에서만 세션을 나눈다. 1시간 넘게 대기하면 캐시 TTL이 끝나므로 그때도 새 세션.
  4. lane 검증 명령은 전체 로그를 파일에 남기고 컨텍스트엔 실패 줄만. 판정은 exit code로.
  5. lane 하나면 스킬 안 씀. 모델·effort는 안 낮춤(성능 우선).

안 한 것과 남은 것

  • 일간 지출은 $로 관리 안 한다. 구독이라 실제 제약은 429(4.5%)이고 계정 회전이 답.
  • CLIProxyAPI는 토큰을 안 남긴다. 필요하면 request-log 켜기.
  • 긴 세션이 품질을 떨어뜨렸다는 건 내 데이터로 증명 못 했다. Anthropic의 “context rot” 문서가 근거. 2주 뒤 gate 리뷰 FAIL·lane 재시도 횟수로 확인.

정본: 에이전트 토큰 효율