Panduan developer untuk Gemini 4 Argon

Gemini 4 Argon adalah model termutakhir Google yang unggul dalam pekerjaan mendalam pada tugas-tugas kompleks di dunia nyata di berbagai domain, termasuk coding, keuangan, hukum, pengamanan cyber, dan sains. Model ini adalah model pertama dalam rangkaian Gemini 4.

Dokumen ini membahas hal-hal baru di 4 Argon, konvensi API yang diterapkan, cara bermigrasi ke versi ini, dan panduan memulai. Untuk ringkasan keluarga Gemini 4, lihat Mulai menggunakan Gemini 4.

Apa yang baru di Gemini 4 Argon?

  • Batas token input dan output terpadu: 4 Argon memiliki batas 1.048.576 token terpadu yang mencakup token input dan output (dengan output mencakup penalaran, panggilan fungsi, dan respons akhir).
  • Dekode panjang hingga 1.048.576 token: Memperluas pembuatan di luar batas output permintaan tunggal (65.536 token, atau 32.768 token untuk permintaan HTTP langsung non-streaming) hingga 1.048.576 token (dikurangi token input Anda) di GenerateContent. Google Gen AI SDK menangani continuation_token secara otomatis di seluruh permintaan, atau Anda dapat mengelola continuation_token dalam loop kelanjutan Anda sendiri.
  • Thinking levels: LOW, MEDIUM (default di gemini-4-argon), dan HIGH (default di gemini-4-argon-cyber-permissive).
  • Penyimpanan ke dalam cache implisit dengan penyimpanan ke dalam cache yang tahan lama: Penyimpanan ke dalam cache implisit berlaku secara otomatis untuk awalan perintah bersama yang berisi 6.144 token atau lebih, dengan penyimpanan ke dalam cache yang tahan lama diaktifkan secara default. Cache konteks eksplisit tidak didukung.
  • Pemahaman video agentic: Ketersediaan umum, dan nonaktif secara default.

Panduan Memulai

Sebelum memulai, Anda harus melakukan autentikasi ke Agent Platform menggunakan Kredensial Default Aplikasi (ADC) atau kunci API. Lihat Memulai Gemini Enterprise Agent Platform untuk informasi selengkapnya.

Pada blok kode berikut, ganti PROJECT_ID dengan project ID Anda.

Coba di Agent Studio

Untuk menguji perintah dan mengonfigurasi gemini-4-argon di UI Agent Studio:

  1. Buka Agent Studio di project Cloud de Confiance by S3NS Anda, lalu pilih gemini-4-argon di bagian grup Gemini.
  2. Di Model settings, konfigurasikan:
    • Thinking level: Pilih Low, Medium (default), atau High.
    • Region: Pilih Global, us, atau eu.
    • Output token limit: Tetapkan antara 32,768 dan 1,048,576 (1,048,576 default). Agent Studio menangani token kelanjutan secara otomatis untuk respons yang melebihi batas permintaan tunggal.

Penginstalan

Upgrade ke Google Gen AI SDK terbaru (google-genai >= 2.30.1 untuk Python, @google/genai >= 2.29.1 untuk JavaScript, >= 1.74.0 untuk Go, >= 1.77.0 untuk Java, >= 1.26.0 untuk .NET, atau >= 1.6.0 untuk Kotlin):

pip install --upgrade "google-genai>=2.30.1"

Permintaan dasar

Python (GenerateContent)

from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-4-argon",
    contents="Design a lock-free ring buffer in Rust for multi-producer, single-consumer telemetry ingestion.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(
            thinking_level="MEDIUM",  # Default: "MEDIUM" (Valid: "LOW", "MEDIUM", "HIGH")
        ),
    ),
)
print(response.text)

Python (Interactions API)

from google import genai

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

# Turn 1: Initial request (stored server-side by default)
turn1 = client.interactions.create(
    model="gemini-4-argon",
    input="Design a lock-free ring buffer in Rust for multi-producer, single-consumer telemetry ingestion.",
    store=True,
)
print(turn1.output_text)

