Gemini 4 Carbon API: 요금, 추론 수준, 마이그레이션

어려운 코딩 작업은 Gemini 4 Carbon의 medium 수준으로 시작합니다. 초기 요금과 12월 요금, 추론 및 캐시 토큰 비용, CursorBench의 작업별 비용을 비교합니다. Argon이나 Gemini 3에서 마이그레이션하고 Python으로 네이티브 API를 호출합니다. 긴 출력을 백그라운드에서 생성하고 기존 작업의 상태 조회를 재개하는 방법도 다룹니다.

목차
Gemini 4 Carbon API: 요금, 추론 수준, 마이그레이션

어려운 코딩 작업은 Gemini 4 Carbon의 thinking_level="medium"으로 시작하고, 일상적인 대화형 작업에는 Argon을 유지합니다. 표준 토큰 요금이 2026년 12월 1일부터 두 배가 되므로, Carbon을 기본 모델로 정하기 전에 12월 요금으로 예산을 계산합니다. 비용 절감만을 이유로 low를 선택하지 않습니다. CursorBench에서는 low의 작업당 비용이 medium보다 높았습니다.

2026년 11월 13일 기준 Google의 Carbon 문서는 gemini-4-carbon을 Gemini API 유료 등급과 Google AI Studio에서 제공한다고 설명합니다. 무료 등급인 Free tier에서는 Carbon을 사용할 수 없습니다. Carbon은 더 깊이 추론하지만, Argon보다 턴당 추론 토큰을 많이 사용하고 응답 지연도 길어집니다.

Gemini 4 Carbon 요금은 11월 30일 전후로 어떻게 달라집니까?

첫 평가를 초기 요금으로 진행하더라도 지속적인 사용 예산에는 12월 요금을 적용합니다. 다음은 2026년 11월 13일에 요금 페이지에서 확인한 1M tokens당 USD 기준 Google 표준 API 요금입니다.

토큰 구분2026년 11월 30일까지2026년 12월 1일부터
캐시를 사용하지 않은 입력$2.00$4.00
암시적 캐시에서 제공한 입력$0.10$0.20
추론 토큰을 포함한 출력$10.00$20.00

추론 토큰은 최종 답변에 표시되지 않아도 출력으로 과금됩니다. 외부 자료를 답변의 근거로 사용하는 grounding에서는 Google이 도구의 내부 지침과 함수 선언도 토큰 사용량에 포함합니다. 도구 요금이 별도로 발생할 수도 있으므로, 답변 길이만으로 에이전트의 전체 청구액을 설명할 수는 없습니다.

모델 토큰 비용을 추산할 때는 캐시를 사용하지 않은 입력, 캐시된 입력, 과금 대상 출력을 구분합니다. 에이전트 작업 하나의 모든 호출에서 다음 사용량이 누적됐다고 가정합니다.

  • 캐시를 사용하지 않은 입력 토큰 200,000개.
  • 캐시된 입력 토큰 800,000개.
  • 추론을 포함한 과금 대상 출력 토큰 100,000개.

초기 요금을 적용한 추정치는 0.2 × $2 + 0.8 × $0.10 + 0.1 × $10 = $1.48입니다.

12월 요금을 적용한 추정치는 0.2 × $4 + 0.8 × $0.20 + 0.1 × $20 = $2.96입니다.

이는 모델 토큰 요금만 추산한 값이며, 모든 비용을 포함한 청구액은 아닙니다. 도구 요금, 구독료, 세금은 제외합니다. 캐시 비율은 계산을 위한 가정이지 예상 적중률이 아닙니다. 해당 캐시 적중이 없다면 같은 입력과 출력 총량의 비용은 12월 이전에 $3.00, 이후에는 $6.00입니다.

재시도와 실패한 시도까지 포함해 실제 사용량을 기록합니다. 토큰 단가가 낮다고 해서 검증 후 채택한 코드 변경의 비용까지 낮아지는 것은 아닙니다.

어떤 추론 수준을 선택해야 합니까?

먼저 medium을 사용하고, 재현 가능한 코딩 작업을 기준으로 추론 수준을 조정합니다. Google은 복잡한 코드와 에이전트 작업을 포함한 대부분의 용도에 medium을 권장합니다. 추론 수준 안내는 간단한 작업에 low, 가장 어려운 추론에 high를 제시합니다.

2026년 11월 13일 기준 CursorBench 4.0 결과는 추론 수준의 이름이 지출 한도를 뜻하지 않는다는 점을 보여줍니다.

