很多开发者看到 gemini-3.1-pro-preview-customtools 这个模型名时会困惑: customtools 是什么意思? 它和标准的 gemini-3.1-pro-preview 有什么不同? 本文用 5 分钟帮你彻底搞清楚。
核心价值: 读完本文,你将明白什么时候该用标准版、什么时候该用 customtools 版,以及如何在 Agent 开发中正确选择。

什么是 Gemini 3.1 Pro Customtools
一句话解释
gemini-3.1-pro-preview-customtools 是谷歌在 2026 年 2 月 19 日与标准版 Gemini 3.1 Pro 同步发布的专用变体模型。它和标准版的核心区别只有一个: 优先使用你注册的自定义工具,而不是默认跑 bash 命令。
谷歌官方 Changelog 的原话是:
Launched a separate endpoint
gemini-3.1-pro-preview-customtools, which is better at prioritizing custom tools, for users building with a mix of bash and tools.
为什么需要这个变体
在 Agent 开发中,开发者通常会同时给模型注册两类能力:
- Bash/代码执行: 让模型直接运行 shell 命令
- 自定义工具 (Custom Tools): 开发者定义的结构化函数,如
view_file、search_code、create_pr等
问题出在哪里? 标准版 Gemini 3.1 Pro 有时会「偷懒」,跳过你精心设计的自定义工具,直接用 bash 命令完成任务。比如你注册了 view_file 工具,但模型可能直接执行 cat filename.py,绕过了你的工具。
这在某些场景下是有问题的:
- 自定义工具可能有权限控制和日志记录
- 自定义工具的返回格式是结构化的,便于后续处理
- 自定义工具可能连接了外部系统 (数据库、API 等)
customtools 变体就是为了解决这个问题: 让模型优先选择你注册的工具。
Основные различия между Gemini 3.1 Pro Standard и версией Customtools
| Параметр сравнения | Стандартная версия | Версия Customtools |
|---|---|---|
| ID модели | gemini-3.1-pro-preview |
gemini-3.1-pro-preview-customtools |
| Дата выпуска | 19.02.2026 | 19.02.2026 (одновременно) |
| Способности к рассуждению (Reasoning) | ARC-AGI-2 77.1% | Аналогично |
| Навыки кодинга | SWE-Bench 80.6% | Аналогично |
| Контекстное окно | 1 048 576 токенов | Аналогично |
| Максимальный вывод | 65 536 токенов | Аналогично |
| Цена за вход | $2.00 / 1M токенов | Такая же |
| Цена за выход | $12.00 / 1M токенов | Такая же |
| Поведение при вызове инструментов | Может отдавать приоритет bash | Приоритет пользовательских инструментов |
| Сценарии использования | Общие рассуждения, кодинг, анализ | Разработка агентов, оркестрация инструментов |
| Примечание по качеству | Сбалансирована для всех задач | В сценариях без инструментов возможны незначительные колебания качества |
🎯 Ключевой момент: «Уровень интеллекта» у обеих моделей абсолютно одинаков. Разница лишь в том, что когда стоит выбор — использовать bash или ваш зарегистрированный инструмент, версия Customtools с большей вероятностью выберет именно ваш инструмент.
В каких случаях стоит использовать Gemini 3.1 Pro Customtools
Когда Customtools необходима
| Сценарий | Почему это нужно | Конкретный пример |
|---|---|---|
| AI-ассистенты для кодинга | Нужны структурированные инструменты вроде view_file, edit_file |
Продукты типа Claude Code или Cursor |
| DevOps-агенты | Нужно вызывать CI/CD системы через инструменты, а не напрямую через bash | Автоматизация развертывания, боты для код-ревью |
| Рабочие процессы MCP | Агенты, использующие протокол инструментов MCP | Оркестрация многошаговых рабочих процессов |
| Агенты с контролем доступа | В кастомные инструменты встроена проверка прав | Корпоративные агентские приложения |
| Агенты с логгированием | Вызовы инструментов проще записывать и проверять | Сценарии с высокими требованиями к комплаенсу |
Когда Customtools НЕ нужна
| Сценарий | Достаточно стандартной версии | Причина |
|---|---|---|
| Обычные диалоги / Q&A | gemini-3.1-pro-preview |
Инструменты не используются |
| Анализ текста / Перевод | gemini-3.1-pro-preview |
Чистый текст на входе и выходе |
| Генерация кода (без инструментов) | gemini-3.1-pro-preview |
Нужно, чтобы модель просто написала код |
| Выполнение простых bash-скриптов | gemini-3.1-pro-preview |
Если вы намеренно хотите использовать bash |
Официальная рекомендация Google
В FAQ руководства для разработчиков Gemini 3 Google четко заявляет:
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.
Перевод: Если вы заметили, что стандартная версия игнорирует ваши кастомные инструменты в пользу команд bash, попробуйте переключиться на модель gemini-3.1-pro-preview-customtools.
Вызов Gemini 3.1 Pro Customtools через API
Базовый вызов: всё точно так же, как в стандартной версии
import openai
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Единый интерфейс APIYI
)
# Нужно только сменить название модели, остальной код остается прежним
response = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=[
{"role": "user", "content": "Помоги мне просмотреть содержимое файла main.py в проекте"}
]
)
print(response.choices[0].message.content)
Вызов Agent с кастомными инструментами
Настоящая мощь версии customtools раскрывается при использовании function calling:
import openai
import json
client = openai.OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.apiyi.com/v1" # Единый интерфейс APIYI
)
# Определяем кастомные инструменты
tools = [
{
"type": "function",
"function": {
"name": "view_file",
"description": "Просмотреть содержимое указанного файла",
"parameters": {
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Путь к файлу"
}
},
"required": ["file_path"]
}
}
},
{
"type": "function",
"function": {
"name": "search_code",
"description": "Поиск ключевых слов в кодовой базе",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Ключевое слово для поиска"
},
"file_pattern": {
"type": "string",
"description": "Шаблон файлов, например *.py"
}
},
"required": ["query"]
}
}
}
]
# Версия customtools будет отдавать приоритет инструментам, определенным выше
response = client.chat.completions.create(
model="gemini-3.1-pro-preview-customtools",
messages=[
{"role": "user", "content": "Найди в проекте все Python-файлы, содержащие TODO"}
],
tools=tools
)
# Модель вызовет инструмент search_code вместо прямого использования grep
tool_call = response.choices[0].message.tool_calls[0]
print(f"Инструмент: {tool_call.function.name}")
print(f"Аргументы: {tool_call.function.arguments}")
Посмотреть полный код цикла 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": "Просмотреть содержимое указанного файла",
"parameters": {
"type": "object",
"properties": {
"file_path": {"type": "string", "description": "Путь к файлу"}
},
"required": ["file_path"]
}
}
},
{
"type": "function",
"function": {
"name": "search_code",
"description": "Поиск ключевых слов в кодовой базе",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "Ключевое слово для поиска"},
"file_pattern": {"type": "string", "description": "Шаблон файлов"}
},
"required": ["query"]
}
}
},
{
"type": "function",
"function": {
"name": "edit_file",
"description": "Редактирование определенного содержимого в файле",
"parameters": {
"type": "object",
"properties": {
"file_path": {"type": "string", "description": "Путь к файлу"},
"old_content": {"type": "string", "description": "Старое содержимое для замены"},
"new_content": {"type": "string", "description": "Новое содержимое"}
},
"required": ["file_path", "old_content", "new_content"]
}
}
}
]
# Имитация выполнения инструмента
def execute_tool(name, args):
"""В реальном проекте замените на настоящую реализацию инструментов"""
if name == "view_file":
return f"Содержимое файла: {args['file_path']} (имитация)"
elif name == "search_code":
return f"Результаты поиска '{args['query']}': найдено 3 совпадения (имитация)"
elif name == "edit_file":
return f"Содержимое в {args['file_path']} успешно заменено (имитация)"
return "Неизвестный инструмент"
# Основной цикл Agent
messages = [{"role": "user", "content": "Найди все комментарии TODO в проекте и исправь их"}]
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"[Итерация {turn+1}] Вызов: {tc.function.name}({args})")
else:
print(f"[Завершено] {msg.content[:200]}")
break
🚀 Быстрый старт: На платформе APIYI (apiyi.com) стандартная версия и версия customtools используют один и тот же API Key. Просто измените параметр
modelдля переключения — это отлично подходит для A/B тестирования того, какая версия лучше справляется с вашим Agent.
Связь Gemini 3.1 Pro Customtools и фреймворков Agent