# Turn 2: Continue the conversation using previous_interaction_id
turn2 = client.interactions.create(
    model="gemini-4-argon",
    input="Add a bounded backpressure policy and unit tests for concurrent writers.",
    previous_interaction_id=turn1.id,
)
print(turn2.output_text)

REST

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
"https://aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
-d '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Provide an architectural review of this Go interface."
        }
      ]
    }
  ],
  "generationConfig": {
    "thinkingConfig": {
      "thinkingLevel": "MEDIUM"
    }
  }
}'

Output terstruktur

from pydantic import BaseModel, Field
from google import genai
from google.genai import types

class ArchitectureReview(BaseModel):
    component: str = Field(description="Service or module name")
    bottlenecks: list[str] = Field(description="Throughput or latency bottlenecks")
    recommended_changes: list[str] = Field(description="Concrete refactoring steps")

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

response = client.models.generate_content(
    model="gemini-4-argon",
    contents="Review a synchronous order-processing pipeline backed by a single primary database at 15,000 writes/sec.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema=ArchitectureReview,
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
    ),
)
print(response.text)

Dekode panjang

Secara default, satu permintaan API menghasilkan hingga 65.536 token output (atau 32.768 token untuk permintaan HTTP langsung non-streaming), dengan output yang mencakup penalaran, panggilan fungsi, dan respons akhir. Untuk membuat penyelesaian hingga 1.048.576 token di GenerateContent (v1beta1), tetapkan max_output_tokens lebih besar dari 65.536 untuk permintaan streaming atau lebih besar dari 32.768 untuk permintaan non-streaming (hingga 1.048.576). Google Gen AI SDK otomatis mengikuti continuation_token di seluruh permintaan saat finish_reason adalah CONTINUATION (tetapkan automatic_continuation=False di GenerateContentConfig untuk menonaktifkan kelanjutan otomatis), atau Anda dapat meneruskan continuation_token dalam loop kustom.

from google import genai
from google.genai import types

client = genai.Client(enterprise=True, project="PROJECT_ID", location="global")

# Automatic continuation is enabled by default in google-genai >= 2.30.1.
# Chunks across all continuation requests are yielded as a single stream.
for chunk in client.models.generate_content_stream(
    model="gemini-4-argon",
    contents="Write a complete formal proof of the prime number theorem.",
    config=types.GenerateContentConfig(
        max_output_tokens=256000,
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
    ),
):
    print(chunk.text, end="")

# Set automatic_continuation=False to disable automatic continuation.
for chunk in client.models.generate_content_stream(
    model="gemini-4-argon",
    contents="Write a complete formal proof of the prime number theorem.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="HIGH"),
        automatic_continuation=False,
    ),
):
    print(chunk.text, end="")

REST (Loop lanjutan kustom)

# Request 1: Initial request with maxOutputTokens > 32,768
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
    }],
    "generationConfig": {
      "maxOutputTokens": 131072,
      "thinkingConfig": {"thinkingLevel": "HIGH"}
    }
  }'

# Request 2: Resend the original request with top-level continuationToken
# from Request 1 (candidates[0].continuationToken)
curl -s -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/global/publishers/google/models/gemini-4-argon:generateContent" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{"text": "Write a complete formal proof of the prime number theorem."}]
    }],
    "continuationToken": "CONTINUATION_TOKEN_FROM_REQUEST_1",
    "generationConfig": {
      "maxOutputTokens": 131072,
      "thinkingConfig": {"thinkingLevel": "HIGH"}
    }
  }'

Aturan API dan konvensi perilaku wajib

