gemini-3.1-pro-preview 和 gemini-3.1-pro-preview-customtools 是谷歌同一天发布的两个模型端点,价格相同、推理能力相同,但行为截然不同。本文从 6 个关键维度 对比两者差异,帮你在 Agent 开发中做出正确选择。
核心价值: 看完本文,你将清楚知道什么场景该用标准版、什么场景该用 customtools 版,避免在 Agent 开发中踩坑。

先说结论: 什么时候用哪个版本
如果你赶时间,直接看这个表:
| 你的场景 | 选哪个 | 原因 |
|---|---|---|
| 纯对话/问答 | 标准版 | 质量最稳定 |
| 文本翻译/分析 | 标准版 | 不涉及工具调用 |
| 代码生成 (无工具) | 标准版 | 直接输出代码 |
| 编码助手 (有 view_file 等工具) | customtools 版 | 确保工具被正确调用 |
| DevOps Agent (bash + 自定义工具) | customtools 版 | 避免模型总用 bash 绕过工具 |
| MCP 工作流 | customtools 版 | 工具优先级保障 |
| 不确定? | 先用标准版,遇到工具被跳过就换 customtools | 谷歌官方建议 |
🎯 谷歌官方原话: "If you are using gemini-3.1-pro-preview and the model ignores your custom tools in favor of bash commands, try the gemini-3.1-pro-preview-customtools model instead."
Différence 1 : Priorité d'appel des outils — La différence fondamentale
C'est la seule différence essentielle entre les deux versions. Lorsque le modèle dispose à la fois de la capacité « exécution bash » et d'« outils personnalisés », comment choisit-il ?
Le problème de la version standard : l'utilisation de bash « en douce »
Lorsque vous enregistrez l'outil view_file dans la version standard, mais que vous lui demandez de consulter un fichier :
Utilisateur : "Affiche le contenu de src/main.py"
Comportement version standard : Exécute la commande bash `cat src/main.py` ← Il a ignoré votre outil !
Dans les discussions de développeurs sur Hacker News, plusieurs retours font état de problèmes similaires :
- « Le modèle essaie de modifier des fichiers de manière étrange au lieu d'utiliser les outils d'édition de texte fournis. »
- « La capacité d'appel d'outils est médiocre, il fait souvent des détours. »
- « Il a tendance à s'enfermer dans des boucles sans pouvoir avancer. »
La correction de la version customtools : le respect de vos outils
Utilisateur : "Affiche le contenu de src/main.py"
Comportement version customtools : Appelle view_file("src/main.py") ← Il utilise l'outil que vous avez enregistré ✓
| Scénario | Comportement version standard | Comportement version customtools |
|---|---|---|
| Consulter un fichier | cat src/main.py (bash) |
view_file("src/main.py") |
| Rechercher du code | grep -r "TODO" *.py (bash) |
search_code("TODO", "*.py") |
| Modifier un fichier | sed -i 's/old/new/' file (bash) |
edit_file(path, old, new) |
| Lister les fichiers | ls -la src/ (bash) |
list_files("src/") |
| Lancer des tests | pytest tests/ (bash) |
run_tests("tests/") |
Différence 2 : Performance globale — La version standard est plus stable
Google a explicitement publié un avertissement important dans sa documentation officielle :
"Bien que gemini-3.1-pro-preview-customtools soit optimisé pour les workflows agentiques utilisant des outils personnalisés et bash, vous pourriez constater des fluctuations de qualité dans certains cas d'utilisation qui ne bénéficient pas de tels outils."
Cela signifie que la version customtools peut être moins stable que la version standard dans les scénarios suivants :
| Type de scénario | Qualité version standard | Qualité version customtools | Explication |
|---|---|---|---|
| Conversation en texte pur | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Possibles légères fluctuations |
| Rédaction de textes longs | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | Pas d'outils impliqués, la version standard est meilleure |
| Raisonnement mathématique | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | Capacités de raisonnement identiques |
| Génération de code (sans outils) | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | La version standard est légèrement supérieure |
| Agent + Outils personnalisés | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | customtools est nettement meilleur |
| Mix bash + Outils personnalisés | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | L'avantage majeur de customtools |
L'essentiel à retenir : La version customtools n'est pas un modèle « plus puissant », mais une version optimisée pour être « plus concentrée sur l'appel d'outils ». Pour les scénarios n'impliquant pas d'outils, la version standard reste préférable.
💡 Conseil de choix : Si plus de 50 % des requêtes de votre application n'impliquent pas d'appel d'outils, nous vous suggérons de conserver la version standard par défaut et de ne basculer vers la version customtools que pour les workflows d'Agent spécifiques. APIYI (apiyi.com) permet de changer dynamiquement le paramètre
modeldans votre code selon le scénario.
Différence 3 : Paramètres et spécifications du modèle — Identiques
Les deux versions sont rigoureusement identiques au niveau des « spécifications matérielles » :
| Spécification | Version Standard | Version customtools |
|---|---|---|
| Contexte d'entrée | 1 048 576 tokens | 1 048 576 tokens |
| Sortie maximale | 65 536 tokens | 65 536 tokens |
| Prix d'entrée (≤200K) | 2,00 $ / 1M tokens | 2,00 $ / 1M tokens |
| Prix d'entrée (>200K) | 4,00 $ / 1M tokens | 4,00 $ / 1M tokens |
| Prix de sortie (≤200K) | 12,00 $ / 1M tokens | 12,00 $ / 1M tokens |
| Prix de sortie (>200K) | 18,00 $ / 1M tokens | 18,00 $ / 1M tokens |
| Cache de contexte | 0,20 $ – 0,40 $ / 1M | 0,20 $ – 0,40 $ / 1M |
| ARC-AGI-2 | 77,1% | Identique (non publié séparément) |
| SWE-Bench | 80,6% | Identique (non publié séparément) |
| GPQA Diamond | 94,3% | Identique (non publié séparément) |
| Système de réflexion | Low / Medium / High | Low / Medium / High |
| Entrée multimodale | Texte/Image/Audio/Vidéo | Texte/Image/Audio/Vidéo |
Note importante : Google n'a pas publié de données de benchmark distinctes pour la version customtools, car le modèle sous-jacent est le même. La différence réside uniquement dans l'optimisation du comportement d'appel d'outils (tool calling).
Différence 4 : Méthode d'appel API — Seul le paramètre model change

