Yang baru di Gemini 3.5 Flash

Gemini 3.5 Flash tersedia secara umum (GA), stabil, dan siap digunakan untuk produksi berskala. Sebagai model Flash tercerdas kami, model ini memberikan performa canggih yang berkelanjutan dalam eksekusi agentic, coding, dan tugas dengan cakupan waktu yang panjang dalam skala besar.

Panduan ini berisi ringkasan peningkatan, perubahan API, dan panduan migrasi untuk Gemini 3.5 Flash.

Model baru

Model ID Model Deskripsi
Gemini 3.5 Flash gemini-3.5-flash Model tercerdas kami untuk performa canggih yang berkelanjutan dalam tugas agentic dan coding.

Gemini 3.5 Flash mendukung jendela konteks 1 juta token, 65 ribu token output maksimum, kemampuan berpikir, dan serangkaian alat serta fitur platform yang sama dengan Gemini 3 Flash. Penggunaan Komputer saat ini tidak didukung.

Untuk mengetahui spesifikasi lengkapnya, lihat ringkasan model. Untuk mengetahui harga, lihat halaman harga.

Panduan memulai

Semua contoh dalam panduan ini menggunakan GenerateContent API. Interactions API juga didukung; opsi dan rekomendasi konfigurasi yang sama berlaku.

Python

from google import genai

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Explain how parallel agentic execution works in three sentences.",
)
print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Explain how parallel agentic execution works in three sentences.",
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Explain how parallel agentic execution works in three sentences."}]
    }]
  }'

Yang baru

  • Performa canggih yang berkelanjutan: Model Flash tercerdas kami, yang dioptimalkan untuk tugas agentic dan coding dalam skala besar.
  • Eksekusi berbasis agen: Deployment sub-agen, pemecahan masalah, dan loop berbasis agen yang cepat dalam skala besar.
  • Coding: Siklus coding berulang, eksplorasi cepat, dan pembuatan prototipe untuk menguji jalur alternatif dan mengeksplorasi solusi secara dinamis.
  • Horizon panjang: Alur kerja multilangkah dan penggunaan alat dalam skala besar.
  • Mempertahankan pemikiran: Model mempertahankan penalaran perantara di seluruh percakapan multi-giliran secara otomatis. Tidak perlu ada perubahan API.
  • Tingkat upaya default baru: Upaya berpikir default diubah dari high menjadi medium. Lihat Tingkat upaya default baru untuk mengetahui detailnya.
  • Peningkatan kemampuan berpikir low: low kini jauh lebih baik untuk tugas-tugas kode dan agentik yang memerlukan lebih sedikit langkah, sehingga menawarkan kualitas yang kuat dengan latensi dan biaya yang lebih rendah.
  • Rilis GA: Model stabil untuk penggunaan produksi yang diskalakan.

Memilih model Flash yang tepat

Gemini 3.5 Flash adalah model Flash kami yang paling cerdas dan mumpuni. Namun, kasus penggunaan yang berbeda mungkin memiliki persyaratan biaya dan latensi yang berbeda.

  • Gemini 3.1 Flash-Lite: Untuk tugas bervolume tinggi dan berbiaya rendah yang tidak memerlukan kedalaman penalaran tingkat lanjut dari 3.5 Flash, sebaiknya gunakan Gemini 3.1 Flash-Lite. Model ini stabil, jangka panjang, dan dioptimalkan untuk efisiensi. Lihat panduan developer Flash-Lite untuk mengetahui detail selengkapnya.
  • Pratinjau Gemini 3 Flash: Meskipun kami merekomendasikan migrasi ke 3.5 Flash untuk stabilitas GA dan penalaran yang lebih baik, Gemini 3 Flash (Pratinjau) tetap tersedia bagi developer yang ingin terus menguji dengan model pratinjau.

Perubahan perilaku

Tingkat upaya default baru: medium

Upaya penalaran default kini adalah medium, yang diubah dari high di Pratinjau Gemini 3 Flash. medium memberikan hasil yang sangat baik di berbagai tugas, sekaligus lebih cepat dan hemat biaya. Untuk masalah yang kompleks, high mendorong model untuk berpikir lebih mendalam.