Gemini 4 Argon menerapkan konvensi berikut:

  • Tingkat penalaran: 4 Argon mendukung tiga nilai thinking_level (thinking_budget dan MINIMAL menampilkan error validasi 400 HTTP):

    Tingkat penalaran Workload yang direkomendasikan
    HIGH (default di gemini-4-argon-cyber-permissive) Rekayasa software multi-file, bukti formal, desain arsitektur, dan penemuan kerentanan.
    MEDIUM (default di gemini-4-argon) Coding umum, penggunaan alat, tanya jawab dokumen, dan pemahaman video.
    LOW Klasifikasi, ringkasan, dan ekstraksi metadata.
  • Batas token input dan output terpadu serta batas output permintaan tunggal:

    • 1,048,576 adalah batas token keseluruhan model dan mencakup token input dan output (dengan output mencakup penalaran, panggilan fungsi, dan respons akhir). max_output_tokens mengontrol batas token output untuk pembuatan (hingga 1,048,576 dikurangi token input Anda); menetapkan max_output_tokens lebih besar dari 1,048,576 akan menampilkan error HTTP 400.
    • Untuk menghindari penyelesaian panjang yang tidak diinginkan, batas output permintaan tunggal default (pemikiran + respons model) adalah 65.536 token (atau 32.768 token untuk permintaan HTTP langsung non-streaming).
  • Dekode panjang:

    • Cara kerja dekode panjang: Dekode panjang membagi pembuatan hingga 1.048.576 token di beberapa inferensi GenerateContent. Misalnya, jika suatu tugas memerlukan 256.000 token output (termasuk pemikiran, panggilan fungsi, dan respons akhir), permintaan streaming pertama akan menghasilkan hingga 65.536 token output dan memunculkan finish_reason=CONTINUATION dengan continuation_token terenkripsi yang berisi hash dari perintah asli dan status pembuatan hingga titik tersebut. Menyertakan continuation_token dalam permintaan berikutnya dengan perintah asli akan melanjutkan pembuatan dari bagian terakhir yang ditinggalkan hingga continuation_token tidak lagi ditampilkan dan finish_reason=STOP. (Di Agent Studio, menetapkan batas token output lebih dari 65.536 hingga 1.048.576 akan menangani token kelanjutan secara otomatis.)
    • Kapan menggunakan dekode panjang: Sebagian besar permintaan selesai dalam batas per permintaan (65.536 token, atau 32.768 token untuk panggilan REST non-streaming). Gunakan dekode panjang hanya jika satu respons memerlukan lebih banyak output dari itu. Dekode panjang memberi model lebih banyak ruang untuk penalaran; hal ini tidak membuat jawaban lebih panjang (gunakan thinking_level untuk mengontrol kedalaman penalaran).
    Workload Gunakan dekode panjang? Mengapa
    Matematika, sains, riset, dan pembuktian formal yang sulit Ya Model dapat menggunakan lebih dari 65.536 token untuk mengeksplorasi dan memeriksa penalarannya.
    Tugas coding dan agentic tersulit Ya Beberapa tugas memerlukan lebih dari 65.536 token penalaran dan kode dalam satu respons. Sebagian besar tugas coding dan agentic selesai dalam 65.536 token.
    Harness evaluasi yang berhenti pada batas output Ya Dekode panjang mencegah jawaban terpotong saat model menghabiskan seluruh permintaan 65.536 atau 32.768 token untuk penalaran.
    Chat, Tanya Jawab, peringkasan, klasifikasi, dan ekstraksi Tidak Tugas-tugas ini selesai jauh di bawah 32.768 token.
    Permintaan panjang tetap, seperti "tulis buku 700.000 kata" Tidak Model tidak mengikuti target panjang.
    Agen yang memanggil alat dalam banyak giliran singkat Tidak Setiap giliran berlangsung singkat. Output besar pada setiap giliran akan mengisi batas input dan output 1.048.576 token terpadu dengan cepat.
    Perintah yang mendekati batas input 1.048.576 token Tidak Output hanya dapat menggunakan 1.048.576 token dikurangi input Anda.
    Permintaan yang sensitif terhadap latensi Tidak Dekode panjang dapat berjalan selama beberapa menit.
    • Memilih opsi kelanjutan: Pilih salah satu dari dua opsi. Sebagian besar developer menggunakan Opsi 1. Semua opsi mencapai batas 1.048.576 token yang sama di gemini-4-argon dan gemini-4-argon-cyber-permissive.
    Dimensi Opsi 1: Google Gen AI SDK (direkomendasikan) Opsi 2: Loop streaming Anda sendiri (streamGenerateContent) Opsi 2: Loop non-streaming Anda sendiri (generateContent)
    Siapa yang memulai setiap segmen Google Gen AI SDK: Python (google-genai) 2.30.1, JavaScript (@google/genai) 2.29.1, Go 1.74.0, Java 1.77.0, .NET 1.26.0, dan Kotlin 1.6.0. Anda menetapkan max_output_tokens. Kode Anda, di setiap titik pemeriksaan atau setelah streaming terputus Kode Anda, setiap 32.768 token
    Token per permintaan Hingga 65.536 per segmen 65.536 per aliran, dengan titik pemeriksaan setiap 5.000 token setelah 32.768 32.768 per permintaan
    Batas waktu per permintaan 20 menit 20 menit 20 menit
    Penyimpanan Tidak ada penyimpanan server (sesuai ZDR) Tidak ada penyimpanan server (sesuai dengan ZDR) Tidak ada penyimpanan server (sesuai ZDR)
    Paling cocok untuk Sebagian besar aplikasi Pemanggil REST dan harness kustom yang melakukan streaming Platform evaluasi sederhana
    • Aturan dan batasan penerapan:
      • Persyaratan API v1beta1 (masalah umum): Dekode panjang (continuation_token) pada GenerateContent (generateContent dan streamGenerateContent) hanya didukung di API v1beta1 (bukan v1). Google Gen AI SDK menggunakan v1beta1 secara default, kecuali jika api_version='v1' ditentukan dalam http_options; untuk panggilan REST langsung, gunakan jalur endpoint v1beta1. Dekode panjang tidak didukung di Interactions API.
      • Versi SDK dan kompatibilitas OpenAI: Upgrade ke Google Gen AI SDK terbaru (google-genai >= 2.30.1 untuk Python, @google/genai >= 2.29.1 untuk JavaScript, >= 1.74.0 untuk Go, >= 1.77.0 untuk Java, >= 1.26.0 untuk .NET, atau >= 1.6.0 untuk Kotlin). Versi SDK yang lebih lama dan lapisan kompatibilitas OpenAI tidak dapat mengambil penyelesaian panjang menggunakan token kelanjutan. Untuk implementasi klien kustom, lihat implementasi referensi Google Gen AI SDK di Python dan JavaScript/TypeScript.
      • Kirim ulang permintaan asli dengan continuation_token: Dalam loop kustom, tetapkan max_output_tokens lebih besar dari 65.536 (streaming) atau 32.768 (unary) hingga 1.048.576, dan kirim ulang contents, system_instruction, dan tools asli pada setiap permintaan lanjutan bersama dengan continuation_token terbaru (kolom tingkat teratas di GenerateContentRequest di REST, atau di GenerateContentConfig di Google Gen AI SDK). Jangan menambahkan output model parsial ke contents atau mengirimkan perintah lanjutan yang meminta model untuk melanjutkan.
      • Lanjutkan melalui permintaan khusus penalaran: Lakukan loop saat finish_reason adalah CONTINUATION dan continuation_token ada, meskipun permintaan menghabiskan semua 32.768 atau 65.536 token penalaran (parts: [{"text": ""}]). Jika finish_reason adalah MAX_TOKENS saat continuation_token ada, pembuatan mencapai batas max_output_tokens yang diminta—naikkan max_output_tokens dalam permintaan. Gabungkan bagian yang terakumulasi menjadi satu giliran model untuk histori multi-giliran hanya setelah STOP.
      • Penghitungan token, pemadatan, dan diskon cache implisit 95%:
        • Di Python Google Gen AI SDK (generate_content dan generate_content_stream), respons atau potongan akhir usage_metadata mengakumulasi total token yang ditagih di seluruh permintaan kelanjutan. Karena setiap permintaan kelanjutan mengisi ulang penyelesaian parsial sebelumnya sebagai token input, prompt_token_count meningkat secara kumulatif di seluruh permintaan kelanjutan—jangan gunakan prompt_token_count untuk memicu pemadatan konteks di infrastruktur pengelola agen. Sebagai gantinya, baca initial_prompt_token_count (di GenerateContentResponse atau usage_metadata), dan tunggu hingga GenerateContent selesai (tidak ada continuation_token) sebelum melakukan pemadatan.
        • Dalam loop REST kustom, usage_metadata bersifat kumulatif dalam setiap permintaan; jumlahkan prompt_token_count, cached_content_token_count, candidates_token_count, dan thoughts_token_count akhir di seluruh permintaan.
        • Setiap permintaan kelanjutan akan mengisi ulang perintah ditambah token yang didekode sebelumnya dan secara otomatis menerima diskon cache konteks implisit 95% (minimum 6.144 token) saat permintaan dijalankan secara berurutan dalam TTL cache 15–20 menit.
        • streamGenerateContent dan generateContent menampilkan usage_metadata di akhir setiap permintaan (65.536 streaming / 32.768 unary), dan penagihan terjadi di akhir permintaan.
  • Parameter sampling yang diabaikan (temperature, top_k, top_p): Backend mengabaikan nilai kustom. Mengontrol kedalaman penalaran dengan thinking_level, dan format output dengan response_schema.

  • Parameter yang tidak didukung (frequency_penalty, presence_penalty, candidate_count): Parameter ini menampilkan error HTTP 400. Hapus dari permintaan Anda.

  • Cache konteks: Cache konteks eksplisit tidak didukung. Caching implisit (dengan caching tahan lama yang diaktifkan secara default) berlaku otomatis untuk awalan perintah bersama yang berisi 6.144 token atau lebih, jadi tempatkan konten statis di awal perintah Anda.

  • Video agentic: Video yang diupload ditetapkan secara default ke media_processing="static". Tetapkan media_processing="agentic" untuk mengaktifkan pemrosesan video agentic.

  • Penghitungan dan penagihan token: Setiap token yang diproses model akan dihitung dan ditagih, termasuk token penalaran dan instruksi sistem alat internal serta deklarasi fungsi saat menggunakan grounding. Grounding with Google Search juga tetap ditagih per kueri.

  • Pemanggilan fungsi:

    • Simetri belokan: Setiap FunctionResponse harus cocok dengan id, name, dan urutan FunctionCall sebelumnya.
    • Eksekusi berurutan: Memilih giliran eksekusi alat berurutan dalam loop alat multi-langkah.
    • Pemformatan pra-alat: Pisahkan petunjuk inline dengan \n\n dan hindari teks tidak terstruktur sebelum panggilan alat. Untuk mencatat status perantara sebelum panggilan alat, gunakan deklarasi fungsi khusus:

      {
        "name": "update",
        "description": "Update working notes before tool execution",
        "parameters": {
          "type": "OBJECT",
          "properties": {
            "previous_step": {"type": "STRING"},
            "plan": {"type": "STRING"},
            "next_step": {"type": "STRING"}
          },
          "required": ["previous_step", "plan", "next_step"]
        }
      }
      
  • Validasi urutan chat:

    • Payload histori tidak boleh diakhiri dengan pergantian peran model.
    • Respons model yang telah disiapkan tidak didukung.