모델 및 추론 수준점수공개된 작업당 비용단계 수
Gemini 4 Carbon High60.4%$9.2271
Gemini 4 Carbon Medium60.1%$8.4967
Gemini 4 Carbon Low58.6%$11.89124
Fable 5.2 Max60.0%$32.79218
Opus 5.5 High56.0%$3.9768
Gemini 4 Argon High52.9%$4.57118

이 평가에서 Carbon Low의 작업당 비용은 Medium보다 $3.40 높았습니다. 단계 수도 67이 아니라 124였습니다. High는 Medium보다 점수가 0.3퍼센트포인트 높았고, 비용은 $0.73 더 들었습니다.

이는 요구사항이 모호하고 여러 파일을 다루는 Cursor 자체 과제에서 나온 결과입니다. 실제 저장소의 결과나 12월 청구액을 예측하는 수치는 아닙니다. 집계된 결과만으로는 비용 차이가 캐시 동작, 추론 또는 다른 요인 때문에 발생했는지 판단할 수 없습니다.

결과가 테스트를 통과하면 medium을 유지합니다. Medium이 어려운 요구사항을 놓치거나 재현 가능한 디버깅 작업에 실패하면 high를 시도합니다. 범위가 한정된 작업에 low를 사용할 때도 추가 시도가 턴당 절감액을 상쇄하지 않는지 먼저 확인합니다.

Gemini 외의 모델과 비교하려면 Fable 5.2 설정 및 요금 가이드에서 API와 Claude Code를 이용한 평가 절차를 확인합니다. 공급업체마다 추론 수준의 이름이 같다고 동일한 조건으로 취급하지 않습니다. 같은 테스트를 적용해 채택된 코드 변경을 비교합니다.

Gemini 네이티브 API에 요청을 보내는 방법

아래 Interactions 예제에는 Google의 네이티브 API를 사용합니다. 결제 설정에서 유료 프로젝트를 활성화하고 필요한 결제 절차를 완료한 뒤, Gemini API 키를 생성합니다. 직접 연동을 계획하기 전에 Google의 지원 지역도 확인합니다.

네이티브 REST 리소스는 https://generativelanguage.googleapis.com/v1beta/interactions입니다. Python SDK가 요청과 인증을 처리합니다.

2026년 11월 13일 기준 BetterToken에도 gemini-4-carbon이 등록되어 있습니다. OpenAI 호환 기본 URL은 https://www.bettertoken.ai/v1이며, 게이트웨이 요금은 별도로 확인합니다. 아래 네이티브 Interactions 및 백그라운드 예제는 게이트웨이와의 호환성을 보장하지 않습니다.

Bash에서 SDK를 설치하고 화면에 표시하지 않은 채 키를 입력받습니다. read가 입력을 기다리면 키를 붙여 넣고 Enter를 누릅니다.

python3 -m pip install --upgrade "google-genai>=2.34.0"
read -rs GEMINI_API_KEY && export GEMINI_API_KEY

다음 코드를 carbon_smoke.py로 저장합니다. 모델에 파일 편집이나 코드 실행 도구를 제공하지 않고, 작은 코드 오류를 수정하도록 요청합니다.

import os
from google import genai

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
interaction = client.interactions.create(
    model="gemini-4-carbon",
    input=(
        "Find the bug. Return a corrected function and pytest tests for "
        "cached values 0 and False.\n\n"
        "def cached_value(cache, key, load):\n"
        "    if cache.get(key):\n"
        "        return cache[key]\n"
        "    cache[key] = load()\n"
        "    return cache[key]\n"
    ),
    generation_config={
        "thinking_level": "medium",
        "max_output_tokens": 32768,
    },
    timeout=900.0,
)
if interaction.status != "completed" or not interaction.output_text:
    raise RuntimeError(f"Unexpected result: {interaction.status}")

print(interaction.output_text)
print("Usage:", interaction.usage)

같은 Bash 세션에서 실행합니다.

python3 carbon_smoke.py

기본 동작 확인이 성공하면 결과 검사에서 예외가 발생하지 않고 답변 텍스트와 사용량이 출력됩니다. 답변을 검토해 캐시에 있는 0과 False 때문에 load()가 다시 호출되지 않는지 확인합니다. 변경을 채택하기 전에 제안된 테스트를 평소 사용하는 테스트 환경에서 실행합니다.

SDK 구현에서 호출별 timeout은 초 단위입니다. 이 예제의 900.0은 15분을 허용합니다. 이는 대기 시간 한도이며, 이 작은 작업에 그만큼 시간이 걸린다는 예측은 아닙니다.

요청이 거부되면 먼저 키가 연결된 프로젝트, 유료 결제 상태, 지역별 이용 자격을 확인합니다. 클라이언트에 interactions가 없으면 스크립트를 실행하는 Python 환경에서 google-genai를 업데이트합니다.