Tingkat upaya Kapan digunakan
minimal Dioptimalkan untuk kecepatan respons. Kasus penggunaan seperti chat, jawaban faktual cepat, panggilan alat yang lebih sederhana.
low Tugas kode dan agentic yang memerlukan latensi lebih rendah dan lebih sedikit langkah. Juga berfungsi dengan baik untuk tugas analisis dan penulisan yang memerlukan pemikiran.
medium (default) Kualitas terbaik untuk sebagian besar tugas. Direkomendasikan untuk kode kompleks dan kasus penggunaan agentik.
high Memaksimalkan kemampuan model untuk berpikir dan menggunakan alat. Paling cocok untuk penalaran kompleks, matematika sulit, dan tugas kode atau agen yang paling sulit. Memungkinkan pemikiran yang lebih luas dan panggilan fungsi.

Untuk mengganti default, tetapkan thinking_level dalam konfigurasi Anda:

Python

from google import genai
from google.genai import types

client = genai.Client()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Prove that the square root of 2 is irrational.",
    config=types.GenerateContentConfig(
        thinking_config=types.ThinkingConfig(thinking_level="high")
    ),
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const response = await ai.models.generateContent({
    model: "gemini-3.5-flash",
    contents: "Prove that the square root of 2 is irrational.",
    config: {
      thinkingConfig: {
        thinkingLevel: "HIGH",
      },
    },
  });
  console.log(response.text);
}

main();

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [{
      "parts": [{"text": "Prove that the square root of 2 is irrational."}]
    }],
    "generationConfig": {
      "thinkingConfig": {
        "thinkingLevel": "HIGH"
      }
    }
  }'

Tabel berikut menunjukkan tingkat pemikiran yang didukung per model:

Tingkat Penalaran Gemini 3.5 Flash Gemini 3.1 Pro Gemini 3.1 Flash-Lite Gemini 3 Flash Deskripsi
minimal Didukung Tidak didukung Didukung (Default) Didukung Cocok dengan setelan "tanpa penalaran" untuk sebagian besar kueri. Perhatikan, minimal tidak menjamin bahwa penalaran dinonaktifkan, model mungkin bernalar sangat minimal untuk tugas yang rumit.
low Didukung Didukung Didukung Didukung Meminimalkan latensi dan biaya.
medium Didukung (Default) Didukung Didukung Didukung Pemikiran yang seimbang untuk sebagian besar tugas.
high Didukung (Dinamis) Didukung (Default, Dinamis) Didukung (Dinamis) Didukung (Default, Dinamis) Memaksimalkan kedalaman penalaran.

Preservasi pemikiran

Model ini mempertahankan penalaran perantara di seluruh percakapan multi-giliran secara otomatis. Jika ada dalam histori percakapan, konteks penalaran akan berlanjut, sehingga meningkatkan performa pada tugas multi-langkah yang kompleks seperti proses debug iteratif dan refaktorisasi kode. Tidak perlu perubahan API:

  • Interactions API: Pemikiran sudah dipertahankan secara otomatis. Tidak ada perubahan perilaku.
  • GenerateContent API: Mulai dari Gemini 3.5 Flash, model ini menggunakan konteks penalaran dari semua giliran sebelumnya jika tanda tangan pemikiran ada dalam histori percakapan. Untuk mengaktifkannya, teruskan histori percakapan lengkap dan tidak dimodifikasi (termasuk tanda tangan pemikiran) di contents. SDK akan menanganinya secara otomatis.

Pembaruan parameter dan praktik terbaik di Gemini 3.x

Berikut ini berlaku untuk semua model Gemini 3.x, termasuk Gemini 3.5 Flash.

  • temperature, top_p, top_k: sebaiknya jangan mengubah nilai default. Kemampuan penalaran Gemini 3 dioptimalkan untuk setelan default.
  • Gunakan thinking_level, bukan thinking_budget.
  • Pencocokan respons panggilan fungsi: id, name, dan jumlah respons harus cocok dengan panggilan sebelumnya.
  • Respons fungsi multimodal: sertakan konten multimodal di dalam respons fungsi, bukan di luarnya.
  • Petunjuk inline dalam respons fungsi: ditambahkan ke teks respons fungsi, bukan sebagai bagian terpisah.
  • Kurangi panggilan alat yang tidak perlu: Gunakan tingkat pemikiran yang lebih rendah atau bereksperimen dengan petunjuk sistem untuk mengurangi panggilan alat dalam alur kerja berbasis agen.

