Nouveautés de Gemini 3.5 Flash

3.6 Flash et 3.5 Flash-Lite Cette page

Gemini 3.5 Flash est disponible pour tous les utilisateurs, stable et prêt à être utilisé en production à grande échelle. En tant que modèle Flash le plus intelligent, il offre des performances de pointe constantes dans l'exécution agentique, le codage et les tâches à long terme à grande échelle.

Ce guide présente un aperçu des améliorations, des modifications apportées à l'API et des conseils de migration pour Gemini 3.5 Flash.

Nouveau modèle

Modèle ID du modèle Description
Gemini 3.5 Flash gemini-3.5-flash Notre modèle le plus intelligent pour des performances de pointe constantes dans les tâches agentiques et de codage.

Gemini 3.5 Flash est compatible avec la fenêtre de contexte d'un million de jetons, 65 000 jetons de sortie maximum, la réflexion et le même ensemble d'outils et de fonctionnalités de plate-forme que Gemini 3 Flash, y compris l'utilisation de l'ordinateur (preview). Pour obtenir les spécifications complètes, consultez la présentation des modèles. Pour consulter les tarifs, accédez à la page des tarifs.

Guide de démarrage rapide

Tous les exemples de ce guide utilisent l'API GenerateContent. L'API Interactions est également compatible. Les mêmes options de configuration et recommandations s'appliquent.

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."}]
    }]
  }'

Nouveautés

  • Performances de pointe constantes : notre modèle Flash le plus intelligent, optimisé pour les tâches agentiques et de codage à grande échelle.
  • Exécution agentique : déploiement de sous-agents, résolution de problèmes et boucles agentiques rapides à grande échelle.
  • Codage : cycles de codage itératifs, exploration rapide et prototypage pour tester d'autres chemins et explorer dynamiquement des solutions.
  • Long terme : workflows multi-étapes et utilisation d'outils à grande échelle.
  • Préservation des pensées : le modèle conserve automatiquement le raisonnement intermédiaire dans les conversations multitours. Aucune modification de l'API n'est nécessaire.
  • Nouveau niveau d'effort par défaut : l'effort de réflexion par défaut est passé de high à medium. Pour en savoir plus, consultez Nouveau niveau d'effort par défaut.
  • Amélioration de la réflexion low : low est désormais considérablement amélioré pour le code et les tâches agentiques qui nécessitent moins d’étapes, offrant une qualité élevée à une latence et un coût inférieurs.
  • Disponibilité générale : modèle stable pour une utilisation en production à grande échelle.

Choisir le bon modèle Flash

Gemini 3.5 Flash est notre modèle Flash le plus intelligent et le plus performant. Toutefois, différents cas d'utilisation peuvent avoir des exigences différentes en termes de coûts et de latence.

  • Gemini 3.1 Flash-Lite : pour les tâches à faible coût, à volume élevé qui ne nécessitent pas la profondeur de raisonnement avancée de 3.5 Flash, nous vous recommandons d'utiliser Gemini 3.1 Flash-Lite. Il s'agit d'un modèle stable à long terme optimisé pour l'efficacité. Pour en savoir plus, consultez le guide du développeur Flash-Lite.
  • Preview Gemini 3 Flash : bien que nous vous recommandions de migrer vers 3.5 Flash pour une stabilité en disponibilité générale et un raisonnement amélioré, Gemini 3 Flash (preview) reste disponible pour les développeurs qui souhaitent continuer à tester le modèle en preview.

Changements de comportement

Nouveau niveau d'effort par défaut : medium

L'effort de réflexion par défaut est désormais medium, au lieu de high dans Gemini 3 Flash Preview. medium donne de très bons résultats pour un large éventail de tâches tout en étant plus rapide et plus rentable. Pour les problèmes complexes, high encourage le modèle à réfléchir plus en profondeur.

Niveau d'effort Quand les utiliser ?
minimal Optimisé pour la vitesse de réponse. Cas d'utilisation de type chat, réponses factuelles rapides, appels d'outils plus simples.
low Tâches de codage et agentiques qui nécessitent une latence plus faible et moins d'étapes. Fonctionne également bien pour les tâches d'analyse et d'écriture qui nécessitent une certaine réflexion.
medium (par défaut) Meilleure qualité pour la plupart des tâches. Recommandé pour les cas d'utilisation de codage et agentiques complexes.
high Maximise la capacité du modèle à réfléchir et à utiliser des outils. Idéal pour le raisonnement complexe, les mathématiques difficiles et les tâches de codage ou agentiques les plus difficiles. Permet des réflexions et des appels de fonction étendus.