마이그레이션할 때 무엇을 바꿔야 합니까?

변경 범위는 작게 유지하되, 프로덕션 트래픽을 전환하기 전에 토큰과 시간 한도를 검토합니다. Google은 Argon에서의 마이그레이션과 Gemini 3 이전 모델에서의 마이그레이션을 구분해 설명합니다.

Gemini 4 Argon에서 전환

gemini-4-argon을 gemini-4-carbon으로 변경합니다. Google 문서에 따르면 이 전환에는 요청 스키마 변경이 필요하지 않습니다. 다만 같은 요청의 지연 시간이나 청구액까지 같다는 뜻은 아닙니다.

처음에는 thinking_level을 medium으로 유지합니다. Carbon이 추론에 더 많은 토큰을 사용할 수 있으므로 max_output_tokens와 타임아웃을 확인합니다. 대화형 편집과 기능 개발에서 Argon이 이미 승인 기준을 통과한다면, 특히 응답 속도가 중요할 때는 Argon을 유지합니다.

기존 Managed Agents 연동에서는 agent="antigravity-preview-09-2026"을 그대로 사용합니다. agent_config={"type":"antigravity","model":"gemini-4-carbon"}을 설정합니다. 에이전트 식별자와 선택한 모델은 서로 다른 설정입니다.

Gemini 3 및 이전 모델에서 전환

모델 ID를 업데이트한 다음 요청 동작에서 다음 네 가지를 조정합니다.

  1. 명시적 캐시를 제거합니다. Carbon은 cachedContents나 caches.create를 지원하지 않습니다. cached_content를 생성하거나 참조하는 요청을 제거합니다.
  2. 샘플링 제어를 제거합니다. Carbon은 temperature, top_p, top_k를 무시합니다. 이 설정으로 기존 동작을 유지할 수 있다고 가정하지 않습니다.
  3. 출력 한도를 검토합니다. 기존 애플리케이션의 한도가 더 낮다면 Google은 최소 32,768을 권장합니다. 추론도 이 한도를 사용하므로, 너무 낮게 설정하면 답변을 생성할 여유가 부족할 수 있습니다.
  4. 실행 시간을 더 허용합니다. 백그라운드 실행을 사용하거나 블로킹 요청에 최소 15분의 타임아웃을 설정합니다. SDK뿐 아니라 애플리케이션과 프록시의 타임아웃도 확인합니다.

암시적 캐시는 최소 4,096토큰의 프롬프트에서 계속 사용할 수 있습니다. 캐시가 적중한 입력 토큰에는 95% 할인이 적용됩니다. 같은 텍스트를 반복하는 것만으로 적중이 보장되지는 않습니다.

Google의 현재 캐시 가이드에는 에이전트가 여러 차례 요청하는 경우의 추가 조건도 있습니다. 이전 요청 전체를 캐시하려면 새 요청에 최소 2,050개의 새 토큰이 추가되어야 합니다. 반복된 모든 컨텍스트에 할인 요금을 적용하지 말고, 응답에 반환된 실제 캐시 사용량을 측정합니다.

65,536토큰보다 긴 출력을 생성하는 방법

서버가 관리하는 긴 생성 작업에는 background=True를 지정하고 max_output_tokens를 늘립니다. Carbon은 입력, 추론, 출력이 하나의 1,048,576토큰 컨텍스트 창을 공유합니다. 입력이 클수록 생성에 사용할 수 있는 나머지 토큰 수는 줄어듭니다.

Google이 정한 기본 출력 한도는 65,536토큰입니다. 그러나 SDK가 관리하는 모든 포그라운드 호출에 적용되는 절대 상한은 아닙니다. 현재 긴 출력 가이드는 Python SDK 2.34.0 이상에서 클라이언트 측 이어서 생성하는 방식도 설명합니다.

백그라운드 방식은 애플리케이션이 작업을 제출하고 결과를 나중에 가져와야 할 때 유용합니다. background=True만 설정해서는 출력 한도가 늘어나지 않습니다. max_output_tokens를 명시적으로 설정합니다.

백그라운드 실행에는 인터랙션 저장도 필요합니다. Google은 background=True와 store=False를 함께 사용하면 400 오류가 발생한다고 명시합니다. 민감한 저장소 자료를 보내기 전에 저장 및 백그라운드 실행 규칙을 검토합니다.

다음 코드를 carbon_background.py로 저장합니다. request.txt에는 전송이 허용되며 비밀 정보가 없는 작업 명세를 넣습니다. 스크립트는 새 작업을 시작하거나 기존 인터랙션의 상태 조회를 재개할 수 있습니다.

