피드로 돌아가기
I Rebuilt Git in Zig to Save AI Agents 71% on Tokens
Dev.toDev.to
Backend

I Rebuilt Git in Zig to Save AI Agents 71% on Tokens

Zig으로 개발한 nit이 Git 명령어의 token 출력을 71% 감소시키면서 1.64배 속도 향상

Fielding Johnston2026년 3월 26일7intermediate

Context

AI agents가 git 명령어(status, diff, log, show)를 지속적으로 호출하며 실제 코딩 세션 3,156개에서 git이 459,000 tokens의 출력을 생성했다. 이는 전체 shell 명령어의 7.4%를 차지하며, git의 출력이 인간을 위한 verbose headers, instructional text, column padding, decorative formatting으로 설계되어 있어 AI 에이전트에게 불필요한 토큰 비용과 레이턴시를 초래했다.

Technical Solution

  • Zig과 libgit2를 활용한 native git 대체 도구 nit 개발: 서브프로세스 오버헤드 없이 git object database를 직접 읽음
  • 기계 최적화된 compact 기본값 구현: 색상, 그룹화, 장식적 formatting 제거
  • Fallthrough 설계로 미구현 명령어는 execvpe() 를 통해 git으로 자동 전달: 함수 호출 오버헤드 없음
  • U1 (1줄 context) 실험: diff context를 3줄에서 1줄로 감소시키되, 27회 시험과 561개 실제 세션에서 AI 이해도 검증
  • 78개 conformance 테스트로 detached HEAD, merge commits, renamed files, binary diffs, submodules 등 git의 edge cases 처리
  • 두 가지 출력 모드: compact(기본값, 기계 최적화) 및 human(-H 플래그, 색상/그룹화)

Impact

  • status: 125 tokens → 36 tokens (71% 감소)
  • log -20: 2,273 tokens → 301 tokens (87% 감소)
  • diff: 1,016 tokens → 657 tokens (35% 감소)
  • show --stat: 260 tokens → 118 tokens (55% 감소)
  • 실제 세션 데이터 기준 150~250K tokens 절감
  • status 명령어 속도 13.7ms → 8.4ms (1.64배 향상)
  • diff 명령어 속도 14.3ms → 9.9ms (1.44배 향상)
  • show 명령어 속도 10.2ms → 7.3ms (1.39배 향상)

Key Takeaway

서브프로세스 호출 제거와 기계 친화적 출력 포맷 설계를 통해 동일한 기능성을 유지하면서 비용과 성능을 동시에 개선할 수 있으며, passthrough 아키텍처는 점진적 마이그레이션과 단계별 최적화를 가능하게 한다.


AI 에이전트나 LLM 기반 애플리케이션이 외부 CLI 도구를 반복적으로 호출하는 환경에서, 기존 도구의 출력을 기계 친화적 형식으로 줄이면(verbose 텍스트 제거, 데이터만 반환) token 비용을 30~87% 절감하면서 응답 레이턴시를 40~64% 단축할 수 있다.

원문 읽기