Panduan developer untuk Gemini 4 Argon

Gemini 4 Argon adalah model termutakhir Google yang unggul dalam pekerjaan mendalam dalam tugas dunia nyata yang kompleks di berbagai domain, termasuk coding, keuangan, hukum, keamanan siber, dan sains. Model ini adalah model pertama dalam keluarga Gemini 4.

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

Yang baru di Gemini 4 Argon

  • Jendela konteks: Jendela konteks 1.048.576 token dibagikan di seluruh token input, penalaran, dan output.
  • Dekode panjang hingga 1.048.576 token: Memperluas pembuatan di luar batas output permintaan tunggal (65.536 token untuk permintaan streaming, atau 32.768 token untuk permintaan HTTP langsung non-streaming) hingga 1.048.576 token 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.
  • Tingkat penalaran: LOW, MEDIUM (default di gemini-4-argon), dan HIGH (default di gemini-4-argon-cyber-permissive).
  • Penyimpanan data ke dalam cache implisit dengan penyimpanan data ke dalam cache yang tahan lama: Penyimpanan data ke dalam cache implisit diterapkan secara otomatis ke awalan perintah bersama yang berisi 6.144 token atau lebih, dengan penyimpanan data ke dalam cache yang tahan lama diaktifkan secara default. Penyimpanan data ke dalam cache konteks eksplisit tidak didukung.
  • Pemahaman video agentic: Tersedia secara umum, dan dinonaktifkan secara default.

Panduan memulai

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

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

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

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

response = client.models.generate_content(
  model="gemini-4-argon",
  contents="How does AI work?",
)
print(response.text)

Python (Interactions API)

