Google merilis Gemini 3.8 Flash pada 2 September 2026, tiga minggu setelah 3.7 Flash, dengan harga perkenalan yang sama dan kecepatan yang kira-kira sama. ID modelnya adalah `gemini-3.8-flash`, tanpa sufiks pratinjau, dan kartu modelnya menggambarkannya sebagai "berdasarkan Gemini 3.7 Flash". Jadi, sebagian besar tim mengharapkan penggantian satu baris. Untuk perintah obrolan biasa, memang begitu. Untuk apa pun yang mengatur parameter pemikiran, menyetel pengambilan sampel, atau menjalankan loop alat, ada sembilan hal yang harus diperiksa, dan dua di antaranya mengembalikan kesalahan yang tidak pernah terjadi pada 3.7 Flash. Panduan ini adalah daftar periksa tersebut, dibangun dari halaman Google Yang baru di Gemini 3.8 Flash dan panduan pengembang Gemini 3. Setiap item memiliki fragmen sebelum dan sesudah untuk kedua bentuk API: API Interaksi, yang kini diperlakukan Google sebagai jalur utama, dan endpoint `generateContent` lama yang masih digunakan sebagian besar kode 3.7 Flash. Setiap fragmen dapat ditempelkan ke Apidog dan dikirim ke endpoint langsung sebelum menyentuh produksi. Jika Anda ingin gambaran umum model terlebih dahulu, mulailah dengan apa itu Gemini 3.8 Flash. Satu catatan pembingkaian sebelum daftar. Google mengatakan 3.8 Flash "bekerja lebih keras" sesuai desain: pada tugas-tugas kompleks, ia mengambil langkah-langkah penalaran yang lebih kecil, memverifikasi pekerjaannya, dan memanggil alat secara berulang. Itu adalah sumber sebagian besar keuntungannya dan juga alasan mengapa migrasi membutuhkan tinjauan anggaran token, bukan hanya perbedaan konfigurasi.button
Apa yang berubah dan apa yang tidak
| Area | 3.7 Flash | 3.8 Flash |
|---|---|---|
| ID Model | gemini-3.7-flash |
gemini-3.8-flash |
| Konteks / Output | 1.048.576 / 65.536 | Sama |
| Harga (perkenalan hingga 31 Des 2026) | $0,75 / $3,75 per 1 juta | Sama, lalu $1,50 / $7,50 untuk keduanya mulai 1 Jan 2027 |
| Level Berpikir | rendah, sedang, tinggi | Sama; minimal mengembalikan kesalahan validasi; default adalah medium |
| Token per Tugas | dasar | +30% token output rata-rata (Analisis Artifisial) |
| Hasil Fungsi | call_id + name |
Keduanya wajib, diberlakukan |
| Status Dukungan | "tetap didukung penuh", tidak ada tanggal penghentian | Saat ini |
Sumber untuk baris harga: halaman harga API Gemini Google Gemini API pricing page, di mana baris 3.6, 3.7, dan 3.8 Flash identik.
Langkah 0: putuskan apakah akan pindah sama sekali
Tidak ada yang memaksa migrasi. Posting peluncuran Google menyatakan bahwa "Gemini 3.7 Flash tetap didukung penuh", dan belum ada tanggal penghentian yang diterbitkan. Harga per token tidak berubah, jadi satu-satunya perbedaan biaya adalah penggunaan. Analisis Artifisial mengukur 3.8 Flash pada pemikiran tinggi menggunakan sekitar 48 ribu token output per tugas pada indeks mereka, 30% lebih banyak dari 3.7 Flash, yang menggeser biaya per tugas dari $0,40 menjadi $0,58 pada tingkat yang sama. Skor indeks mereka naik dari 56 menjadi 59, dan akurasi penggunaan alat pada τ³-Banking naik 12 poin menjadi 45%. Jadi, pertukaran adalah lebih banyak kemampuan per tugas untuk lebih banyak token per tugas. Jika beban kerja Anda singkat, sensitif terhadap latensi, atau sudah melewati evaluasinya pada 3.7 Flash, Anda dapat tetap menggunakan yang lama. Perbandingan 3.8 Flash vs 3.7 Flash lengkap memiliki matriks keputusan berdasarkan beban kerja. Jika Anda akan pindah, teruslah membaca.
Langkah 1: tukar ID model di kedua bentuk
API Interaksi (API utama Google untuk Gemini 3.x):
{"model": "gemini-3.7-flash", "input": "..."}
{"model": "gemini-3.8-flash", "input": "..."}
`generateContent` lawas (masih didukung, tidak ada penghentian):
POST /v1beta/models/gemini-3.7-flash:generateContent
POST /v1beta/models/gemini-3.8-flash:generateContent
SDK Python, kedua jalur:
client.interactions.create(model="gemini-3.8-flash", input=..., generation_config={"thinking_level": "medium"})
client.models.generate_content(model="gemini-3.8-flash", contents=..., config=types.GenerateContentConfig(thinking_config=types.ThinkingConfig(thinking_level="low")))
Jika Anda belum pernah menggunakan API Interaksi, panduan API 3.8 Flash mencakup kedua bentuk secara menyeluruh; panduan API 3.7 Flash yang lebih lama hanya mencakup `generateContent`, itulah mengapa panduan ini menunjukkan keduanya.
Daftar periksa migrasi sembilan item
Kerjakan ini secara berurutan. Item 1 hingga 4 adalah perubahan konfigurasi yang langsung terlihat. Item 5 dan 6 memengaruhi loop alat dan status multi-giliran. Item 7 hingga 9 adalah perubahan perencanaan dan media yang hanya akan Anda tangkap dalam pengujian.
1. Petakan thinking_level: "minimal" ke "low"
Ini adalah yang pertama rusak. 3.8 Flash menerima `low`, `medium`, dan `high`. Mengirim `minimal` mengembalikan kesalahan validasi. Default ketika Anda tidak mengirim apa-apa adalah `medium`. Gemini 3 Pro default ke `high`, jadi jangan menyalin konfigurasi Pro dan berasumsi itu cocok. Sebelum (3.7 Flash, Interaksi):
{"generation_config": {"thinking_level": "minimal"}}
Setelah (3.8 Flash):
{"generation_config": {"thinking_level": "low"}}
Bentuk lawas, setelah:
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}
Dokumentasi berpikir Google menggambarkan `low` sebagai pengaturan latensi dan `medium` sebagai default untuk kode kompleks dan pekerjaan agentic. Level mana yang akan digunakan per rute adalah artikelnya sendiri; untuk tujuan migrasi, `low` adalah pengganti langsung untuk `minimal`.
2. Hapus temperature, top_p, dan top_k
Panduan Google untuk setiap model Gemini 3 adalah menjaga suhu pada default 1.0. Menurunkannya "dapat menyebabkan pengulangan atau kinerja yang menurun". Banyak konfigurasi 3.7 Flash membawa `temperature: 0.2` yang tersisa dari generasi sebelumnya. Hapus kunci pengambilan sampel daripada mengaturnya. Sebelum:
{"generationConfig": {"temperature": 0.2, "topP": 0.9, "topK": 40}}
Setelah:
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "medium"}}}
Jika Anda menggunakan suhu rendah untuk mendapatkan JSON yang dapat diulang, gunakan output terstruktur sebagai gantinya. Ini didukung pada 3.8 Flash dan memberi Anda respons berbentuk skema tanpa menyentuh pengambilan sampel.
3. Ganti thinking_budget dengan thinking_level
`thinking_budget` adalah batas token integer. `thinking_level` adalah enum string. Tidak ada pemetaan aritmatika di antara keduanya, jadi pilih level berdasarkan niat: rute latensi mendapatkan `low`, rute default mendapatkan `medium`, rute multi-langkah tersulit mendapatkan `high`. Sebelum:
{"generationConfig": {"thinkingConfig": {"thinkingBudget": 4096}}}
Setelah:
{"generationConfig": {"thinkingConfig": {"thinkingLevel": "low"}}}
Token berpikir masih ditagih sebagai token output dan dilaporkan dalam `usageMetadata.thoughtsTokenCount`, jadi kontrol biaya bergerak dari batas keras ke pilihan level ditambah pernyataan dalam pengujian Anda (lihat bagian regresi di bawah).
4. Hapus candidate_count
Gemini 3 dan yang lebih baru tidak mendukung beberapa kandidat. Hapus kunci, dan hapus kode apa pun yang mengindeks `candidates[1]` atau lebih. Sebelum:
{"generationConfig": {"candidateCount": 2}}
Setelah:
{"generationConfig": {}}
Jika Anda mengambil sampel beberapa kandidat untuk memilih yang terbaik, penggantinya pada 3.8 Flash adalah tingkat pemikiran yang lebih tinggi, yang melakukan verifikasi dalam satu respons.
5. Letakkan call_id dan name pada setiap hasil fungsi
Ini adalah gangguan keras kedua. Pada 3.8 Flash, setiap hasil fungsi yang Anda kirimkan kembali harus membawa `id` panggilan dan `name` fungsi. Panduan Gemini 3 Google mengatakan untuk "memastikan semua objek `FunctionResponse` menyertakan `call_id` dan `name`". Kode yang hanya mengulang nama akan gagal pada giliran hasil alat. API Interaksi, setelah:
{
"previous_interaction_id": "<id dari langkah function_call>",
"input": [{
"type": "function_result",
"name": "get_weather",
"call_id": "<id dari langkah function_call>",
"result": [{"type": "text", "text": "{\"temp_c\": 24}"}]
}]
}
Langkah `function_call` model memberi Anda `id`, `name`, dan `arguments`; salin dua yang pertama langsung kembali. Dalam bentuk lawas, bagian `functionResponse` membawa nilai yang sama dalam bidang yang dieja `id` (cocok dengan `id` pada bagian `functionCall` model) bersama dengan `name` dan `response`. Referensi pemanggilan fungsi Google memiliki contoh kanonis, dan panduan pemanggilan fungsi 3.8 Flash menjelaskan seluruh loop dua giliran, termasuk mengapa 3.8 Flash memanggil alat lebih banyak kali per tugas daripada 3.7 Flash.
6. Lewatkan tanda tangan pemikiran kembali persis seperti yang diterima
Model Gemini 3 melampirkan tanda tangan pemikiran ke bagian respons. Saat Anda membangun giliran berikutnya sendiri, kembalikan setiap bagian tanpa perubahan, termasuk tanda tangan, untuk semua jenis bagian, tidak hanya teks. Menghapus atau menserialisasinya ulang akan menurunkan kontinuitas model pada langkah berikutnya. API Interaksi menghilangkan pekerjaan ini ketika Anda membiarkan server menyimpan status: teruskan `previous_interaction_id` dan Google menyimpan riwayat. Jika Anda menyetel `store: false` untuk panggilan tanpa status, Anda memiliki riwayat lagi dan harus mengirimkan blok pemikiran dan tanda tangan sendiri. Dalam `generateContent` lawas, Anda selalu memiliki riwayat, jadi audit kode apa pun yang membangun ulang `contents` dari salinan respons terakhir yang dipotong.
7. Anggarkan lebih banyak token per rute
Item ini tidak memiliki kesalahan untuk ditangkap, itulah mengapa sering terlewat. Angka token output +30% dari Analisis Artifisial adalah rata-rata di seluruh indeks mereka pada pemikiran tinggi. Kata-kata Google sendiri adalah bahwa model "dapat menggunakan lebih banyak token pada tugas yang berjalan lebih lama dan kompleks, sesuai desain" dan bahwa penggunaan meningkat "terutama pada tingkat usaha yang lebih tinggi". Rencanakan per rute, bukan secara global:
- Endpoint yang sensitif terhadap latensi:
low. AA mengukur 0,8 menit per tugas pada rendah versus 2,5 pada tinggi, dan $0,24 per tugas versus $0,58. - Rute default:
medium, sekitar $0,41 per tugas pada indeks yang sama. - Loop agen: harapkan lebih banyak giliran panggilan alat per tugas, jadi batasi loop berdasarkan jumlah giliran, bukan hanya berdasarkan token.
Juga tinjau kembali batas 65.536 token output. Perintah 3.7 Flash yang mengembalikan 40 ribu token dengan pemikiran sekarang mungkin mendekati batas. Jika Anda memodelkan tagihan, rincian harga 3.8 Flash menghitung angka per tugas di ketiga level.
8. Uji media_resolution_high pada PDF versus video
3.8 Flash menerima masukan teks, gambar, video, audio, dan PDF. Pengaturan resolusi media mengubah berapa banyak token yang dikonsumsi setiap masukan media, dan biaya berbeda berdasarkan jenis media, sehingga pengaturan yang sama yang murah pada halaman PDF bisa mahal pada video panjang. Jangan menggunakan pengaturan resolusi tinggi global dari 3.7 Flash tanpa mengukurnya. Kirim satu PDF representatif dan satu video representatif pada setiap resolusi dan bandingkan `usageMetadata.promptTokenCount` di antara keduanya.
9. Hapus semua panggilan segmentasi gambar
Segmentasi gambar tidak didukung pada model Gemini 3. Jika alur kerja era 3.7 Flash masih mengarahkan segmentasi melalui model Gemini yang lebih lama, jalur itu terpisah dari migrasi ini; jika perintah meminta masker segmentasi dari 3.8 Flash, harapkan gagal daripada mengembalikan output yang dapat digunakan. Pembuatan gambar, pembuatan audio, dan Live API juga tidak didukung pada 3.8 Flash, menurut halaman model.
Buat rencana regresi di Apidog
Migrasi dengan dua perubahan mendasar dan pergeseran penggunaan token membutuhkan perbandingan yang dapat diulang, bukan curl satu kali. Berikut adalah penyiapan yang kami gunakan di Apidog, yang berfungsi karena Apidog adalah klien API dan pelari pengujian: ia mengirim permintaan, memeriksa respons, dan menjadwalkan jalannya. Itu tidak menjalankan model. Lingkungan dan variabel. Buat lingkungan Gemini dengan `GEMINI_API_KEY` disimpan sebagai variabel rahasia dan variabel `MODEL`. Gunakan `{{MODEL}}` di URL permintaan `generateContent` dan di bidang `model` permintaan Interaksi, sehingga permintaan yang disimpan sama berjalan terhadap salah satu model. Prompt emas. Simpan 10 hingga 20 prompt yang mewakili rute asli Anda: giliran obrolan singkat, ekstraksi output terstruktur, panggilan fungsi dua giliran dengan alat yang dimock, satu input PDF dan satu input video. Masing-masing adalah satu permintaan dalam skenario pengujian. Asersi. Tambahkan tiga per permintaan:
- Status adalah 200, dan isi respons cocok dengan skema JSON. Untuk rute output terstruktur, aserdi pada bidang yang Anda parse di hilir.
usageMetadata.thoughtsTokenCounttetap di bawah batas yang Anda tetapkan per rute (misalnya, 8.000 pada rutelow). Ini adalah penjaga yang menangkap konfigurasi yang secara diam-diam kembali kemedium.usageMetadata.totalTokenCounttetap di bawah anggaran rute dari item 7.
Berdampingan. Duplikat skenario, atur `MODEL` ke `gemini-3.7-flash` di satu dan `gemini-3.8-flash` di yang lain, dan jalankan keduanya. Laporan pengujian Apidog menunjukkan lulus/gagal per asersi dan isi respons, sehingga perbedaan token per prompt terlihat dalam satu tampilan daripada direkonstruksi dari log. Untuk skenario panggilan fungsi, tambahkan asersi bahwa `call_id` yang Anda kirimkan kembali sama dengan `id` dari `function_call` langkah sebelumnya. Jadwalkan. Ubah skenario 3.8 Flash menjadi jadwal berjalan sehingga batas token diperiksa setiap hari selama jendela peluncuran. Panduan pengujian API terjadwal mencakup penyiapan. Jika Anda lebih suka mengikuti di aplikasi, Unduh Apidog dan impor fragmen curl di atas.
Rollback: pertahankan 3.7 Flash di balik flag konfigurasi
Karena 3.7 Flash tetap didukung penuh dan berbagi harga 3.8 Flash, rollback ini murah: pertahankan ID model dalam konfigurasi daripada kode.
{"gemini_model": "gemini-3.8-flash", "gemini_fallback_model": "gemini-3.7-flash"}
Tiga aturan membuat flag aman:
- Pertahankan bentuk permintaan yang dimigrasikan pada kedua model. Item 1 hingga 6 (tanpa
minimal, tanpa kunci pengambilan sampel,thinking_levelbukanthinking_budget, tanpacandidate_count,call_id+name, tanda tangan yang diawetkan) semuanya berlaku juga pada 3.7 Flash, sehingga flag yang dibalik tidak pernah membutuhkan jalur kode kedua. - Luncurkan per rute. Balik rute latensi tingkat
lowterlebih dahulu, karena perbedaan tokennya paling kecil; balik loop agen terakhir, setelah skenario berdampingan telah lulus selama beberapa hari. - Perhatikan token, bukan hanya kesalahan. Pemicu rollback pada 3.8 Flash lebih mungkin berupa regresi biaya atau latensi daripada 4xx, jadi hubungkan asersi batas token ke peringatan Anda.
FAQ
Apakah Gemini 3.8 Flash lebih mahal dari 3.7 Flash? Tidak per token. Keduanya $0,75 input / $3,75 output per 1 juta hingga 31 Desember 2026, dan keduanya naik menjadi $1,50 / $7,50 pada 1 Januari 2027. Per tugas, 3.8 Flash menggunakan lebih banyak token sesuai desain; Analisis Artifisial mengukur sekitar 30% lebih banyak token output pada indeks mereka pada pemikiran tinggi.
Apa yang terjadi jika saya membiarkan thinking_level: "minimal" tetap ada? Permintaan gagal dengan kesalahan validasi pada 3.8 Flash. Ganti dengan low. Panduan tingkat berpikir menjelaskan apa yang dilakukan setiap tingkat yang tersisa dan cara mengukur perbedaannya.
Apakah saya harus pindah ke API Interaksi untuk menggunakan 3.8 Flash? Tidak. generateContent digambarkan sebagai warisan tetapi tetap didukung penuh tanpa tanggal penghentian, dan 3.8 Flash berfungsi di atasnya. API Interaksi menambahkan status percakapan sisi server melalui previous_interaction_id, yang menghilangkan pembukuan tanda tangan pemikiran pada item 6.
Apakah 3.7 Flash akan dihentikan? Google mengatakan "tetap didukung penuh" dan belum menerbitkan tanggal penghentian. Itulah yang membuat rollback flag konfigurasi dapat dilakukan.
Dapatkah saya mempertahankan suhu yang sama yang saya sesuaikan untuk 3.7 Flash? Saran Google untuk semua model Gemini 3 adalah membiarkan suhu pada 1.0. Jika Anda sudah menimpanya pada 3.7 Flash, migrasi ini adalah saatnya untuk menghapusnya dan memeriksa evaluasi Anda; output terstruktur adalah rute yang didukung untuk bentuk deterministik.
Kirimkan secara bertahap
Migrasi itu sendiri kecil: satu perubahan ID, empat penghapusan atau penggantian nama konfigurasi, dua bidang loop alat, dan audit tanda tangan. Bagian yang memakan waktu adalah membuktikan bahwa anggaran token bertahan per rute, dan itu adalah masalah pengujian. Simpan prompt emas, aserdi pada skema dan batas token, jalankan 3.7 dan 3.8 Flash berdampingan sampai angkanya stabil, lalu balik flag satu rute pada satu waktu. Jika sebuah rute mengalami regresi, flag akan mengirimkannya kembali ke 3.7 Flash tanpa perubahan kode, dan Anda mempertahankan rute yang ditingkatkan.