Exemple de code : Basculer entre la version standard et customtools en un clic
import openai
client = openai.OpenAI(
api_key="VOTRE_CLE_API",
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": "Voir le contenu d'un fichier spécifié",
"parameters": {
"type": "object",
"properties": {
"file_path": {"type": "string", "description": "Chemin du fichier"}
},
"required": ["file_path"]
}
}
}]
# Version Standard : peut ignorer l'outil au profit du texte
resp_standard = client.chat.completions.create(
model="gemini-3.1-pro-preview",
messages=[{"role": "user", "content": "Voir src/main.py"}],
tools=tools
)
# Version customtools : utilise l'outil en priorité
resp_custom = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=[{"role": "user", "content": "Voir src/main.py"}],
tools=tools
)
# Comparaison de la différence de comportement
print("Version Standard :", resp_standard.choices[0].message)
print("customtools :", resp_custom.choices[0].message)
Différence 5 : Expérience réelle des développeurs — Retours de la communauté
Les retours des développeurs sur Hacker News et GitHub mettent en lumière les points de friction de la version standard dans les scénarios d'Agent :
Problèmes de la version standard dans les scénarios d'Agent
Retours de développeurs issus des discussions sur Hacker News :
| Description du problème | Analyse de la cause | Est-ce que customtools peut résoudre cela ? |
|---|---|---|
| « Le modèle tente d'éditer des fichiers de manière étrange, sans utiliser les outils d'édition de texte fournis » | La version standard privilégie bash | Résolu — Priorité aux outils personnalisés |
| « Faible capacité d'appel d'outils, fait souvent des détours » | Priorité des outils trop basse | Résolu — Augmentation de la priorité des outils |
| « Tendance à s'enfermer dans des boucles, incapable de progresser » | Confusion lors du basculement entre les outils et bash | Partiellement résolu — Chemin d'accès aux outils plus clair |
| « Consomme énormément de tokens de réflexion pour finalement faire n'importe quoi » | Conflit entre le raisonnement du modèle et le choix des outils | Partiellement résolu — Choix des outils plus déterministe |
| « Il faut constamment lui dire de continuer ou de terminer » | Problème de la boucle principale de l'Agent | Non résolu — C'est un problème général du modèle |
La pratique de GitHub Copilot
L'équipe GitHub Copilot a souligné lors de l'intégration de Gemini 3.1 Pro :
"Le modèle excelle dans le cycle edit-then-test, avec une grande précision des outils, atteignant l'objectif avec moins d'appels d'outils."
Cela montre que dans un cadre d'appel d'outils approprié, les capacités d'Agent de Gemini 3.1 Pro sont très puissantes. La version customtools est précisément conçue pour déclencher cette « haute précision des outils » de manière plus fiable.
🚀 Conseil pratique : Si vous construisez un assistant de codage, nous vous recommandons de commencer directement avec la version customtools pour éviter les problèmes de saut d'outils de la version standard. Vous pouvez déployer et tester rapidement via APIYI (apiyi.com).
Différence 6 : Frameworks d'Agent et outils de codage compatibles
| Outil / Framework | Version recommandée | Raison |
|---|---|---|
| Agent maison (avec outils personnalisés) | customtools | Garantit que les outils sont appelés correctement |
| Produits de type Claude Code | customtools | Nécessite des outils comme view_file, edit_file, etc. |
| Cursor | customtools | Le jeu d'outils de l'IDE nécessite une priorité garantie |
| GitHub Copilot | Déjà intégré | Copilot a optimisé lui-même les appels d'outils |
| LangChain Agent | customtools | Les outils enregistrés par le framework doivent être appelés en priorité |
| Agent protocole MCP | customtools | Les outils MCP nécessitent une priorité |
| Application RAG pure | Standard | Généralement pas de conflit entre bash et les outils |
| Application de Chat | Standard | Pas d'appel d'outils impliqué |
| API de génération de contenu | Standard | Sortie en texte brut |
如何判断是否需要从标准版切换到 customtools 版