Lihat bagian di bawah untuk mengetahui cara mengupdate kode Anda.

Parameter sampling (tidak lagi direkomendasikan)

temperature, top_p, dan top_k tidak lagi direkomendasikan untuk semua model Gemini 3.x. Kemampuan penalaran Gemini 3 dioptimalkan untuk setelan default. Hapus parameter ini dari semua permintaan.

# ⚠️ Remove these parameters (not recommended)
config = types.GenerateContentConfig(
    temperature=0.7,
    top_p=0.9,
    top_k=40
)

Untuk memastikan determinisme, sebaiknya tentukan petunjuk sistem dengan aturan eksplisit untuk kasus penggunaan spesifik Anda.

thinking_budget (tidak lagi direkomendasikan)

Parameter numerik mentah thinking_budget tidak lagi direkomendasikan di semua model Gemini 3.x. Gunakan enum string thinking_level sebagai gantinya.

# ⚠️ Before (not recommended)
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_budget=7500)
)

# ✅ After
config = types.GenerateContentConfig(
    thinking_config=types.ThinkingConfig(thinking_level="medium")
)

Nilai yang tersedia: minimal, low, medium (default), dan high.

Panggilan fungsi: pencocokan respons yang ketat

Interactions API sudah mengalami error pada respons fungsi yang tidak cocok. API GenerateContent belum menampilkan error, tetapi respons yang tidak cocok menyebabkan model menampilkan respons kosong dengan finish_reason: STOP dalam sebagian besar kasus. Selalu ikuti konvensi berikut:

Persyaratan Detail
Sertakan id Setiap FunctionResponse harus menyertakan id dari FunctionCall yang sesuai
Pertandingan ke-name name dalam respons harus cocok dengan name dalam panggilan
Jumlah kecocokan Menampilkan tepat satu FunctionResponse untuk setiap FunctionCall yang diterima

Python

# ✅ Include matching id and name in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include matching id and name in the function response
const functionResponsePart = {
  functionResponse: {
    name: toolCall.name,
    response: { result: result },
    id: toolCall.id,
  },
};

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    { role: "user", parts: [functionResponsePart] },
  ],
  config: config,
});

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H 'Content-Type: application/json' \
  -X POST \
  -d '{
    "contents": [
      {"role": "user", "parts": [{"text": "..."}]},
      {"role": "model", "parts": [{"functionCall": {"name": "my_function", "args": {...}}}]},
      {"role": "user", "parts": [{"functionResponse": {"name": "my_function", "id": "call_id", "response": {"result": "..."}}}]}
    ]
  }'

Respons fungsi multimodal

Kami sering melihat klien memberikan gambar di luar respons fungsi. Hal ini dapat menyebabkan perilaku model yang tidak terduga (misalnya, kebocoran pemikiran) dan menghasilkan output berkualitas lebih rendah. Ikuti rekomendasi dalam dokumen Multimodal Function Responses API dan sertakan konten multimodal di bagian respons fungsi yang Anda kirim ke model. Model dapat memproses konten multimodal ini pada giliran berikutnya untuk menghasilkan respons yang lebih informatif.

Python

# ✅ Include multimodal content in the function response
final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={
                    "result": "instrument.jpg",
                    "image": base64_image_data,
                },
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Include multimodal content in the function response
const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: {
            result: "instrument.jpg",
            image: base64ImageData,
          },
        },
      }],
    },
  ],
  config: config,
});

Petunjuk inline dalam respons fungsi

Kami sering melihat klien memberikan petunjuk tambahan bersama dengan respons fungsi sebagai Parts berikutnya. Hal ini dapat menyebabkan perilaku model yang tidak terduga (misalnya, kebocoran pemikiran) dan menghasilkan output berkualitas lebih rendah. Sebagai gantinya, tambahkan petunjuk tambahan di akhir teks respons fungsi yang dipisahkan oleh dua baris baru.

Python

# ✅ Append inline instructions to the end of the function response separated by two newlines
result_text = f"{json.dumps(result)}\n\n<your inline instructions>"

final_response = client.models.generate_content(
    model="gemini-3.5-flash",
    config=config,
    contents=[
        *previous_contents,
        response.candidates[0].content,
        types.Content(role="user", parts=[
            types.Part.from_function_response(
                name=tool_call.name,
                response={"result": result_text},
                id=tool_call.id,
            )
        ]),
    ],
)

