Nouveautés de Gemini 3.5 Flash
Gemini 3.5 Flash est disponible pour tous les utilisateurs, stable et prêt à être utilisé en production à grande échelle. Il s'agit de notre modèle Flash le plus intelligent. Il offre des performances de pointe soutenues dans l'exécution agentique, le codage et les tâches à long terme à grande échelle.
Ce guide présente les améliorations, les modifications apportées à l'API et les 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 durables 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, la limite de 65 000 jetons de sortie, la capacité de raisonnement et le même ensemble d'outils et de fonctionnalités de plate-forme que Gemini 3 Flash. L'option Utilisation de l'ordinateur n'est pas disponible pour le moment.
Pour obtenir les spécifications complètes, consultez la présentation des modèles. Pour connaître les tarifs, consultez 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 durables : 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 les solutions.
- Horizon étendu : workflows multi-étapes et utilisation d'outils à grande échelle.
- Préservation de la pensée : 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:lowest 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 plus faibles. - Version DG : modèle stable pour une utilisation en production à grande échelle.
Changements de comportement
Nouveau niveau d'effort par défaut : medium
L'effort de réflexion par défaut est désormais medium, alors qu'il était de high dans la version preview de Gemini 3 Flash. 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 |
Code et tâches agentiques nécessitant une latence plus faible et moins d'étapes. Il est également efficace pour les tâches d'analyse et de rédaction qui nécessitent une certaine réflexion. |
medium (par défaut) |
Qualité optimale pour la plupart des tâches. Recommandé pour les cas d'utilisation complexes de code et d'agentique. |
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 code ou d'agent les plus difficiles. Permet des réflexions approfondies et des appels de fonction. |
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"
}
}
}'
Préservation de la pensée
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, comme le débogage itératif et la refactorisation du code. Aucune modification de l'API n'est nécessaire :
- API Interactions : les réflexions 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 ce faire, transmettez l'historique complet et non modifié de la conversation (y compris les signatures de pensée) dans
contents. Les SDK s'en chargent automatiquement.
Mises à jour des paramètres et bonnes pratiques dans Gemini 3.x
Les informations suivantes 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à la place dethinking_budget. - Correspondance des réponses d'appel de fonction :
id,nameet le nombre de réponses doivent correspondre aux appels précédents. - Réponses de fonctions 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 fonction, et non en tant que parties distinctes.
- Réduisez les appels d'outils inutiles : utilisez des niveaux de réflexion inférieurs ou testez les 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és)
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 (déconseillé)
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à des erreurs 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 avec finish_reason: STOP par le modèle dans la plupart des cas. Suivez toujours ces conventions :
| Exigence | Détails |
|---|---|
Inclure id |
Chaque FunctionResponse doit inclure le id du FunctionCall correspondant. |
Match name |
Le name de la réponse doit correspondre au name de l'appel. |
| Nombre de correspondances | Renvoyez 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 résultats de qualité inférieure. Suivez plutôt la recommandation dans la documentation de l'API des réponses de fonctions multimodales et incluez du 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 pertinente.
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 aux fonctions sous forme de Parts ultérieurs. Cela peut entraîner un comportement inattendu du modèle (par exemple, une fuite de pensée) et générer des résultats de qualité inférieure. Au lieu de cela, ajoutez les instructions supplémentaires à la fin du texte de 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 peuvent vous aider à la minimiser :
Commencez par réduire le niveau de réflexion (
medium,lowouminimal) : Les niveaux de réflexion plus élevés encouragent le modèle à utiliser davantage d'outils pour explorer et vérifier. Abaisser le niveau peut donc réduire les appels d'outils.Ajoutez une instruction système : si l'utilisation excessive persiste après avoir ajusté le niveau de réflexion, envisagez d'utiliser une requête 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 la preview Gemini 3 Flash
- Mise à jour du nom du modèle :
gemini-3-flash-preview→gemini-3.5-flash - Consultez les tarifs. Gemini 3.5 Flash est plus cher que Gemini 3 Flash (preview). Pour en savoir plus, consultez la page Tarifs.
- Supprimez
temperature,top_pettop_kde votre configuration (ce n'est plus recommandé). - Remplacez
thinking_budgetparthinking_level. - Ajoutez
idet lenamecorrespondant à toutes les partiesFunctionResponse. - 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 reporté d'un tour à l'autre, ce qui améliore les performances, mais peut augmenter l'utilisation de jetons.
- Réduisez les appels d'outils inutiles : commencez par réduire le niveau de réflexion (
medium,lowouminimal). Si l'utilisation excessive persiste, ajoutez une instruction système pour limiter l'utilisation des outils. - L'option Utilisation de l'ordinateur n'est pas compatible avec Gemini 3.5 Flash pour le moment. Pour les charges de travail liées à l'utilisation d'ordinateurs, continuez à utiliser l'aperçu Flash de Gemini 3.
Migrer depuis Gemini 2.5
Toutes les actions ci-dessus, ainsi que les suivantes :
- 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. - 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_highpour vous assurer que la précision est toujours au rendez-vous. La migration vers les paramètres par défaut de Gemini 3 peut également augmenter l'utilisation de jetons pour les PDF, mais la diminuer pour les vidéos. Si les requêtes dépassent la fenêtre de contexte, réduisez explicitementmedia_resolution. Pour en savoir plus, consultez la documentation sur la résolution des contenus multimé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 à l'intérieur des parties de réponse de 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 fonction, séparées par deux sauts de ligne, et non en tant que parties distinctes.
- La segmentation d'images n'est pas prise en charge dans Gemini 3.x. Pour les charges de travail de segmentation, continuez à utiliser Gemini 2.5 Flash avec la fonctionnalité de réflexion désactivée ou Gemini Robotics-ER 1.6.
Fonctionnalités de la famille Gemini 3
Gemini 3.5 Flash hérite de toutes les fonctionnalités de la famille Gemini 3, à l'exception de Computer Use. Fonctionnalités introduites dans Gemini 3 et conservées :
- Réflexion : le contexte de raisonnement chiffré est conservé lors des 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 contenus multimé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 d'outils : utilisez des outils intégrés et l'appel de fonctions personnalisées dans la même requête.
Étapes suivantes
- Pour en savoir plus sur la famille Gemini 3, consultez le guide du développeur Gemini 3.
- Pour en savoir plus sur les stratégies de conception de prompts, consultez le guide de prompt engineering.
- Premiers pas avec le cookbook Gemini 3
- En savoir plus sur l'optimisation et l'inférence de l'API Gemini