Antigravity CLI 모델 고르기: --model·--effort 규칙

게시 읽는 시간 약 11분 시작 가이드

Antigravity CLI의 모델들을 같은 과제로 비교해 보려고, 버그 있는 JavaScript 함수를 고치는 과제를 처음에는 Gemini 3.8 Flash(High)에 보냈습니다. 두 번 다 종료 코드 0, status는 SUCCESS인데 답이 비어 있더라고요. 고친 코드를 직접 실행해 보려다 셸 명령이 자동 거부된 거였어요.

과제에 “명령을 실행하거나 파일을 만들지 말고 이 답에서 바로 답하라”는 한 문장을 더하고 나서야 비교가 됐습니다. 모델 8개에 두 번씩 맡기니 16번 중 13번이 테스트 24개를 모두 통과했어요. 차이는 품질보다 시간에서 났고, 같은 모델도 실행마다 몇 배씩 달랐습니다.

모델 고르는 법 자체는 간단합니다. 쓸 수 있는 모델은 agy models로 보고, 실행마다 --model gemini-3.8-flash-medium처럼 고르면 돼요. 처음 설치한 상태의 기본값은 Gemini 3.8 Flash(High)였습니다.

헷갈리는 건 --effort인데, 수준이 붙지 않은 이름(gemini-3.8-flash)과 함께 써야 하고, gemini-3.8-flash-low에 다른 수준을 주거나 Claude 모델에 --effort를 주면 종료 코드 1로 거부됩니다.

2026년 10월 1일 Windows 11 · Windows PowerShell 5.1 테스트 환경에서 Antigravity CLI 1.2.14로 직접 실행했고, 공식 모델·요금제·헤드리스·명령 참고 문서를 같은 날 다시 봤습니다. 요금제별 한도 수치는 계정마다 달라 다루지 않았어요. 10월 13일에는 1.3.3으로 올라간 뒤 모델 목록과 대화형 /model·/usage 화면을 다시 확인했습니다. 설치는 Gemini CLI 종료 후 Antigravity CLI 설치·설정 옮기기에 있습니다.

확인한 버전·환경

  • Antigravity CLI 1.3.3 · Windows 11 · Windows PowerShell 5.1 · 확인일 2026-10-13

쓸 수 있는 모델 보기

PS> agy models
Fetching available models...
gemini-3.8-flash-high	Gemini 3.8 Flash (High)
gemini-3.8-flash-medium	Gemini 3.8 Flash (Medium)
gemini-3.8-flash-low	Gemini 3.8 Flash (Low)
… (3.7 Flash, 3.6 Flash도 High·Medium·Low 각각)
gemini-3.1-pro-high	Gemini 3.1 Pro (High)
gemini-3.1-pro-low	Gemini 3.1 Pro (Low)
claude-sonnet-4-6	Claude Sonnet 4.6 (Thinking)
claude-opus-4-6-thinking	Claude Opus 4.6 (Thinking)
gpt-oss-120b-medium	GPT-OSS 120B (Medium)

1.2.14에서는 Gemini 11개, Claude 2개, GPT-OSS 1개가 나왔습니다. 왼쪽이 --model에 넣는 이름, 오른쪽이 화면에 보이는 이름이에요.

10월 13일 1.3.3에서 같은 명령을 다시 실행하니 목록이 6개로 줄어 있었습니다.

PS> agy models
gemini-3.8-flash-high	Gemini 3.8 Flash (High)
gemini-3.8-flash-medium	Gemini 3.8 Flash (Medium)
gemini-3.8-flash-low	Gemini 3.8 Flash (Low)
claude-sonnet-4-6	Claude Sonnet 4.6 (Thinking)
claude-opus-4-6-thinking	Claude Opus 4.6 (Thinking)
gpt-oss-120b-medium	GPT-OSS 120B (Medium)

Gemini 3.7·3.6 Flash와 3.1 Pro가 빠졌어요. 아래 --effort 표와 8개 모델 비교에 나오는 3.1 Pro는 1.2.14 때 결과입니다. 모델 이름을 스크립트에 박아 뒀다면 agy models로 지금 목록부터 확인하세요.

첫 줄 Fetching available models...는 표준 오류로 나옵니다. Windows PowerShell 5.1에서 2>&1로 함께 받으면 이 줄이 빨간 NativeCommandError로 감싸여 보이는데, 오류가 아니라 진행 안내이니 놀라지 않아도 됩니다.