Pour remplacer la valeur par défaut, définissez thinking_level dans votre configuration :

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"
      }
    }
  }'

Le tableau suivant indique les niveaux de réflexion compatibles par modèle :

Niveau de réflexion Gemini 3.5 Flash Gemini 3.1 Pro Gemini 3.1 Flash-Lite Gemini 3 Flash Description
minimal Compatible Non compatible Compatible (par défaut) Compatible Correspond au paramètre "pas de réflexion" pour la plupart des requêtes. Remarque : minimal ne garantit pas que la réflexion est désactivée. Le modèle peut raisonner de manière très minimale pour les tâches complexes.
low Compatible Compatible Compatible Compatible Réduit la latence et les coûts.
medium Compatible (par défaut) Compatible Compatible Compatible Réflexion équilibrée pour la plupart des tâches.
high Compatible (dynamique) Compatible (par défaut, dynamique) Compatible (dynamique) Compatible (par défaut, dynamique) Maximise la profondeur du raisonnement.

Préservation des pensées

Le modèle conserve automatiquement le raisonnement intermédiaire dans les conversations multitours. Lorsqu'il est présent dans l'historique des conversations, le contexte de raisonnement est conservé, ce qui améliore les performances pour les tâches complexes en plusieurs étapes, telles que le débogage itératif et la refactorisation du code. Aucune modification de l'API n'est nécessaire :

  • API Interactions : les pensées sont déjà conservées automatiquement. Aucun changement de comportement.
  • API GenerateContent : à partir de Gemini 3.5 Flash, le modèle utilise le contexte de raisonnement de tous les tours précédents lorsque des signatures de pensée sont présentes dans l'historique des conversations. Pour activer cette fonctionnalité, transmettez l'historique complet et non modifié des conversations (y compris les signatures de pensée) dans contents. Les SDK gèrent cela automatiquement.

Mises à jour des paramètres et bonnes pratiques dans Gemini 3.x

Les éléments suivants s'appliquent à tous les modèles Gemini 3.x, y compris Gemini 3.5 Flash.

  • temperature, top_p, top_k : nous vous recommandons vivement de ne pas modifier les valeurs par défaut. Les capacités de raisonnement de Gemini 3 sont optimisées pour les paramètres par défaut.
  • Utilisez thinking_level au lieu de thinking_budget.
  • Correspondance des réponses d'appel de fonction : id, name et le nombre de réponses doivent correspondre aux appels précédents.
  • Réponses de fonction multimodales : incluez le contenu multimodal dans la réponse de la fonction, et non en dehors.
  • Instructions intégrées dans les réponses de fonction : ajoutez-les au texte de la réponse de la fonction, et non en tant que parties distinctes.
  • Réduisez les appels d'outils inutiles : utilisez des niveaux de réflexion inférieurs ou expérimentez avec des instructions système pour réduire les appels d'outils dans les workflows agentiques.

Consultez les sections ci-dessous pour savoir comment mettre à jour votre code.

Paramètres d'échantillonnage (non recommandé)

temperature, top_p et top_k ne sont plus recommandés pour tous les modèles Gemini 3.x. Les capacités de raisonnement de Gemini 3 sont optimisées pour les paramètres par défaut. Supprimez ces paramètres de toutes les requêtes.

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

Pour garantir le déterminisme, nous vous recommandons de définir une instruction système avec des règles explicites pour votre cas d'utilisation spécifique.

thinking_budget (non recommandé)

Le paramètre numérique brut thinking_budget n'est plus recommandé pour tous les modèles Gemini 3.x. Utilisez plutôt l'énumération de chaîne thinking_level.

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

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

Valeurs disponibles : minimal, low, medium (par défaut) et high.

Appel de fonction : correspondance stricte des réponses

L'API Interactions génère déjà une erreur en cas de réponses de fonction non concordantes. L'API GenerateContent ne génère pas encore d'erreur, mais les réponses non concordantes entraînent le renvoi de réponses vides par le modèle avec finish_reason: STOP dans la plupart des cas. Suivez toujours ces conventions :