快速诊断清单
如果你在使用标准版时遇到以下情况,说明应该切换到 customtools 版:
- 模型执行
cat而不是调用你的view_file - 模型执行
grep而不是调用你的search_code - 模型执行
sed而不是调用你的edit_file - 模型在工具调用日志中频繁出现 bash 命令
- 模型的工具调用率低于预期 (低于 50%)
- 模型似乎「不知道」有自定义工具可用
出现 2 条以上,建议立即切换到 gemini-3.1-pro-preview-customtools。
进阶: 在代码中动态切换两个版本
最佳实践不是「二选一」,而是根据请求类型动态路由:
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # APIYI 统一接口
)
def smart_route(messages, tools=None):
"""根据是否需要工具,动态选择模型版本"""
if tools and len(tools) > 0:
# 有自定义工具 → 用 customtools 版确保工具被调用
model = "gemini-3.1-pro-preview-customtools"
else:
# 纯对话/推理 → 用标准版确保质量稳定
model = "gemini-3.1-pro-preview"
return client.chat.completions.create(
model=model,
messages=messages,
tools=tools
)
# 场景 1: 纯推理 → 自动选标准版
resp1 = smart_route(
messages=[{"role": "user", "content": "解释量子纠缠原理"}]
)
# 场景 2: Agent 工作流 → 自动选 customtools 版
tools = [{"type": "function", "function": {
"name": "view_file",
"description": "查看文件",
"parameters": {"type": "object", "properties": {
"path": {"type": "string"}
}, "required": ["path"]}
}}]
resp2 = smart_route(
messages=[{"role": "user", "content": "查看 config.py"}],
tools=tools
)
💰 成本提示: 两个版本价格完全相同,动态路由不会增加任何额外成本。通过 APIYI apiyi.com 的统一接口,切换模型就像改一个字符串一样简单。
Questions fréquemment posées
Q1 : La version customtools est-elle plus chère ?
Non. Les tarifs des deux versions 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), vous pouvez utiliser les deux versions avec la même clé API.
Q2 : J’utilise seulement le function calling sans donner de permissions d’exécution bash, ai-je besoin de la version customtools ?
Généralement non. La version customtools résout principalement le problème où « le modèle privilégie bash quand bash et des outils personnalisés coexistent ». Si votre Agent n'a pas de capacités d'exécution bash, l'appel d'outils de la version standard est déjà suffisamment fiable.
Q3 : En quoi consistent exactement les « fluctuations de qualité » de la version customtools ?
Google n'a pas publié de données précises. D'après les retours des développeurs, cela se manifeste surtout dans des scénarios sans outils (dialogue pur, génération de longs textes), où la cohérence et le style d'écriture peuvent légèrement varier. Pour les scénarios d'Agents intensifs en outils, la qualité globale de la version customtools est en réalité meilleure.
Q4 : Puis-je utiliser les deux versions simultanément ?
Bien sûr. Il est recommandé d'effectuer un routage dynamique dans votre code : envoyez les requêtes impliquant des appels d'outils à la version customtools, et les requêtes de texte pur à la version standard. Via l'interface unifiée d'APIYI (apiyi.com), il suffit de modifier le paramètre model.
Résumé : Comparatif en 6 points entre Standard et Customtools
| # | Dimension de comparaison | Version Standard | Version customtools | Conseil de choix |
|---|---|---|---|---|
| 1 | Priorité des outils | Peut privilégier bash | Priorité aux outils personnalisés | Agent : utiliser customtools |
| 2 | Qualité générale | Équilibrée pour tous les scénarios | Légères fluctuations hors outils | Tâches générales : utiliser standard |
| 3 | Spécifications / Prix | Identiques | Identiques | Aucune différence de coût |
| 4 | Appel API | Seul le paramètre model change |
Seul le paramètre model change |
Bascule en un clic |
| 5 | Retours communauté | Appels d'outils parfois peu fiables | Appels d'outils plus fiables | Scénarios Agent : choisir customtools |
| 6 | Frameworks adaptés | Chat / RAG / Raisonnement pur | Cursor / Claude Code / MCP | Selon votre type d'application |
En résumé : customtools n'est pas une mise à jour, mais une version spécialisée — le même cerveau, mais avec une stratégie de sélection d'outils différente. Utilisez customtools pour développer des Agents, et la version standard pour les autres scénarios. Basculez librement entre les deux sur APIYI (apiyi.com) avec la même clé API.
Aide à la décision rapide
| Votre question | Réponse |
|---|---|
| Je crée uniquement une application de dialogue | Utilisez la version standard |
| Je développe un Agent | Utilisez la version customtools |
| Laquelle des deux versions est la plus puissante ? | Capacité de raisonnement identique, mais customtools est plus fiable pour les appels d'outils |
| Le changement nécessite-t-il de modifier le code ? | Modifiez simplement le paramètre model, le reste du code reste inchangé |
| Y a-t-il une différence de coût ? | Absolument aucune |
Ressources
-
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 - Description : Présentation du point de terminaison (endpoint) customtools et précautions d'emploi.
- Lien :
-
Guide du développeur Gemini 3 : FAQ — Quand changer de modèle
- Lien :
ai.google.dev/gemini-api/docs/gemini-3 - Description : Recommandations officielles sur le moment opportun pour passer de la version standard à la version customtools.
- Lien :
-
Changelog de l'API Gemini : Notes de version du 19 février 2026
- Lien :
ai.google.dev/gemini-api/docs/changelog - Description : Annonce initiale du lancement de la variante customtools.
- Lien :
-
Discussion Hacker News : Retours des développeurs sur l'appel d'outils (tool calling) de Gemini 3.1 Pro
- Lien :
news.ycombinator.com/item?id=47074735 - Description : Expériences réelles de développeurs et rapports de problèmes rencontrés.
- Lien :
-
Changelog GitHub Copilot : Intégration de Gemini 3.1 Pro
- Lien :
github.blog/changelog/2026-02-19-gemini-3-1-pro-is-now-in-public-preview-in-github-copilot - Description : Évaluation de la précision des outils dans les scénarios d'assistance au code.
- Lien :
📝 Auteur : Équipe APIYI | Pour échanger sur la technique, visitez APIYI apiyi.com
📅 Date de mise à jour : 20 février 2026
🏷️ Mots-clés : gemini-3.1-pro-preview-customtools, comparaison version standard, développement d'Agents, appel d'outils, function calling, choix du modèle