요금제에 따라 목록이 다릅니다(2026년 10월 1일 공식 모델 문서 기준).

모델 개인 요금제(무료·AI Plus·Pro·Ultra) Enterprise
Gemini 3.8·3.7·3.6 Flash, 3.1 Pro 있음 있음
Claude Sonnet 4.6·Opus 4.6 있음 없음
GPT-OSS-120b 있음 없음

다만 10월 13일 1.3.3의 agy models에는 Gemini 중 3.8 Flash만 남고, Claude Sonnet 4.6·Opus 4.6과 GPT-OSS 120B가 함께 나왔습니다.

한도는 “Gemini Models”와 “Claude and GPT models” 두 묶음으로 나뉘어 각각 주간·5시간 한도가 있습니다. 한 묶음이 바닥나도 다른 묶음의 모델로 옮겨 갈 여지가 있다는 뜻이죠. 남은 한도는 대화형 화면에서 /usage(또는 /quota)로 봅니다.

Antigravity CLI 1.3.3의 /usage 화면. GEMINI MODELS 묶음(Gemini Flash, Gemini Pro)은 주간 한도 63.07%, 5시간 한도 99.90%가 남아 있고, CLAUDE AND GPT MODELS 묶음(Claude Opus, Claude Sonnet, GPT-OSS)은 주간 한도가 0.00% 남아 118시간 15분 뒤에 다시 찬다고 표시돼 있습니다.
Antigravity CLI 1.3.3의 /usage. 한 묶음이 바닥나도 다른 묶음은 따로 남아 있습니다.

테스트 계정은 Claude·GPT 묶음의 주간 한도를 다 쓴 상태였습니다. 그 묶음의 5시간 한도 칸에는 Disabled: You have hit your weekly limit, the 5-hour limit does not currently apply.가 떠 있었고, Gemini 묶음은 63%가 그대로 남아 있었어요. 이럴 땐 Gemini 모델로 옮기면 계속 쓸 수 있습니다.

기본 한도를 다 쓴 뒤의 동작은 사용자 설정(AI Credit Overages)으로 정합니다. 크레딧을 쓰지 않고 한도가 다시 찰 때까지 기다리는 선택지가 있고, 크레딧 사용은 Google AI Pro·Ultra 요금제 기준으로 안내돼 있어요.

기본 모델과 /model

--model 없이 실행하면 어느 모델이 도는지 출력에 나오지 않습니다. stream-json의 init 이벤트에도 model 필드는 --model을 줬을 때만 붙어요. 지금 고른 모델은 /model을 -p로 실행하면 볼 수 있었습니다.

PS> agy -p /model
gemini-3.8-flash-high	Gemini 3.8 Flash (High)

처음 설치한 상태라 이것이 기본 선택입니다. 그런데 대화형 화면의 /model로 고른 모델은 세션이 바뀌어도 유지되니까, 한 번 바꾸면 이후 agy -p 실행의 기본값도 같이 바뀝니다.

1.3.3에서는 이 방법이 더는 통하지 않았습니다. agy -p /model이 명령이 아니라 평범한 프롬프트로 넘어가서, 모델이 셸 명령을 쓰려다 막히고 이 안내만 남았어요.

jetski: no output produced — a tool required the "command" permission that headless mode cannot prompt for, so it was auto-denied. …

지금 고른 모델은 대화형 화면에서 /model을 열어 보면 됩니다. (current)가 붙은 줄이 지금 모델이에요.

Antigravity CLI 1.3.3의 Switch Model 화면. 검색 칸 아래에 Gemini 3.8 Flash(current), Claude Sonnet 4.6 (Thinking), Claude Opus 4.6 (Thinking), GPT-OSS 120B (Medium)가 있고, 그 아래 Effort 슬라이더가 low, medium, high 중 high에 놓여 있으며 맨 아래에 방향키로 이동하고 좌우 키로 Effort를 바꾸는 안내가 있습니다.
1.3.3의 /model. Gemini는 한 줄로 묶이고 수준은 아래 Effort 슬라이더로 고릅니다.

피커에서는 Gemini가 수준별로 나뉘지 않고 한 줄로 나오고, 수준은 아래 Effort 슬라이더로 고릅니다. Claude 줄로 옮기면 이 슬라이더가 사라졌어요. Claude 모델에 --effort를 줄 수 없는 것과 같은 규칙입니다.

주의: 스크립트에서 결과를 재현하려면 --model을 항상 적어 두세요.

–effort 규칙

