Beaucoup de développeurs sont perplexes lorsqu'ils voient le nom de modèle gemini-3.1-pro-preview-customtools : que signifie "customtools" ? En quoi est-il différent du gemini-3.1-pro-preview standard ? Cet article vous aide à y voir clair en 5 minutes.
Valeur ajoutée : À la fin de cette lecture, vous saurez quand utiliser la version standard, quand préférer la version customtools, et comment faire le bon choix pour le développement de vos Agents.

Qu'est-ce que Gemini 3.1 Pro Customtools ?
L'explication en une phrase
gemini-3.1-pro-preview-customtools est une variante dédiée publiée par Google le 19 février 2026, en même temps que la version standard de Gemini 3.1 Pro. Sa seule différence majeure avec la version standard est qu'elle donne la priorité aux outils personnalisés que vous avez enregistrés, plutôt que d'exécuter des commandes bash par défaut.
Voici ce que dit textuellement le Changelog officiel de Google :
Lancement d'un point de terminaison séparé
gemini-3.1-pro-preview-customtools, qui priorise mieux les outils personnalisés, pour les utilisateurs travaillant avec un mélange de bash et d'outils.
Pourquoi cette variante est-elle nécessaire ?
Dans le développement d'Agents, les développeurs enregistrent généralement deux types de capacités pour le modèle :
- Exécution Bash/Code : Permet au modèle d'exécuter directement des commandes shell.
- Outils personnalisés (Custom Tools) : Des fonctions structurées définies par le développeur, comme
view_file,search_code,create_pr, etc.
Où est le problème ? La version standard de Gemini 3.1 Pro a parfois tendance à être "paresseuse" : elle ignore vos outils personnalisés soigneusement conçus pour utiliser directement des commandes bash afin d'accomplir la tâche. Par exemple, même si vous avez enregistré un outil view_file, le modèle pourrait décider d'exécuter cat filename.py, court-circuitant ainsi votre outil.
Cela pose problème dans certains scénarios :
- Les outils personnalisés peuvent inclure un contrôle des permissions et une journalisation (logs).
- Le format de retour des outils personnalisés est structuré, ce qui facilite le traitement ultérieur.
- Les outils personnalisés peuvent être connectés à des systèmes externes (bases de données, API, etc.).
La variante customtools a été créée pour résoudre ce problème : forcer le modèle à privilégier les outils que vous avez enregistrés.
Différences clés entre Gemini 3.1 Pro Standard et la version Customtools
| Dimension de comparaison | Version Standard | Version Customtools |
|---|---|---|
| ID du modèle | gemini-3.1-pro-preview |
gemini-3.1-pro-preview-customtools |
| Date de sortie | 19.02.2026 | 19.02.2026 (sortie simultanée) |
| Capacités de raisonnement | ARC-AGI-2 77.1% | Identique |
| Capacités de codage | SWE-Bench 80.6% | Identique |
| Fenêtre de contexte | 1 048 576 tokens | Identique |
| Sortie maximale | 65 536 tokens | Identique |
| Prix d'entrée (Input) | 2,00 $ / 1M tokens | Identique |
| Prix de sortie (Output) | 12,00 $ / 1M tokens | Identique |
| Comportement d'appel d'outils | Peut privilégier bash | Privilégie les outils personnalisés |
| Cas d'utilisation | Raisonnement général, codage, analyse | Développement d'Agents, orchestration d'outils |
| Note sur la qualité | Équilibré pour tous les scénarios | De légères fluctuations de qualité peuvent survenir dans les scénarios sans outils |
🎯 Compréhension clé : Le « niveau d'intelligence » des deux modèles est strictement identique. La seule différence réside dans le choix que fait le modèle face au dilemme : « Dois-je utiliser bash ou l'outil que vous avez enregistré ? ». La version customtools aura davantage tendance à choisir vos outils personnalisés.
Dans quels cas utiliser Gemini 3.1 Pro Customtools ?
Scénarios nécessitant la version customtools
| Scénario | Pourquoi c'est nécessaire | Exemples concrets |
|---|---|---|
| Assistant de codage IA | Nécessite l'utilisation d'outils structurés comme view_file, edit_file, etc. |
Produits de type Claude Code ou Cursor |
| Agent DevOps | Doit appeler les systèmes CI/CD via des outils plutôt que d'exécuter directement du bash | Déploiement automatisé, bots de revue de code |
| Workflows MCP | Agents ayant enregistré le protocole d'outils MCP | Orchestration de workflows multi-étapes |
| Agents avec contrôle d'accès | Les outils personnalisés intègrent des vérifications de permissions | Applications d'Agents au niveau entreprise |
| Agents nécessitant des logs structurés | Les appels d'outils facilitent l'enregistrement et l'audit | Scénarios à fortes exigences de conformité |
Scénarios où la version standard suffit
| Scénario | La version standard suffit | Raison |
|---|---|---|
| Conversation classique / FAQ | gemini-3.1-pro-preview |
Pas d'appel d'outils impliqué |
| Analyse de texte / Traduction | gemini-3.1-pro-preview |
Entrée et sortie en texte pur |
| Génération de code (sans outils) | gemini-3.1-pro-preview |
Le modèle doit juste écrire le code directement |
| Exécution de scripts bash simples | gemini-3.1-pro-preview |
L'objectif est justement d'utiliser bash |
Le conseil officiel de Google
Google précise explicitement dans la FAQ du guide du développeur Gemini 3 :
If you are using
gemini-3.1-pro-previewand the model ignores your custom tools in favor of bash commands, try thegemini-3.1-pro-preview-customtoolsmodel instead.
Traduction : Si vous constatez que la version standard ignore vos outils personnalisés au profit de commandes bash, essayez plutôt le modèle gemini-3.1-pro-preview-customtools.
Méthodes d'appel de l'API Gemini 3.1 Pro Customtools
Appel de base : exactement comme la version standard
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Interface unifiée APIYI
)
# Il suffit de changer le nom du modèle, le reste du code demeure inchangé
response = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=[
{"role": "user", "content": "Aide-moi à consulter le contenu du fichier main.py dans le projet"}
]
)
print(response.choices[0].message.content)
Appel d'Agent avec outils personnalisés
La véritable puissance de la version customtools réside dans son utilisation avec le function calling :
import openai
import json
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Interface unifiée APIYI
)
# Définition des outils personnalisés
tools = [
{
"type": "function",
"function": {
"name": "view_file",
"description": "Afficher le contenu d'un fichier spécifié",
"parameters": {
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Chemin du fichier"
}
},
"required": ["file_path"]
}
}
},
{
"type": "function",
"function": {
"name": "search_code",
"description": "Rechercher des mots-clés dans la base de code",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Mot-clé de recherche"
},
"file_pattern": {
"type": "string",
"description": "Modèle de correspondance de fichier, ex: *.py"
}
},
"required": ["query"]
}
}
}
]
# La version customtools utilisera en priorité les outils définis ci-dessus
response = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=[
{"role": "user", "content": "Aide-moi à trouver tous les fichiers Python contenant TODO dans le projet"}
],
tools=tools
)
# Le modèle appellera l'outil search_code au lieu d'utiliser directement grep
tool_call = response.choices[0].message.tool_calls[0]
print(f"Outil : {tool_call.function.name}")
print(f"Paramètres : {tool_call.function.arguments}")
Voir le code complet de la boucle de l’Agent
import openai
import json
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1"
)
tools = [
{
"type": "function",
"function": {
"name": "view_file",
"description": "Afficher le contenu d'un fichier spécifié",
"parameters": {
"type": "object",
"properties": {
"file_path": {"type": "string", "description": "Chemin du fichier"}
},
"required": ["file_path"]
}
}
},
{
"type": "function",
"function": {
"name": "search_code",
"description": "Rechercher des mots-clés dans la base de code",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Mot-clé de recherche"},
"file_pattern": {"type": "string", "description": "Modèle de correspondance de fichier"}
},
"required": ["query"]
}
}
},
{
"type": "function",
"function": {
"name": "edit_file",
"description": "Modifier un contenu spécifique dans un fichier",
"parameters": {
"type": "object",
"properties": {
"file_path": {"type": "string", "description": "Chemin du fichier"},
"old_content": {"type": "string", "description": "Ancien contenu à remplacer"},
"new_content": {"type": "string", "description": "Nouveau contenu"}
},
"required": ["file_path", "old_content", "new_content"]
}
}
}
]
# Simulation de l'exécution des outils
def execute_tool(name, args):
"""À remplacer par une implémentation réelle dans un projet concret"""
if name == "view_file":
return f"Contenu du fichier : {args['file_path']} (simulé)"
elif name == "search_code":
return f"Résultats pour '{args['query']}' : 3 correspondances trouvées (simulé)"
elif name == "edit_file":
return f"Le contenu de {args['file_path']} a été remplacé (simulé)"
return "Outil inconnu"
# Boucle principale de l'Agent
messages = [{"role": "user", "content": "Trouve tous les commentaires TODO dans le projet et répare-les"}]
max_turns = 5
for turn in range(max_turns):
response = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=messages,
tools=tools
)
msg = response.choices[0].message
messages.append(msg)
if msg.tool_calls:
for tc in msg.tool_calls:
args = json.loads(tc.function.arguments)
result = execute_tool(tc.function.name, args)
messages.append({
"role": "tool",
"tool_call_id": tc.id,
"content": result
})
print(f"[Tour {turn+1}] Appel : {tc.function.name}({args})")
else:
print(f"[Terminé] {msg.content[:200]}")
break
🚀 Démarrage rapide : Via la plateforme APIYI (apiyi.com), la version standard et la version customtools utilisent la même clé API. Il suffit de modifier le paramètre
modelpour basculer, ce qui est idéal pour tester en A/B quelle version convient le mieux à votre Agent.
Relation entre Gemini 3.1 Pro Customtools et les frameworks d'Agent