JavaScript

// ✅ Append inline instructions to the end of the function response separated by two newlines
const resultText = `${JSON.stringify(result)}\n\n<your inline instructions>`;

const finalResponse = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: [
    ...previousContents,
    { role: "model", parts: [{ functionCall: toolCall }] },
    {
      role: "user",
      parts: [{
        functionResponse: {
          name: toolCall.name,
          id: toolCall.id,
          response: { result: resultText },
        },
      }],
    },
  ],
  config: config,
});

Mengurangi panggilan alat yang tidak perlu

Jika Anda mengalami penggunaan berlebihan panggilan alat, ada dua teknik yang dapat membantu meminimalkannya:

  1. Mulai dengan mengurangi tingkat pemikiran (medium, low, atau minimal): Tingkat pemikiran yang lebih tinggi mendorong model untuk menggunakan lebih banyak alat untuk menjelajahi dan memverifikasi, sehingga menurunkan tingkat dapat mengurangi panggilan alat.

  2. Tambahkan petunjuk sistem: Jika penggunaan berlebihan berlanjut setelah menyesuaikan tingkat pemikiran, pertimbangkan perintah yang membatasi penggunaan alat. Contoh:

    You have a limited action budget of <n> tool calls. Use them efficiently.
    

Checklist migrasi

Bermigrasi dari Pratinjau Gemini 3 Flash

  • Perbarui nama model: gemini-3-flash-previewgemini-3.5-flash
  • Tinjau harga. Gemini 3.5 Flash lebih mahal daripada Gemini 3 Flash Pratinjau. Jika kasus penggunaan Anda sangat sensitif terhadap biaya, sebaiknya bermigrasilah ke Gemini 3.1 Flash-Lite. Lihat halaman harga untuk mengetahui detailnya.
  • Hapus temperature, top_p, top_k dari konfigurasi Anda (tidak lagi direkomendasikan).
  • Ganti thinking_budget dengan thinking_level.
  • Tambahkan id dan name yang cocok ke semua bagian FunctionResponse.
  • Uji perintah Anda. Upaya default diubah dari highmedium; verifikasi kualitas, kecepatan, dan biaya.
  • Pelestarian pemikiran kini aktif secara default. Konteks penalaran diteruskan di seluruh giliran, yang meningkatkan performa, tetapi dapat meningkatkan penggunaan token.
  • Kurangi panggilan alat yang tidak perlu: mulai dengan mengurangi tingkat pemikiran (medium, low, atau minimal); tambahkan petunjuk sistem untuk membatasi penggunaan alat jika penggunaan berlebihan terus terjadi.
  • Penggunaan Komputer saat ini tidak didukung di Gemini 3.5 Flash. Untuk workload Penggunaan Komputer, terus gunakan Pratinjau Kilat Gemini 3.

Bermigrasi dari Gemini 2.5

Semua hal di atas, ditambah:

  • Sederhanakan perintah. Jika Anda menggunakan teknik pembuatan perintah chain-of-thought untuk memaksakan penalaran, coba gunakan thinking_level: "medium" atau "high" dengan perintah yang lebih sederhana.
  • Uji workload PDF dan media. Jika Anda mengandalkan perilaku tertentu untuk penguraian dokumen padat, uji setelan media_resolution_high untuk memastikan akurasi berkelanjutan. Bermigrasi ke default Gemini 3 juga dapat meningkatkan penggunaan token untuk PDF, tetapi menurunkannya untuk video; jika permintaan melebihi jendela konteks, kurangi media_resolution secara eksplisit. Lihat dokumen resolusi media untuk mengetahui detailnya.
  • Manfaatkan penggunaan alat gabungan. Google Penelusuran, konteks URL, eksekusi kode, dan fungsi kustom dapat digunakan dalam permintaan yang sama.
  • Jika menggunakan respons fungsi multimodal, pindahkan konten multimodal ke dalam bagian respons fungsi, bukan di sampingnya.
  • Jika menggunakan petunjuk inline dengan respons fungsi, tambahkan petunjuk tersebut ke teks respons fungsi yang dipisahkan oleh dua baris baru, bukan sebagai bagian terpisah.
  • Segmentasi gambar tidak didukung di Gemini 3.x. Untuk beban kerja segmentasi, terus gunakan Gemini 2.5 Flash dengan penalaran dinonaktifkan, atau Gemini Robotics-ER 1.6.