Совместимость с популярными фреймворками Agent
Версия customtools особенно ценна для следующих сценариев разработки Agent:
| Фреймворк Agent / Сценарий | Рекомендация | Причина |
|---|---|---|
| Помощники кодинга типа Claude Code | Рекомендуется customtools | Требуются структурированные инструменты типа view_file, edit_file |
| Cursor / GitHub Copilot | Рекомендуется customtools | Набор инструментов IDE должен вызываться в приоритетном порядке |
| Agent с протоколом MCP | Рекомендуется customtools | Инструментам, зарегистрированным через MCP, нужна гарантия приоритета |
| LangChain / LlamaIndex | Рекомендуется customtools | Инструменты, зарегистрированные во фреймворке, должны вызываться корректно |
| Обычные чат-приложения | Используйте стандартную версию | Не предполагает вызов инструментов |
| RAG (генерация с поиском) | Зависит от ситуации | Если поиск реализован через function calling, используйте customtools |
Сравнение поведения Gemini 3.1 Pro Customtools и стандартной версии
Чтобы лучше понять разницу, давайте разберем конкретный пример:
Один и тот же запрос — разная реакция моделей
Запрос пользователя: «Помоги мне просмотреть содержимое файла src/main.py»
Зарегистрированный инструмент: view_file(file_path: string)
| Версия модели | Поведение модели | Описание |
|---|---|---|
| Стандартная | Может напрямую выполнить cat src/main.py |
Выполняет задачу через bash, игнорируя ваш инструмент |
| Customtools | Вызывает view_file("src/main.py") |
Отдает приоритет вашему зарегистрированному инструменту |
Оба способа позволяют получить содержимое файла, но вызов через кастомный инструмент дает следующие преимущества:
- Контроль доступа: ваш инструмент
view_fileможет проверить, находится ли путь в «белом списке». - Форматированный вывод: инструмент может вернуть структурированный JSON вместо «сырого» текста.
- Логирование и аудит: вызовы инструментов автоматически фиксируются фреймворком.
- Обработка ошибок: инструмент может выдать понятное сообщение об ошибке вместо системного сбоя bash.

