Improving token efficiency in GitHub Agentic Workflows

개요

GitHub Agentic Workflows의 토큰 효율성을 개선하기 위해 GitHub이 자체 프로덕션 워크플로우를 계측, 비효율성을 파악하고 최적화하는 방법을 설명합니다.

주요 내용

  • 토큰 사용량 로깅: 모든 워크플로우에서 API 프록시를 사용하여 토큰 사용량 데이터를 단일 형식으로 캡처하고, 각 API 호출에 대한 token-usage.jsonl 아티팩트를 생성하여 모델, 제공자, 타임스탬프 및 토큰 유형별 소비량을 추적합니다.
  • 워크플로우 최적화: 'Daily Token Usage Auditor'는 최근 워크플로우 실행의 토큰 사용량 아티팩트를 분석하여 비정상적인 사용량 증가를 감지하고, 'Daily Token Optimizer'는 발견된 비효율성을 해결하기 위한 GitHub 이슈를 생성하고 구체적인 최적화 방안을 제안합니다.
  • 사용되지 않는 MCP 도구 제거: LLM API 호출 시 불필요한 MCP 도구의 JSON 스키마가 컨텍스트에 포함되어 발생하는 과도한 오버헤드를 줄이기 위해, 실제 도구 호출 기록과 도구 매니페스트를 비교하여 사용되지 않는 도구를 제거합니다.
  • GitHub CLI로 MCP 대체: 데이터 페칭 작업(예: PR diff, 파일 내용 조회)에 GitHub MCP 대신 GitHub CLI를 사용하여 LLM 추론 단계를 제거하고, 'Pre-agentic data downloads' 또는 'In-agent CLI proxy substitution' 전략으로 토큰 사용량을 줄입니다.
  • 효율성 측정의 어려움:
  • 토큰 가치 차이: Claude Haiku, Sonnet, Opus 등 모델별 비용 차이를 반영하기 위해 Effective Tokens (ET) 메트릭을 사용하며, 출력 토큰과 캐시 읽기 토큰에 다른 가중치를 부여합니다.
  • 워크로드 변동: 워크플로우가 처리하는 작업의 크기 변화가 토큰 사용량에 영향을 미치므로, LLM API 호출 수와 함께 토큰 수를 추적하여 효율성을 판단합니다.
  • 품질 변화: 최적화로 인해 작업량이 줄거나 다른 모델이 사용될 때 결과물의 품질 변화를 측정하기 어렵기 때문에, 출력 토큰 수, 턴 수, 도구 호출 완료율 등의 프로세스 신호를 근사치로 활용합니다.
  • 초기 결과: 12개 워크플로우 중 9개에서 ET 감소를 확인했으며, 'Auto-Triage Issues'는 62%, 'Security Guard'는 43%, 'Smoke Claude'는 59%의 개선을 보였습니다. 워크플로우 실행 빈도가 높은 워크플로우의 최적화가 더 큰 총 절감 효과를 가져옵니다.
  • 핵심 패턴:
  • 결정론적 데이터 수집: 추론이 필요 없는 단순 데이터 읽기 작업을 LLM 추론 루프 밖으로 옮기는 것이 효율성을 크게 향상시킵니다.
  • 가장 저렴한 LLM 호출은 사용하지 않는 호출: 불필요한 LLM 호출을 제거하는 것이 비용 절감에 중요하며, 워크로드 변화가 실제 최적화 효과를 가릴 수 있습니다.
  • 미사용 도구의 비용: 사용되지 않는 도구를 도구 세트에서 제거하는 것이 컨텍스트 크기를 줄이는 데 도움이 됩니다.
  • 잘못 구성된 규칙의 위험: 사소한 구성 오류가 무한 루프를 발생시켜 막대한 토큰을 소비할 수 있습니다.
  • 향후 계획: 워크플로우 수준에서 시스템 수준 최적화로 확장하고, 에피소드(작업의 작은 단계)별 분석 및 포트폴리오 수준에서의 중복 제거 및 공유 캐싱을 통해 효율성을 높일 계획입니다.

시사점

GitHub Agentic Workflows의 API 프록시 기반 관찰 가능성과 자동화된 감사 및 최적화 워크플로우는 토큰 사용량 모니터링을 개발 초기부터 통합하고, 개별 워크플로우뿐만 아니라 전체 자동화 시스템의 비용 효율성을 고려하는 개발 문화를 조성하는 데 기여합니다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions