GitHub 에이전틱 워크플로의 토큰 효율성 향상 (새 탭에서 열림)
GitHub Agentic Workflows는 반복 실행되는 CI 자동화인 만큼 토큰 비용이 누적되기 쉬우며, YAML과 실행 로그를 분석하면 이를 체계적으로 줄일 수 있다. GitHub는 토큰 사용량을 표준화해 수집하고, 감사·최적화 워크플로를 통해 불필요한 MCP 도구를 제거하거나 GitHub CLI로 대체했다. 그 결과 동작을 바꾸지 않고도 요청당 수천 토큰을 절약할 수 있었다.
토큰 사용량을 표준화해 기록
- Claude CLI, Copilot CLI, Codex CLI 등 에이전트 프레임워크마다 로그 형식이 달라 사용량 비교가 어려웠다.
- 인증 정보를 에이전트에 직접 노출하지 않도록 사용하는 API 프록시를 활용해 모든 실행의 토큰 사용량을 한 형식으로 수집했다.
- 각 워크플로는
token-usage.jsonl아티팩트를 생성한다.- API 호출별 입력 토큰
- 출력 토큰
- 캐시 읽기·쓰기 토큰
- 모델과 제공업체
- 호출 시각
- 실행 로그와 이 데이터를 결합해 워크플로별 일반적인 토큰 소비 패턴과 이상 실행을 파악했다.
감사·최적화 워크플로로 자동 개선
- Daily Token Usage Auditor
- 최근 실행의 토큰 사용량을 워크플로별로 집계한다.
- 사용량이 급증한 워크플로, 비용이 큰 워크플로, 비정상적인 실행을 탐지한다.
- 예를 들어 평소 4번의 LLM 턴으로 끝나던 작업이 18턴까지 늘어난 경우를 표시한다.
- Daily Token Optimizer
- 감사 결과가 나온 워크플로의 YAML과 최근 로그를 분석한다.
- 불필요한 동작과 구체적인 최적화 방안을 GitHub Issue로 제안한다.
- 감사·최적화 도구 자체도 에이전트 워크플로이므로 사용량을 함께 측정할 수 있고, 이를 통해 개선 작업이 반복되는 순환 구조를 만든다.
사용하지 않는 MCP 도구 제거
- LLM API는 상태를 유지하지 않기 때문에 MCP 도구의 함수명과 JSON 스키마가 매 요청에 포함되는 경우가 많다.
- GitHub MCP 서버의 도구가 40개라면 매 턴마다 10~15KB의 스키마가 추가될 수 있다.
- 실제로 두 도구만 사용하는 에이전트라면 나머지 38개 도구의 스키마는 매번 순수한 오버헤드가 된다.
- 도구 설정과 실제 호출 기록을 대조하면 장기간 사용되지 않은 도구를 식별할 수 있다.
- 스모크 테스트에서는 사용하지 않는 MCP 도구를 제거해 요청당 컨텍스트를 8~12KB 줄였고, 동작 변경 없이 실행당 수천 토큰을 절약했다.
데이터 조회를 GitHub CLI로 대체
MCP 호출은 단순한 데이터 조회에도 LLM의 판단 과정을 요구한다.
- 에이전트가 도구를 선택하고 인자를 구성한 뒤 결과를 받는 과정 전체가 추가 LLM 호출이 된다.
- 이 과정에서 도구 스키마, 인자 JSON, 응답 데이터가 모두 토큰을 소비한다.
- 반면
gh pr diff같은 GitHub CLI 명령은 결정적인 API 요청이므로 LLM 추론 단계가 필요 없다.
GitHub는 두 가지 방식으로 MCP 데이터 조회를 CLI로 옮겼다.
- 에이전트 실행 전 데이터 다운로드
- 항상 필요한 PR diff, 변경 파일 목록 등을 에이전트 시작 전에
gh명령으로 가져온다. - 결과를 작업 공간 파일에 저장하고 에이전트가 파일을 읽도록 한다.
- MCP 호출과 별도 추론 라운드트립을 제거하며, 에이전트가 Bash 도구를 활용해 데이터를 효율적으로 처리할 수 있다.
- 항상 필요한 PR diff, 변경 파일 목록 등을 에이전트 시작 전에
- 에이전트 내부 CLI 프록시
- 실행 중 어떤 데이터를 가져올지 에이전트가 결정해야 하는 경우 사용한다.
- 인증 토큰을 노출하지 않는 투명 HTTP 프록시가 CLI 요청을 GitHub API로 전달한다.
- 에이전트는
gh pr view --json같은 명령을 실행하고 구조화된 결과를 받는다. - 보안상 “에이전트에 비밀정보를 직접 제공하지 않는다”는 원칙을 유지하면서 토큰 사용량을 줄인다.
효율성 측정에서 고려할 요소
단순히 토큰 개수만 비교하면 최적화 효과를 정확히 판단하기 어렵다.
- 모델별 토큰 가격이 다르다.
- Claude Haiku와 Sonnet은 비슷한 토큰 수를 사용할 수 있지만 Haiku가 토큰당 약 4배 저렴하다.
- 이를 반영하기 위해 모델과 토큰 종류에 가중치를 적용한 Effective Tokens(ET) 지표를 사용한다.
ET = m × (1.0 × I + 0.1 × C + 4.0 × O)
m: 모델 비용 배수- Haiku = 0.25
- Sonnet = 1.0
- Opus = 5.0
I: 새로 처리한 입력 토큰C: 캐시에서 읽은 토큰O: 출력 토큰- 출력 토큰은 입력 토큰보다 비용 영향이 크므로 4배 가중치를 적용한다.
- 따라서 최적화가 토큰 수를 줄였는지뿐 아니라, 더 저렴한 모델을 사용했는지와 작업 품질을 유지했는지도 함께 평가해야 한다.
반복 실행되는 에이전트 워크플로는 먼저 사용량을 관측하고, 실제 사용 도구만 남기며, 결정적인 데이터 조회를 CLI나 사전 다운로드로 이동하는 방식이 효과적이다. 특히 MCP를 편리하다는 이유로 전체 등록하기보다 워크플로별 최소 도구만 구성하고, ET 같은 비용 반영 지표로 품질 저하 없이 최적화되는지 검증하는 것이 권장된다.