Antigravity 2.0에서 Gemini를 모든 OpenAI 호환 모델로 교체하는 방법
요약
Google Gemini에 종속된 에이전트 기반 코딩 IDE Antigravity 2.0을 OpenAI 호환 모델로 교체하기 위한 TypeScript 프록시 구축 방법을 소개합니다. 컨텍스트 최적화, 양방향 데이터 변환, 메타데이터 보완을 통해 다양한 외부 모델을 사용할 수 있도록 구현했습니다.
핵심 포인트
- Gemini 전용 메타데이터를 OpenAI 형식으로 변환하는 프록시 구축
- 4,000 토큰 규모의 불필요한 인라인 컨텍스트 제거 및 압축 참조 주입
- Antigravity Desktop 충돌 방지를 위한 필수 응답 필드(safetyRatings 등) 추가
- NVIDIA NIM 등 외부 모델을 활용한 에이전트 기능(코드 생성, 브라우저 자동화) 검증
Antigravity 2.0은 Google의 에이전트 기반 코딩 IDE (agentic coding IDE)입니다. 이 도구는 AI 에이전트에게 파일 시스템 접근 권한, MCP 도구, 서브에이전트 오케스트레이션 (subagent orchestration), 그리고 브라우저 자동화 기능을 제공합니다. 매우 강력하지만, Gemini에 종속되어 있습니다.
저는 다른 모델들을 사용하고 싶었습니다. 그래서 프록시 (proxy)를 구축했습니다.
문제점
Antigravity는 모든 요청마다 방대한 인라인 컨텍스트 (inline context)를 전송합니다: 30개 이상의 기술 설명, 전체 플러그인 목록, 사용자 규칙, 에이전트 프레임워크 등 약 4,000 토큰에 달하는 상용구 (boilerplate)가 포함됩니다. 외부 모델들은 이를 효과적으로 파싱 (parse)할 수 없습니다. 또한, Antigravity Desktop은 OpenAI 형식의 API가 제공하지 않는 특정 응답 메타데이터 (safetyRatings, index: 0, groundingMetadata)를 요구합니다.
해결책
Antigravity와 모델 제공자 사이에 위치하는 TypeScript 기반 TLS 프록시 (약 400줄 규모)를 구축했습니다:
Antigravity → 프록시 (443) → OpenAI API → NVIDIA / OpenRouter
주요 기능
- 컨텍스트 제거 (Context stripping): 약 4,000 토큰의 인라인 기술/플러그인/규칙을 제거하고, agent-context.md(약 150줄 규모의 런타임 정의 파일)에 대한 압축된 참조를 주입합니다.
- 양방향 변환 (Bidirectional translation): Google 형식의 메시지, 도구(tools), 스트리밍 (streaming)을 OpenAI 형식으로 변환하고 다시 되돌립니다.
- 데스크톱 메타데이터 (Desktop metadata): 모든 응답에 safetyRatings, groundingMetadata, index: 0을 추가합니다. 이 데이터가 없으면 Antigravity Desktop은 조용히 충돌 (crash)합니다.
- 429 재시도 (429 retry): 속도 제한 (rate limits)에 대비한 지수 백오프 (Exponential backoff, 1s → 2s → 4s → 8s)를 적용합니다.
- 인자 정제 (Arg sanitization): 도구 호출 인자 (tool call arguments)에서 Antigravity의 내부 메타데이터 필드(toolAction, toolSummary)를 제거합니다.
작동하는 것들
오디오와 백그라운드 프로젝트 동기화를 제외한 모든 기능이 작동합니다. 채팅, 코드 생성 (code gen), 파일 작업 (view_file, write_to_file, list_dir, grep_search, run_command), 브라우저 자동화 (Chrome DevTools MCP — 브라우저 열기, 스크린샷, 콘솔 확인, JS 평가), 이미지 생성, 서브에이전트 오케스트레이션, 스트리밍, 사고/추론 (thinking/reasoning) 등이 포함됩니다.
테스트
저는 에이전트에게 Antigravity 2.0을 위한 랜딩 페이지를 제작하도록 요청했습니다.
It:
런타임을 이해하기 위해 agent-context.md를 읽음
파티클 시스템(particle system), 터미널 애니메이션, 대화형 UI가 포함된 index.html, styles.css, script.js를 생성함
브라우저 MCP 도구를 통해 Chrome에서 페이지를 엶
전체 페이지 스크린샷을 찍음
브라우저 콘솔에서 오류를 확인함
애니메이션과 카운터가 작동하는지 확인하기 위해 JavaScript를 평가함
시각적 피드백과 함께 결과를 보고함
이 모든 과정은 NVIDIA NIM의 step-3.7-flash를 통해 수행되었습니다. Google API 호출은 단 한 번도 없었습니다.
Setup (설정)
git clone https://github.com/12errh/antigravity-proxy
cd antigravity-proxy
.\setup.ps1
NVIDIA 또는 OpenRouter를 선택하고 API 키를 붙여넣으세요. 스크립트가 관리자 권한 승격, 종속성(dependencies), TLS 인증서 및 프록시(proxy) 시작을 처리합니다.
모델을 변경하려면 proxy/models.json을 편집하세요:
{
"claude-sonnet-4-6-thinking": "deepseek-ai/deepseek-v4-flash",
"default": "deepseek-ai/deepseek-v4-flash"
}
Supported providers (지원되는 제공업체)
| Provider (제공업체) | Models (모델) |
|---|---|
| NVIDIA NIM | deepseek-ai/deepseek-v4-flash, stepfun-ai/step-3.7-flash |
| OpenRouter | 모든 OpenAI 호환 모델 |
Limitations (제한 사항)
오디오(Audio): 아직 매핑되지 않음
백그라운드 프로젝트 동기화(Background project sync): Language Server 초기화 호출 시 Google API가 필요함 (사이드바 파일 트리 등)
그 외 모든 기능은 투명하게(transparently) 작동합니다.
Try it (사용해 보기)
https://github.com/12errh/antigravity-proxy
MIT license. 기여(Contributions)를 환영합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기