Compatibilité avec les principaux frameworks d'Agent
La version customtools est particulièrement précieuse pour les scénarios de développement d'Agent suivants :
| Framework Agent / Scénario | Conseil d'adaptation | Raison |
|---|---|---|
| Assistants de codage type Claude Code | Recommandé : customtools | Nécessite des outils structurés comme view_file, edit_file |
| Cursor / GitHub Copilot | Recommandé : customtools | Le jeu d'outils de l'IDE doit être appelé en priorité |
| Agents protocole MCP | Recommandé : customtools | Les outils enregistrés via MCP nécessitent une garantie de priorité |
| LangChain / LlamaIndex | Recommandé : customtools | Les outils enregistrés par le framework doivent être appelés correctement |
| Applications de Chat pur | Utiliser la version standard | Pas d'appel d'outils impliqué |
| RAG (Génération augmentée par récupération) | Dépend du cas | Si la récupération est implémentée via function calling, utilisez customtools |
Comparaison du comportement entre Gemini 3.1 Pro Customtools et la version standard
Pour mieux comprendre la différence, jetons un œil à un exemple concret :
Une même requête, deux réactions différentes selon le modèle
Requête utilisateur : « Aide-moi à voir le contenu du fichier src/main.py »
Outil enregistré : view_file(file_path: string)
| Version du modèle | Comportement du modèle | Explication |
|---|---|---|
| Version standard | Pourrait exécuter directement cat src/main.py |
Utilise bash pour accomplir la tâche, en ignorant votre outil |
| Version Customtools | Appelle view_file("src/main.py") |
Privilégie l'outil personnalisé que vous avez enregistré |
Les deux approches permettent d'obtenir le contenu du fichier, mais l'appel via un outil personnalisé présente les avantages suivants :
- Contrôle des permissions : Votre outil
view_filepeut vérifier si le chemin est dans une liste blanche. - Sortie formatée : L'outil peut renvoyer du JSON structuré plutôt que du texte brut.
- Audit des logs : Les appels d'outils sont automatiquement enregistrés par le framework.
- Gestion des erreurs : L'outil peut fournir des messages d'erreur conviviaux au lieu d'erreurs bash.