Bermigrasi ke 4 Argon dari 3.1 Pro

Perilaku berikut berbeda dengan gemini-3.1-pro-preview:

  • 4 Argon memiliki batas 1.048.576 token terpadu di seluruh input dan output (dengan output mencakup penalaran, panggilan fungsi, dan respons akhir), bukan batas input dan output terpisah. Output permintaan tunggal dibatasi hingga 65.536 token (atau 32.768 token untuk permintaan HTTP langsung non-streaming), dan dapat diperluas hingga 1.048.576 token menggunakan dekode panjang di GenerateContent (ditangani secara otomatis di Google Gen AI SDK, atau menggunakan continuation_token dalam loop kustom).
  • thinking_budget menampilkan error HTTP 400, bukan dipetakan ke tingkat pemikiran. MINIMAL juga menampilkan error.
  • Cache konteks eksplisit tidak didukung.
  • Setiap token yang diproses model akan ditagih, termasuk petunjuk sistem alat internal dan deklarasi fungsi saat menggunakan grounding.

Untuk perbandingan berdampingan, lihat Bermigrasi dari Gemini 3.1 Pro.

 client = genai.Client(
     enterprise=True,
     project="PROJECT_ID",
     location="global", # Supports "global", "us", and "eu"
 )

 response = client.models.generate_content(
-    model="gemini-3.1-pro-preview",
+    model="gemini-4-argon",
     contents=prompt,
     config=types.GenerateContentConfig(
-        temperature=0.0,
-        cached_content="projects/.../cachedContents/...", # Explicit caching unsupported
         thinking_config=types.ThinkingConfig(
-            thinking_budget=16384, # Returns HTTP 400 instead of mapping silently
-            thinking_level="MINIMAL", # MINIMAL unsupported on Gemini 4 Argon
+            thinking_level="MEDIUM", # Valid: "LOW", "MEDIUM" (default), "HIGH"
         ),
     ),
 )