Gemini 모델 이름 뒤의 -high·-medium·-low가 곧 노력 수준이라서, --effort와 함께 쓸 때 규칙이 있습니다. 같은 짧은 질문으로 조합을 바꿔 가며 돌린 결과예요.

--model --effort 결과
gemini-3.8-flash high 성공
gemini-3.8-flash-medium medium 성공
gemini-3.8-flash-low high 종료 1
(없음) low 성공
(없음) max 종료 1
gemini-3.1-pro max 종료 1
claude-sonnet-4-6 high 종료 1
"Gemini 3.8 Flash (High)" (없음) 성공

거부될 때 나온 메시지를 보면 규칙이 보입니다.

--model gemini-3.8-flash-low conflicts with --effort=high
gemini-3.8-flash has no "max" effort (available: low, medium, high)
gemini-3.1-pro has no "max" effort (available: low, high)
--effort is not supported for model "claude-sonnet-4-6"
  • 수준이 붙은 이름에는 같은 수준만 겹쳐 줄 수 있습니다. 다른 수준을 쓰려면 수준 없는 이름(gemini-3.8-flash, gemini-3.1-pro)으로 바꿉니다.
  • 쓸 수 있는 수준은 모델마다 다릅니다. Gemini Flash는 low·medium·high, Gemini 3.1 Pro는 low·high만 받았어요. 1.2.14의 agy --help는 max까지 적지만, 헤드리스 문서의 플래그 표는 low·medium·high만 적고 실제로도 max는 거부됐습니다.
  • --effort만 주면 기본 모델에 적용됩니다. 오류 문구가 그 대상을 gemini-3.8-flash로 적었어요.
  • 표시 이름("Gemini 3.8 Flash (High)")도 --model에 받습니다.
  • 잘못된 조합은 실행 전에 종료 코드 1로 거부됩니다. 대화형 화면과 달리 agy -p는 모르는 모델을 조용히 다른 모델로 바꾸지 않습니다.

Claude 모델의 노력 수준은 1.2.14에서는 바꿀 수 없었습니다. --effort가 Claude 모델에 지원되지 않고, 목록에는 Claude Sonnet 4.6과 Opus 4.6이 각각 하나씩, 둘 다 Thinking이 붙은 이름으로만 있거든요.

같은 과제를 8개 모델에 맡겨 보니

글 처음에 말한 비교입니다. 시간 문자열(1h30m 등)을 초로 바꾸는 버그 있는 JavaScript 함수를 명세대로 고치는 과제이고, 대소문자·소수·중복 단위·잘못된 입력 처리를 명세에 적었습니다.

직접 만든 테스트 24개로 채점했고, 원래 버그 코드는 7개만 통과해요. Claude Opus 5.5와 Fable 5.1을 비교한 글에서 쓴 것과 같은 과제입니다.

각 실행은 agy -p "<과제>" --model <이름> --output-format json --print-timeout 300s이고, 시간과 토큰은 JSON의 duration_seconds·usage에서 읽었습니다.

모델 통과(1회 · 2회) 시간(초) 출력 토큰
Gemini 3.8 Flash (High) 24 · 24 90.8 · 21.0 29,558 · 6,090
Gemini 3.8 Flash (Medium) 24 · 24 29.3 · 33.2 7,936 · 8,389
Gemini 3.8 Flash (Low) 24 · 22 20.2 · 5.8 4,945 · 300
Gemini 3.1 Pro (High) 24 · 24 51.0 · 35.9 6,100 · 4,205
Gemini 3.1 Pro (Low) 24 · 24 22.3 · 49.3 2,723 · 6,390
Claude Sonnet 4.6 22 · 24 5.4 · 8.0 305 · 481
Claude Opus 4.6 23 · 24 8.6 · 59.5 493 · 3,801
GPT-OSS 120B (Medium) 24 · 24 7.1 · 7.6 842 · 1,060

품질 차이는 작았습니다. 16번 중 13번이 24개를 모두 통과했고, 나머지 세 번도 22~23개였어요. 놓친 건 1h30m처럼 공백 없이 붙은 입력(두 번), 1 h처럼 숫자와 단위 사이에 공백이 있는 잘못된 입력을 걸러내지 못한 것(한 번)이었습니다.

오히려 눈에 띈 건 시간입니다. 시간은 모델보다 실행마다 더 흔들렸어요.