Évolution des modèles d'appel d'outils Google Gemini
Customtools est la première variante de modèle dédiée à l'appel d'outils proposée par Google. Voici la cartographie complète des modèles Gemini liés aux outils :
| Modèle | Date de sortie | Type d'outil | Description |
|---|---|---|---|
| Gemini 2.5 Flash | 2025 | Appel de fonction de base | Appel d'outils généraliste |
| Gemini 3 Pro Preview | Fin 2025 | Appel de fonction | Appel d'outils amélioré |
| Gemini 3.1 Pro Preview | 19.02.2026 | Appel de fonction + outils parallèles | Version standard, tendance Bash possible |
| Gemini 3.1 Pro Customtools | 19.02.2026 | Priorité à l'appel de fonction | Dédié aux Agents, privilégie les outils personnalisés |
| Computer Use Preview | 2025 | Opérations GUI | Utilisation de l'ordinateur (expérimental) |
| Deep Research Preview | Fin 2025 | Recherche + Analyse | Agent de recherche approfondie |
Cela montre que Google segmente ses modèles par scénario d'utilisation, plutôt que d'essayer de couvrir tous les besoins avec un seul modèle généraliste. D'autres variantes spécialisées apparaîtront probablement à l'avenir.
Foire aux questions
Q1 : La version customtools est-elle plus chère ?
Non. Les tarifs des versions customtools et standard sont strictement identiques : 2,00 $ / 1M de tokens en entrée, 12,00 $ / 1M de tokens en sortie. En passant par la plateforme APIYI (apiyi.com), les deux versions utilisent la même clé API, sans frais supplémentaires.
Q2 : Les capacités de raisonnement de la version customtools sont-elles affaiblies ?
Pratiquement pas. Google mentionne de « légères fluctuations de qualité dans les scénarios n'impliquant pas d'outils », mais les capacités de raisonnement de base (ARC-AGI-2 77,1 %, SWE-Bench 80,6 %) restent inchangées. Si votre Agent utilise principalement des outils, la performance globale de la version customtools sera même meilleure.
Q3 : Quand devrais-je passer de la version standard à la version customtools ?
Dès que vous remarquez que le modèle utilise fréquemment des commandes bash pour accomplir des tâches alors que des outils personnalisés sont disponibles. Par exemple, si vous avez enregistré view_file mais que le modèle s'obstine à utiliser cat, ou search_code au lieu de grep. Vous pouvez rapidement effectuer des tests A/B entre les deux versions via APIYI (apiyi.com).
Q4 : Est-ce utile d’utiliser la version customtools si je n’ai enregistré aucun outil personnalisé ?
Aucun intérêt. Sans outils personnalisés enregistrés, les deux versions se comportent exactement de la même manière. L'optimisation de la version customtools ne se manifeste que lorsque le modèle doit choisir entre bash et un outil personnalisé.
Résumé : Aide-mémoire Gemini 3.1 Pro Customtools
| Question | Réponse |
|---|---|
| Qu'est-ce que customtools ? | Une variante de Gemini 3.1 Pro qui privilégie les outils personnalisés |
| Quelle différence avec la version standard ? | Seule la priorité d'appel des outils change ; le raisonnement et le prix sont identiques |
| Quand l'utiliser ? | Développement d'Agents, utilisation de MCP, outils de function calling enregistrés |
| Quand ne pas l'utiliser ? | Conversations simples, raisonnement pur, aucun outil impliqué |
| Peut-on basculer entre les deux ? | Oui, il suffit de modifier le paramètre model |
| Le prix est-il le même ? | Exactement : 2 $ / 12 $ par MTok (entrée/sortie) |
En une phrase : gemini-3.1-pro-preview-customtools est en quelque sorte le « mode spécial Agent » de Gemini 3.1 Pro — il rend le modèle plus docile pour utiliser vos outils enregistrés plutôt que de lancer directement du bash. Le prix ne change pas, l'intelligence non plus, c'est juste la stratégie de sélection d'outils qui est mieux adaptée au développement d'Agents.
Nous vous recommandons d'accéder aux deux versions via la plateforme APIYI (apiyi.com) pour effectuer des tests A/B sur vos projets réels et choisir la plus adaptée. Pour les développeurs d'Agents, la version customtools est presque toujours le meilleur choix.
Ressources complémentaires
-
Documentation Google AI : Page du modèle Gemini 3.1 Pro Preview
- Lien :
ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview - Note : Contient une comparaison entre la version standard et la version customtools.
- Lien :
-
Changelog de l'API Gemini : Mise à jour du 19 février 2026
- Lien :
ai.google.dev/gemini-api/docs/changelog - Note : Première annonce de la variante customtools.
- Lien :
-
Guide du développeur Gemini 3 : Conseils sur le choix des outils dans la FAQ
- Lien :
ai.google.dev/gemini-api/docs/gemini-3 - Note : Quand passer de la version standard à la version customtools.
- Lien :
-
Documentation Google AI : Guide sur l'appel de fonctions (Function Calling)
- Lien :
ai.google.dev/gemini-api/docs/function-calling - Note : Détails sur l'API d'appel de fonctions des modèles Gemini.
- Lien :
📝 Auteur : Équipe APIYI | Pour toute discussion technique, visitez APIYI sur apiyi.com
📅 Dernière mise à jour : 20 février 2026
🏷️ Mots-clés : gemini-3.1-pro-preview-customtools, outils personnalisés, développement d'agents, function calling, appel d'outils, appel d'API