Exigence Détails
Inclure id Chaque FunctionResponse doit inclure l'id du FunctionCall correspondant
Faire correspondre name Le name de la réponse doit correspondre au name de l'appel
Faire correspondre les nombres Renvoie exactement un FunctionResponse pour chaque FunctionCall reçu

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": "..."}}}]}
    ]
  }'

Réponses de fonction multimodales

Nous constatons souvent que les clients fournissent des images en dehors de la réponse de la fonction. Cela peut entraîner un comportement inattendu du modèle (par exemple, une fuite de pensée) et des sorties de qualité inférieure. Suivez plutôt la recommandation de la documentation de l'API Réponses de fonction multimodales et incluez le contenu multimodal dans les parties de la réponse de la fonction que vous envoyez au modèle. Le modèle peut traiter ce contenu multimodal lors de son prochain tour pour produire une réponse plus éclairée.

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,
});

Instructions intégrées dans les réponses de fonction

Nous constatons souvent que les clients fournissent des instructions supplémentaires avec les réponses de fonction en tant que Parts ultérieures. Cela peut entraîner un comportement inattendu du modèle (par exemple, une fuite de pensée) et des sorties de qualité inférieure. Ajoutez plutôt toutes les instructions supplémentaires à la fin du texte de la réponse de la fonction, séparées par deux sauts de ligne.

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,
});

Réduire les appels d'outils inutiles

Si vous constatez une utilisation excessive des appels d'outils, deux techniques permettent de les réduire :

  1. Commencez par réduire le niveau de réflexion (medium, low ou minimal) : des niveaux de réflexion plus élevés encouragent le modèle à utiliser davantage d'outils pour explorer et vérifier. La réduction du niveau peut donc réduire les appels d'outils.

  2. Ajoutez une instruction système : si l'utilisation excessive persiste après avoir ajusté le niveau de réflexion, envisagez un prompt qui limite l'utilisation des outils. Exemple :

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

Checklist de migration

Migrer depuis Gemini 3 Flash Preview

  • Mettre à jour le nom du modèle : gemini-3-flash-previewgemini-3.5-flash
  • Consultez les tarifs. Gemini 3.5 Flash est plus cher que Gemini 3 Flash Preview. Si votre cas d'utilisation est très sensible aux coûts, envisagez plutôt de migrer vers Gemini 3.1 Flash-Lite. Consultez la page des tarifs pour plus d'informations.
  • Supprimez temperature, top_p et top_k de votre configuration (non recommandé).
  • Remplacez thinking_budget par thinking_level.
  • Ajoutez id et le name correspondant à toutes les parties FunctionResponse.
  • Testez vos requêtes. L'effort par défaut est passé de high à medium. Vérifiez la qualité, la vitesse et le coût.
  • La préservation des pensées est désormais activée par défaut. Le contexte de raisonnement est conservé sur plusieurs tours, ce qui améliore les performances, mais peut augmenter l'utilisation des jetons.
  • Réduisez les appels d'outils inutiles : commencez par réduire le niveau de réflexion (medium, low ou minimal). Ajoutez une instruction système pour limiter l'utilisation des outils si l'utilisation excessive persiste.
  • L'utilisation de l'ordinateur est compatible.

Migrer depuis Gemini 2.5

Tous les éléments ci-dessus, plus :

  • Simplifiez les requêtes. Si vous avez utilisé le prompt engineering en chaîne de pensée pour forcer le raisonnement, essayez thinking_level: "medium" ou "high" avec des prompts plus simples à la place.
  • Testez les charges de travail PDF et multimédias. Si vous vous êtes appuyé sur un comportement spécifique pour l'analyse de documents denses, testez le paramètre media_resolution_high pour garantir une précision continue. La migration vers les valeurs par défaut de Gemini 3 peut également augmenter l'utilisation des jetons pour les PDF, mais la réduire pour les vidéos. Si les requêtes dépassent la fenêtre de contexte, réduisez explicitement la media_resolution. Pour en savoir plus, consultez la documentation sur la résolution des médias.
  • Tirez parti de l'utilisation combinée des outils. La recherche Google, le contexte d'URL, l'exécution de code et les fonctions personnalisées peuvent être utilisés dans la même requête.
  • Si vous utilisez des réponses de fonction multimodales, déplacez le contenu multimodal dans les parties de la réponse de la fonction, et non à côté.
  • Si vous utilisez des instructions intégrées avec des réponses de fonction, ajoutez-les au texte de la réponse de la fonction, séparées par deux sauts de ligne, et non en tant que parties distinctes.
  • La segmentation d'images n'est pas compatible avec Gemini 3.x. Pour les charges de travail de segmentation, continuez à utiliser Gemini 2.5 Flash avec la réflexion désactivée.
  • Supprimez candidate_count de votre configuration (non compatible avec Gemini 3.x)