Gemini 3.8 Flash(High)는 같은 과제에 91초 → 21초, 출력 토큰은 29,558 → 6,090으로 5배 가까이 차이 났습니다. Gemini 3.1 Pro는 한 번은 Low가 High보다 오래 걸렸고요.

Gemini의 출력 토큰은 대부분 생각에 쓰였습니다. 예를 들어 29,558개 중 29,215개가 thinking_tokens였고, Claude·GPT-OSS는 이 값이 0으로 보고됐습니다. 생각을 안 했다는 뜻인지, 이 필드로 세지 않는 것인지는 이 숫자만으로는 알 수 없습니다.

그럼 High를 고르면 제일 나을까요? 이 과제에서는 High가 품질을 더 올리지도, 빠르지도 않았습니다. 짧고 분명한 코드 작업이라면 빠른 모델로 충분했어요.

다만 과제 하나를 두 번씩 돌린 결과라 모델 실력을 줄 세울 근거는 아니고, 큰 코드베이스나 긴 작업에서는 다를 수 있습니다. 이 표를 그대로 믿고 고르기보다는, 자기 작업 하나를 골라 두세 모델에 같은 방식으로 맡겨 보는 편이 정확해요.

분명한 건 같은 모델도 실행마다 시간이 몇 배씩 달라지니, 자동화의 --print-timeout은 넉넉히 잡아야 한다는 점입니다.

직접 해 보니 막힌 두 군데

“도구를 쓰지 말라”고 안 하면 답이 빔

처음에는 과제에 도구 사용에 대한 말 없이 Gemini 3.8 Flash(High)에 보냈는데, 두 번 모두 종료 코드 0, status는 SUCCESS인데 답이 비어 있었습니다. 한 번은 생각에만 2만 4천 개가 넘는 토큰을 썼고요.

다시 돌려 denied_actions를 보니 command가 찍혀 있었습니다. 고친 코드를 직접 실행해 확인하려고 셸 명령을 쓰려다, agy -p라 자동 거부된 거예요.

과제에 “명령을 실행하거나 파일을 만들지 말고 이 답에서 바로 답하라”는 한 문장을 더하자 정상적으로 코드가 돌아왔습니다. 위 비교표는 모두 이 문장을 넣은 결과입니다.

빈 답이 SUCCESS로 보고될 때 잡는 법은 Antigravity CLI 헤드리스 모드 글에 있어요.

-p 뒤에 프롬프트를 빼먹으면 다음 옵션이 프롬프트가 됨

과제를 표준 입력으로 넘기려고 agy -p --model gemini-3.8-flash-high ... < task.md처럼 실행하자 바로 이렇게 끝났습니다(종료 코드 2).

Error: -p took "--model" as its prompt, so the intended prompt was left as an argument and ignored.
Attach the prompt to the flag (-p='your prompt') and move --model elsewhere on the command line.

-p는 값을 받는 옵션이라 바로 뒤의 --model을 프롬프트로 가져갔고, 다행히 agy가 알아채고 실행하지 않았습니다. 프롬프트는 -p 바로 뒤에 두세요. 여러 줄짜리 프롬프트를 파일에서 넘기려면 내용을 읽어 -p의 값으로 주거나, --input-format stream-json으로 표준 입력에 보내면 됩니다.

마치며

모델 8개를 같은 과제로 돌려 본 결과로는, 고르는 기준을 품질보다 시간과 재현성에 두는 게 맞다고 봅니다. 짧은 코드 작업에서는 빠른 모델로도 충분했고, 오히려 같은 모델의 시간이 실행마다 몇 배씩 흔들렸거든요. 그래서 스크립트라면 --model을 꼭 명시하고, --print-timeout은 넉넉히 잡고, --effort는 수준 없는 이름과 함께 쓰시길 권합니다.

고른 모델로 외부 도구를 붙이려면 이어서 Antigravity CLI MCP 서버 연결과 설정 파일을 보세요.

참고한 공식 자료

변경 이력

  • 2026-10-14 — 요금제 표 아래에 1.3.3의 agy models 목록에는 Gemini 중 3.8 Flash만 남았다는 점을 더했습니다.
  • 2026-10-13 — Antigravity CLI 1.3.3에서 다시 확인한 결과를 더했습니다. agy models 목록이 6개로 줄어 Gemini 3.7·3.6 Flash와 3.1 Pro가 빠진 것, agy -p /model이 더는 현재 모델을 출력하지 않는 것, 대화형 /model 피커와 /usage 화면, 한 묶음의 주간 한도가 바닥났을 때의 표시입니다.