4 min read

AI 미세팁: 설정 한 줄로 클로드 코드 토큰 아끼기

includeGitInstructions: false 를 넣읍시다.

우연히 최근 올라온 클로드 코드 이슈 하나를 봤습니다. includeGitInstructions 설정(기본값 true), 또는 CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS 미설정이 캐싱 효율을 크게 떨어뜨린다는 내용이었는데요.

[BUG] uncachable system prompt caused by includeGitInstructions / CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS -> `git status` · Issue #47107 · anthropics/claude-code
What’s Wrong? session to session generally only the “tools” block will hit a cache the last system section contains a git status output that will change very frequently making the “skills” as well…

저는 git status 는 깃 상태가 깨끗하면 동일한데 왜 이게 문제가 되지? 라는 의문점이 생기기도 했고, 또 오늘 새벽 Opus 4.7과 함께 업데이트된 최신버전 (2.1.112) 에서도 재현되는지 궁금해서 간단한 실험을 해봤습니다.

실험 결과는: 설정 변경 1줄로 모든 요청에서 캐시 읽기 약 1,700 토큰이 줄어들고 새 세션 시작 또는 git commit 등으로 저장소 상태가 바뀔 때마다 추가로 발생하던 약 6,000 토큰 캐시 쓰기가 사라집니다.

실험 과정은 이 gist에 올려두었습니다. 직접 실험해보실 분들을 위한 참고 스크립트도 있습니다. 본인 머신에서 적용하고 싶으신 분은 클로드에게 "글로벌로 includeGitInstructions: false 설정해줘" 라고만 하시면 돼요.

Claude Code includeGitInstructions cache miss reproduction (issue #47107)
Claude Code includeGitInstructions cache miss reproduction (issue #47107) - _CLAUDE_CODE_GIT_INSTRUCTION_EXPERIMENT.md

참고로 클로드 공식문서에는 해당 설정에 대해 이렇게 나와있어요.

Include built-in commit and PR workflow instructions and the git status snapshot in Claude’s system prompt (default: true). Set to false to remove both, for example when using your own git workflow skills. The CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS environment variable takes precedence over this setting when set.

여기서 built-in commit and PR workflow instructions 이 캐시 읽기 1700토큰 차이를 발생시키고, git status snapshot 이 캐시 쓰기 6000토큰 차이를 발생시키는 것이죠. 특히 후자는 단순 git status 출력(미추적 파일 추가, 추적 파일 수정)만 보는 게 아니라 최근 커밋 목록과 브랜치도 보기 때문에 더 치명적입니다.

전자는 제거됨으로써 클로드가 커밋과 PR을 쓰는 방식이 조금 더 멍청해질 수도 있겠다는 생각은 드는데요. 곰곰이 생각해보면

  • 관리되는 저장소: 이미 자신만의 커밋/PR 컨벤션이 있을 것
  • 관리 안 되는 저장소: 커밋이 어떻게 되든 뭔 상관?

... 같은 느낌이라 별 손해가 아닐 것 같습니다.

여기서부터 시작해, 클코와 코덱스에서 기본 설정을 바꿈으로써 토큰 효율을 높이는 방법을 광범위하게 조사해서 정리 중이니 다음 글을 기대해주세요.