from google import genai

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

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)

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 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": "Why is the sky blue?" }
  }
}'

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 penalaran dan output (atau 32.768 token untuk permintaan HTTP langsung non-streaming). Untuk menghasilkan penyelesaian hingga 1.048.576 token di GenerateContent (v1beta1), tetapkan max_output_tokens lebih besar dari 65.536 (hingga 1.048.576). Google Gen AI SDK secara 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
# and stop at a single request.
single_request_response = client.models.generate_content(
    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(single_request_response.text)

REST (Loop kelanjutan 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:

  • Jendela konteks dan batas output permintaan tunggal:
    • Jendela konteks 1.048.576 token dibagikan di seluruh token input, penalaran, dan output. 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 (penalaran + 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 GenerateContent inferensi. Saat permintaan mencapai batas output per permintaan sebelum selesai, API akan menampilkan finish_reason=CONTINUATION dan continuation_token terenkripsi yang berisi hash perintah asli dan status pembuatan hingga saat itu. Sertakan continuation_token dalam permintaan berikutnya dengan perintah asli hingga continuation_token tidak lagi ditampilkan dan finish_reason=STOP. (Di Agent Studio, menetapkan batas token output lebih besar dari 65.536 hingga 1.048.576 akan menangani token kelanjutan secara otomatis.)
    • Kapan harus menggunakan dekode panjang: Sebagian besar permintaan selesai dalam batas per permintaan (65.536 token, atau 32.768 token untuk panggilan REST non-streaming). Dekode panjang memberi model lebih banyak ruang untuk penalaran; dekode panjang tidak membuat jawaban lebih panjang (gunakan thinking_level untuk mengontrol kedalaman penalaran).
    Workload Gunakan dekode panjang? Mengapa
    Matematika, sains, penelitian, dan bukti formal yang sulit Ya Model dapat menggunakan lebih dari 65.536 token untuk menjelajahi 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 di bawah 65.536 token.
    Harness evaluasi yang berhenti pada batas output Ya Dekode panjang mencegah jawaban terpotong saat model menggunakan seluruh permintaan 65.536 atau 32.768 token untuk penalaran.
    Chat, Tanya Jawab, ringkasan, klasifikasi, dan ekstraksi Tidak Tugas ini selesai jauh di bawah 32.768 token.
    Permintaan untuk panjang tetap, seperti "tulis buku 700.000 kata" Tidak Model tidak mengikuti target panjang.
    Agen yang memanggil alat dalam banyak putaran singkat Tidak Setiap putaran singkat. Output besar di setiap putaran mengisi jendela input dan output 1.048.576 token bersama dengan cepat.
    Perintah di dekat 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: 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 SDK (automatic_continuation=True secara default). Tetapkan max_output_tokens lebih besar dari 65.536 (hingga 1.048.576) untuk output lebih dari 65.536 token. 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 streaming 32.768 per permintaan
    Batas waktu per permintaan 20 menit 20 menit 20 menit
    Penyimpanan dan ZDR Tidak ada penyimpanan server (sesuai ZDR) Tidak ada penyimpanan server (sesuai ZDR) Tidak ada penyimpanan server (sesuai ZDR)
    Paling cocok untuk Sebagian besar aplikasi Pemanggil REST dan harness kustom yang melakukan streaming Harness evaluasi sederhana
    • Aturan dan batasan penerapan:
      • v1beta1 persyaratan API (masalah umum): Dekode panjang (continuation_token) di GenerateContent (generateContent dan streamGenerateContent) hanya didukung di v1beta1 API (bukan v1). Google Gen AI SDK menggunakan v1beta1 secara default, kecuali jika api_version='v1' ditentukan di 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 lama dan lapisan kompatibilitas OpenAI tidak dapat mengambil penyelesaian panjang menggunakan token kelanjutan. Untuk penerapan klien kustom, lihat Google Gen AI SDK penerapan referensi.
      • 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 di setiap permintaan kelanjutan bersama dengan continuation_token terbaru (kolom tingkat atas di GenerateContentRequest di REST, atau di GenerateContentConfig di Google Gen AI SDK). Jangan menambahkan output model parsial ke contents atau mengirim perintah lanjutan yang meminta model untuk melanjutkan.
      • Lanjutkan melalui permintaan khusus penalaran: Loop saat finish_reason adalah CONTINUATION dan continuation_token adalah ada, meskipun permintaan menggunakan semua 32.768 atau 65.536 token untuk penalaran (parts: [{"text": ""}]). Jika finish_reason adalah MAX_TOKENS saat continuation_token ada, pembuatan mencapai batas max_output_tokens yang diminta—tingkatkan max_output_tokens dalam permintaan. Gabungkan bagian yang terakumulasi ke dalam putaran model tunggal untuk histori multi-putaran hanya setelah STOP.
      • Penghitungan token, pemadatan, dan diskon cache implisit 95%:
        • Di Python Google Gen AI SDK (generate_content dan generate_content_stream), usage_metadata respons atau bagian akhir 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 memadatkan.
        • 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 mengisi ulang perintah ditambah token yang didekode sebelumnya dan secara otomatis menerima diskon penyimpanan data ke dalam cache konteks implisit 95% (minimum 6.144 token) saat permintaan dijalankan secara berurutan dalam TTL cache 15–20 menit.
        • streamGenerateContent dan generateContent menampilkan continuation_token dan usage_metadata di akhir setiap permintaan (65.536 streaming / 32.768 unary), dan penagihan terjadi di akhir permintaan.
  • Parameter pengambilan sampel yang diabaikan (temperature, top_k, top_p): Backend mengabaikan nilai kustom. Kontrol 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 parameter tersebut dari permintaan Anda.

  • Penyimpanan data ke dalam cache konteks: Penyimpanan data ke dalam cache konteks eksplisit tidak didukung. Penyimpanan data ke dalam cache implisit (dengan penyimpanan data ke dalam cache yang tahan lama diaktifkan secara default) diterapkan secara otomatis ke awalan perintah bersama yang berisi 6.144 token atau lebih, jadi tempatkan konten statis di awal perintah Anda.

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

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

  • Pemanggilan fungsi:

    • Simetri putaran: Setiap FunctionResponse harus cocok dengan id, name, dan urutan FunctionCall sebelumnya.
    • Eksekusi berurutan: Pilih putaran 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.
  • Validasi urutan chat:

    • Payload histori tidak boleh diakhiri dengan putaran peran model.
    • Putaran model yang telah diisi sebelumnya tidak didukung.

Bermigrasi ke 4 Argon dari 3.1 Pro

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

  • Jendela konteks adalah satu jendela 1.048.576 token yang dibagikan oleh input, penalaran, dan output, 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 diperpanjang 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 penalaran. MINIMAL juga menampilkan error.
  • Penyimpanan data ke dalam cache konteks eksplisit tidak didukung.
  • Setiap token yang diproses model ditagih, termasuk petunjuk sistem alat internal dan deklarasi fungsi saat menggunakan grounding.

Untuk perbandingan berdampingan, lihat Bermigrasi dari Gemini 3.1 Pro.

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

  1. Update ID model ke 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 pertimbangkan jendela konteks bersama: Upgrade ke google-genai >= 2.30.1 (Python) atau Google Gen AI SDK terbaru yang setara. Token input, penalaran, dan output berbagi jendela konteks 1.048.576 token. Untuk output yang melebihi 65.536 token (hingga 1.048.576 token) di GenerateContent, tetapkan max_output_tokens lebih besar dari 65.536 sehingga Google Gen AI SDK terus berjalan secara otomatis di seluruh permintaan (atau tangani continuation_token di loop REST Anda sendiri).
  3. Ganti parameter anggaran penalaran: Ganti thinking_budget dan MINIMAL dengan thinking_level yang ditetapkan ke salah satu nilai berikut:
    • HIGH: Default di gemini-4-argon-cyber-permissive. Teknik 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.
  4. Hapus penyimpanan data ke dalam cache eksplisit dan muat konten perintah statis di awal (6.144 token atau lebih) untuk penyimpanan data ke dalam cache 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.
    • Hapus putaran model yang telah diisi sebelumnya 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