Fitur keluarga Gemini 3

Gemini 3.5 Flash mewarisi semua kemampuan rangkaian model Gemini 3, kecuali Penggunaan Komputer. Fitur yang diperkenalkan di Gemini 3 yang tetap ada:

  • Pemikiran: Terenkripsi konteks penalaran dipertahankan di seluruh panggilan API. Otomatis di Interactions API; implisit di GenerateContent.
  • Output terstruktur dengan alat: Gabungkan mode JSON dengan alat bawaan (Penelusuran, konteks URL, eksekusi kode, panggilan fungsi).
  • Respons fungsi multimodal: Menampilkan gambar, audio, dan media lainnya dalam hasil panggilan fungsi.
  • Eksekusi kode dengan gambar: Mengeksekusi kode yang memproses dan membuat gambar.
  • Penggunaan alat gabungan: Gunakan alat bawaan dan panggilan fungsi kustom dalam permintaan yang sama.
  • Resolusi media: Kontrol terperinci atas alokasi token untuk input gambar, video, dan PDF. Model Gemini 3 mendukung setelan resolusi per item konten (low, medium, high, ultra_high) untuk perintah fidelitas campuran.
  • Tanda tangan pemikiran: Representasi terenkripsi dari penalaran internal model. Diperlukan untuk panggilan fungsi multi-turn; dikelola secara otomatis oleh SDK resmi.

Praktik terbaik pembuatan perintah

Model Gemini 3.x adalah model penalaran, yang mengubah cara Anda memberikan perintah.

  • Petunjuk yang tepat: Sampaikan dengan ringkas. Gemini 3.x merespons dengan baik petunjuk yang langsung dan jelas. Teknik pembuatan perintah yang panjang atau kompleks yang dirancang untuk model lama dapat menyebabkan model menganalisis secara berlebihan.
  • Panjang output: Secara default, Gemini 3.x tidak terlalu panjang dan lebih memilih jawaban yang langsung dan efisien. Jika kasus penggunaan Anda memerlukan gaya percakapan, arahkan model secara eksplisit dalam perintah Anda (misalnya, "Jelaskan ini sebagai asisten yang ramah dan banyak bicara").
  • Pengelolaan konteks: Saat bekerja dengan set data besar (seperti seluruh buku, codebase, atau video panjang), tempatkan petunjuk atau pertanyaan spesifik Anda di akhir perintah, setelah konteks data. Perkuat penalaran model dengan memulai pertanyaan Anda dengan frasa seperti, "Berdasarkan informasi sebelumnya...".

Pelajari lebih lanjut strategi desain perintah di panduan rekayasa perintah.

Batasan

  • Segmentasi gambar tidak didukung di Gemini 3.x. Untuk beban kerja segmentasi, terus gunakan Gemini 2.5 Flash dengan penalaran dinonaktifkan, atau Gemini Robotics-ER 1.6.

FAQ

  1. Apa batas pengetahuan untuk Gemini 3.5 Flash? Gemini 3.5 Flash memiliki batas pengetahuan hingga Januari 2025. Untuk informasi terbaru, gunakan alat Perujukan Penelusuran.

  2. What are the context window limits? Gemini 3.5 Flash mendukung jendela konteks input 1 juta token dan hingga 65 ribu token output.

  3. Apakah kode thinking_budget lama saya masih berfungsi? Ya, thinking_budget masih didukung untuk kompatibilitas mundur, tetapi sebaiknya Anda bermigrasi ke thinking_level untuk performa yang lebih dapat diprediksi. Jangan gunakan keduanya dalam permintaan yang sama.

  4. Apakah Gemini 3.5 Flash mendukung Batch API? Ya. Lihat panduan Batch API untuk mengetahui detailnya.

  5. Apakah Context Caching didukung? Ya, fitur Context Caching didukung.

  6. Alat mana yang didukung? 3.5 Flash mendukung Google Penelusuran, Perujukan dengan Google Maps, Penelusuran File, Eksekusi Kode, Konteks URL, dan Panggilan Fungsi standar, termasuk penggunaan alat gabungan. Penggunaan Komputer tidak didukung di Gemini 3.5 Flash.

Langkah berikutnya