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 kami yang paling cerdas, 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.

Perubahan perilaku

Tingkat upaya default baru: medium

Upaya penalaran default kini adalah medium, yang sebelumnya adalah 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"
      }
    }
  }'

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: menyertakan 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 thinking_budget numerik mentah 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 API Respons Fungsi Multimodal 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. 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:

Langkah berikutnya