Эволюция моделей вызова инструментов Google Gemini
Customtools — это первый случай, когда Google выпускает специальный вариант модели для вызова инструментов. Вот полная карта моделей Gemini, связанных с инструментами:
| Модель | Дата выпуска | Тип инструментов | Описание |
|---|---|---|---|
| Gemini 2.5 Flash | 2025 | Базовый function calling | Универсальный вызов инструментов |
| Gemini 3 Pro Preview | Конец 2025 | function calling | Улучшенный вызов инструментов |
| Gemini 3.1 Pro Preview | 19.02.2026 | function calling + параллельные инструменты | Стандартная версия, может предпочитать bash |
| Gemini 3.1 Pro Customtools | 19.02.2026 | Приоритет function calling | Специально для агентов, приоритет кастомным инструментам |
| Computer Use Preview | 2025 | Операции с GUI | Использование компьютера (экспериментально) |
| Deep Research Preview | Конец 2025 | Поиск + Анализ | Агент для глубоких исследований |
Это говорит о том, что Google начинает разделять модели по сценариям использования, а не пытается покрыть всё одной универсальной моделью. В будущем, вероятно, появится еще больше специализированных вариантов.
Часто задаваемые вопросы
Q1: Будет ли версия customtools дороже?
Нет. Цена на версию customtools и стандартную версию абсолютно одинаковая: входные токены — $2.00 / 1 млн, выходные — $12.00 / 1 млн. При вызове через платформу APIYI (apiyi.com) оба варианта используют один и тот же API-ключ, никаких дополнительных комиссий нет.
Q2: Станет ли слабее способность к рассуждению (reasoning) в версии customtools?
Практически нет. Google упоминает, что в «сценариях, не связанных с инструментами, возможны незначительные колебания качества», но основные показатели рассуждения (ARC-AGI-2 77.1%, SWE-Bench 80.6%) остаются прежними. Если ваш агент в основном использует инструменты, общая производительность версии customtools будет даже выше.
Q3: Когда стоит переключиться со стандартной версии на customtools?
Когда вы замечаете, что модель при наличии кастомных инструментов всё равно часто использует bash-команды для выполнения задач. Например, вы зарегистрировали view_file, но модель упорно использует cat, или зарегистрировали search_code, а она лезет в grep. Через APIYI (apiyi.com) можно быстро провести A/B тестирование обеих версий.
Q4: Есть ли смысл использовать customtools, если я не регистрировал кастомные инструменты?
Смысла нет. Если вы не регистрируете собственные инструменты, поведение обеих версий будет идентичным. Оптимизация customtools проявляется только тогда, когда модели нужно сделать выбор между bash и вашим инструментом.
Резюме: Шпаргалка по Gemini 3.1 Pro Customtools
| Вопрос | Ответ |
|---|---|
| Что такое customtools? | Вариант Gemini 3.1 Pro с приоритетом на использование кастомных инструментов |
| В чем отличие от стандарта? | Только в приоритете вызова инструментов; логика и цена те же |
| Когда использовать? | При разработке агентов, использовании MCP, регистрации инструментов через function calling |
| Когда НЕ использовать? | Обычный чат, чистые рассуждения, задачи без вызова инструментов |
| Можно ли переключаться? | Да, достаточно изменить один параметр model |
| Цена одинаковая? | Полностью: $2 на вход / $12 на выход за 1 млн токенов |
Итог одной фразой: gemini-3.1-pro-preview-customtools — это своего рода «режим агента» для Gemini 3.1 Pro. Он заставляет модель послушнее использовать ваши инструменты вместо того, чтобы сразу бежать исполнять bash-скрипты. Цена та же, интеллект тот же, просто стратегия выбора инструментов лучше подходит для разработки агентов.
Рекомендуем подключить обе версии через платформу APIYI (apiyi.com), провести A/B тесты на реальных задачах и выбрать подходящую. Для разработчиков ИИ-агентов версия customtools почти всегда будет лучшим выбором.
Справочные материалы
-
Документация Google AI: Страница модели Gemini 3.1 Pro Preview
- Ссылка:
ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview - Описание: Содержит сравнение стандартной версии и версии customtools.
- Ссылка:
-
Gemini API Changelog: Обновление от 19 февраля 2026 года
- Ссылка:
ai.google.dev/gemini-api/docs/changelog - Описание: Запись о первом релизе варианта customtools.
- Ссылка:
-
Руководство для разработчиков Gemini 3: Рекомендации по выбору инструментов в FAQ
- Ссылка:
ai.google.dev/gemini-api/docs/gemini-3 - Описание: Когда стоит переходить со стандартной версии на версию customtools.
- Ссылка:
-
Документация Google AI: Руководство по Function Calling
- Ссылка:
ai.google.dev/gemini-api/docs/function-calling - Описание: Подробное описание API вызова функций для моделей Gemini.
- Ссылка:
📝 Автор: Команда APIYI | По вопросам технического взаимодействия заходите на APIYI apiyi.com
📅 Дата обновления: 20 февраля 2026 г.
🏷️ Ключевые слова: gemini-3.1-pro-preview-customtools, кастомные инструменты, разработка агентов, function calling, вызов инструментов, вызов API