Fonctionnalités de la famille Gemini 3

Gemini 3.5 Flash hérite de toutes les fonctionnalités de la famille Gemini 3, y compris l'utilisation de l'ordinateur. Fonctionnalités introduites dans Gemini 3 qui sont conservées :

  • Réflexion: contexte de raisonnement chiffré conservé dans les appels d'API. Automatique dans l'API Interactions ; implicite dans GenerateContent.
  • Sorties structurées avec des outils: combinez le mode JSON avec des outils intégrés (recherche, contexte d'URL, exécution de code, appel de fonction).
  • Réponses de fonction multimodales: renvoyez des images, de l'audio et d'autres médias dans les résultats d'appel de fonction.
  • Exécution de code avec des images: Exécutez du code qui traite et génère des images.
  • Utilisation combinée des outils: utilisez des outils intégrés et des appels de fonction personnalisés dans la même requête.
  • Résolution des médias: contrôle précis de l'allocation de jetons pour les entrées d'image, de vidéo et de PDF. Les modèles Gemini 3 sont compatibles avec les paramètres de résolution par élément de contenu (low, medium, high, ultra_high) pour les requêtes de fidélité mixte.
  • Signatures de pensée: représentations chiffrées du raisonnement interne du modèle. Obligatoire pour l'appel de fonction multitour ; géré automatiquement par les SDK officiels.

Bonnes pratiques concernant les prompts

Les modèles Gemini 3.x sont des modèles de raisonnement, ce qui modifie la façon dont vous devez les inviter.

  • Instructions précises : soyez concis. Gemini 3.x répond mieux aux instructions directes et claires. Les techniques de prompt engineering complexes ou détaillées conçues pour les anciens modèles peuvent entraîner une analyse excessive du modèle.
  • Niveau de détail de la sortie : par défaut, Gemini 3.x est moins détaillé et préfère les réponses directes et efficaces. Si votre cas d'utilisation nécessite un ton conversationnel, guidez explicitement le modèle dans votre requête (par exemple, "Expliquez cela comme un assistant amical et bavard").
  • Gestion du contexte : lorsque vous travaillez avec de grands ensembles de données (tels que des livres entiers, des bases de code ou des vidéos longues), placez vos instructions ou questions spécifiques à la fin de la requête, après le contexte des données. Ancrez le raisonnement du modèle en commençant votre question par une expression telle que "Sur la base des informations précédentes...".

Pour en savoir plus sur les stratégies de conception de requêtes, consultez le guide d'ingénierie de requêtes.

Limites

  • La segmentation d'images n'est pas compatible avec Gemini 3.x. Pour les charges de travail de segmentation, continuez à utiliser Gemini 2.5 Flash avec la réflexion désactivée, ou Gemini Robotics ER 2.

Questions fréquentes

  1. Quelle est la date limite de connaissances pour Gemini 3.5 Flash ? La date limite de connaissances de Gemini 3.5 Flash est janvier 2025. Pour obtenir des informations plus récentes, utilisez l' outil d'ancrage de la recherche.

  2. Quelles sont les limites de la fenêtre de contexte ? Gemini 3.5 Flash est compatible avec une fenêtre de contexte d'entrée d'un million de jetons et jusqu'à 65 000 jetons de sortie.

  3. Mon ancien code thinking_budget fonctionnera-t-il toujours ? Oui, thinking_budget est toujours compatible pour la rétrocompatibilité, mais nous vous recommandons de migrer vers thinking_level pour des performances plus prévisibles. N'utilisez pas les deux dans la même requête.

  4. Gemini 3.5 Flash est-il compatible avec l'API Batch ? Oui. Pour en savoir plus, consultez le guide de l' API Batch.

  5. La mise en cache du contexte est-elle compatible ? Oui, la mise en cache du contexte est compatible.

  6. Quels outils sont compatibles ? Gemini 3.5 Flash est compatible avec la recherche Google, l'ancrage avec Google Maps, la recherche de fichiers, l'exécution de code, le contexte d'URL, et l'appel de fonction standard , y compris l'utilisation combinée des outils, et l'utilisation de l'ordinateur.

Étapes suivantes