import os
import sys
import time
from pathlib import Path
from google import genai

if len(sys.argv) != 3 or sys.argv[1] not in ("start", "resume"):
    raise SystemExit(
        "Usage: python3 carbon_background.py start request.txt\n"
        "   or: python3 carbon_background.py resume INTERACTION_ID"
    )

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])
mode, value = sys.argv[1:]

if mode == "resume":
    job = client.interactions.get(id=value)
else:
    prompt = Path(value).read_text(encoding="utf-8")
    if not prompt.strip():
        raise SystemExit("Request file is empty.")
    job = client.interactions.create(
        model="gemini-4-carbon",
        input=prompt,
        background=True,
        store=True,
        generation_config={
            "thinking_level": "medium",
            "max_output_tokens": 131072,
        },
    )

print("Interaction ID:", job.id, flush=True)

try:
    while job.status in ("queued", "in_progress"):
        time.sleep(5)
        job = client.interactions.get(id=job.id)
except KeyboardInterrupt:
    client.interactions.cancel(id=job.id)
    raise SystemExit("Cancellation requested.")

if job.status != "completed":
    raise RuntimeError(f"Interaction {job.id} stopped: {job.status}")

text = "".join(
    block.text
    for step in (job.steps or [])
    if step.type == "model_output"
    for block in (step.content or [])
    if block.type == "text" and block.text
)
if not text:
    raise RuntimeError("Completed without text; inspect the interaction steps.")

print(text)
print("Usage:", job.usage)

API 키를 설정한 동일한 Bash 세션에서 시작합니다.

python3 carbon_background.py start request.txt

화면에 출력된 인터랙션 ID를 보관합니다. 네트워크 오류가 발생한 뒤에는 python3 carbon_background.py resume 다음에 해당 ID를 넣어 기존 작업을 조회합니다. 상태 조회가 실패했다는 이유만으로 새로운 유료 작업을 자동 생성하지 않습니다.

스크립트는 모든 model_output 단계의 텍스트를 합칩니다. 긴 생성 작업은 여러 이어서 생성하는 단계로 나뉠 수 있으므로, 마지막 단계만 읽으면 앞부분의 출력이 누락될 수 있습니다.

Ctrl+C는 상태 조회만 중지하는 것이 아니라 취소를 요청합니다. resume은 취소된 작업을 다시 시작하지 않습니다. 다른 종료 상태라면 프롬프트를 바꾸거나 한도를 늘리기 전에 인터랙션을 확인합니다.

131072는 상한이며 예상 답변 길이가 아닙니다. 결과를 채택하기 전에 내용이 완전하고 테스트를 통과하는지 확인합니다.

Cursor와 Copilot의 과금은 어떻게 다릅니까?

모델 선택과 구독 내 사용량 계산을 별도로 확인합니다. 에디터에서 Carbon을 사용할 수 있다고 해서 사용료가 무료가 되는 것은 아닙니다.

Cursor에서는 Gemini 4 Carbon을 선택하고 Medium으로 시작합니다. Cursor 모델 페이지에 따르면 Carbon은 Cursor 플랜에 포함된 사용량의 대상이 아닙니다. The X Subscription에서는 선불 크레딧에서 차감합니다. 기존 플랜에서는 Other Models 사용량 풀에서 차감합니다. Cursor도 12월 1일부터 인상되는 토큰 요금을 안내합니다.

GitHub Copilot에서는 Pro+, Max, Business, Enterprise 사용자가 Carbon을 사용할 수 있습니다. 11월 10일 릴리스 안내에는 VS Code와 Copilot CLI를 포함한 클라이언트에서 모델을 선택할 수 있다고 나와 있습니다. 제공은 점진적으로 진행되며, 조직의 모델 정책도 접근에 영향을 줄 수 있습니다.

Copilot은 사용량 기반 과금에서 공급업체의 정가를 적용해 Carbon 요금을 계산합니다. Cursor의 포함 사용량 규칙을 Copilot에 그대로 적용하지 않습니다. GitHub 과금 문서에서 플랜별 계산 방식을 확인합니다. Copilot 자체 모델을 사용하는 대안은 Copilot Fusion의 추론 수준과 과금을 비교합니다.

에디터에서 에이전트에게 장시간 작업을 맡기기 전에 범위가 한정된 변경 하나를 요청하고 과금된 사용량을 확인합니다. 채택된 변경의 비율, 응답 지연, 12월 요금 기준 예산이 요구사항을 충족한 뒤에 기본 모델로 정합니다.

LLM 워크플로를 최적화할 준비가 되셨나요?

하나의 API로 모델을 연결하고 키와 AI 비용을 관리하세요.

무료로 시작하기