Untuk bermigrasi dari gemini-3.1-pro-preview, lakukan hal berikut:

  1. Perbarui ID model menjadi gemini-4-argon (atau gemini-4-argon-cyber-permissive untuk workload keamanan siber yang disetujui Fairwind).
  2. Upgrade ke Google Gen AI SDK terbaru dan perhitungkan batas token input dan output terpadu: Lakukan upgrade ke google-genai >= 2.30.1 (Python), @google/genai >= 2.29.1 (JavaScript), atau Google Gen AI SDK terbaru yang setara. Token input dan output (termasuk pemikiran dan panggilan fungsi) berbagi batas 1.048.576 token yang sama. Untuk output yang melebihi 65.536 token (hingga 1.048.576 token) di GenerateContent, tetapkan max_output_tokens lebih besar dari 65.536 agar Google Gen AI SDK melanjutkan secara otomatis di seluruh permintaan (atau menangani continuation_token dalam loop REST Anda sendiri).
  3. Ganti parameter anggaran penalaran: Ganti thinking_budget dan MINIMAL dengan thinking_level yang ditetapkan ke LOW, MEDIUM (default di gemini-4-argon), atau HIGH (default di gemini-4-argon-cyber-permissive).
  4. Hapus caching eksplisit dan muat konten perintah statis (6.144 token atau lebih) di awal untuk caching implisit otomatis.
  5. Hapus parameter yang tidak berpengaruh atau tidak didukung:
    • Hapus temperature, top_p, dan top_k, yang diabaikan.
    • Hapus candidate_count, frequency_penalty, dan presence_penalty.
    • Menghapus semua giliran model yang telah diisi otomatis dari histori percakapan.

Checklist ringkasan untuk developer

Masalah umum

  • Dekode panjang di GenerateContent memerlukan v1beta1: Dekode panjang (continuation_token) di GenerateContent API (generateContent dan streamGenerateContent) hanya didukung di v1beta1 API (bukan v1). Google Gen AI SDK menggunakan v1beta1 secara default, kecuali jika api_version='v1' ditetapkan di http_options; untuk panggilan REST langsung, gunakan jalur endpoint v1beta1.

Referensi lainnya