10 апреля 2026 г.3 мин чтенияGuide

Function calling и инструменты в GPT, Claude и Gemini

Function calling — это то, что превращает чат-модель в агента. Вместо ответа прозой модель выдаёт структурированный запрос — «вызови get_weather с { "city": "Berlin" }», — ваш код выполняет функцию, возвращает результат, и модель продолжает. GPT, Claude и Gemini поддерживают это, но форматы передачи по проводу и поведение различаются достаточно, чтобы подложить вам свинью при смене провайдера.

Одна идея, три диалекта

Все три следуют одному циклу: вы описываете инструменты с помощью JSON Schema, модель решает, когда вызвать один из них, вы его выполняете и передаёте результат обратно. Различия — в обёртке.

Аспект GPT (OpenAI) Claude (Anthropic) Gemini (Google)
Определение инструмента tools[].function с JSON Schema tools[].input_schema functionDeclarations
Вызов от модели tool_calls в сообщении контент-блок tool_use часть functionCall
Ваш результат сообщение с role: "tool" контент-блок tool_result часть functionResponse
Принудительный вызов tool_choice tool_choice режим toolConfig
Параллельные вызовы Да Да Да

Концептуальная модель идентична; имена полей, вложенность и то, как результаты вшиваются обратно в разговор, — нет. Перенос работающего агента с GPT на нативный Gemini означает переписывание разбора запросов и ответов.

Поведенческие особенности, которые имеют значение

  • Параллельные вызовы инструментов (parallel tool calls). GPT и Claude охотно выдают несколько вызовов инструментов за один ход (запросить погоду и календарь сразу). Ваш исполнитель должен обрабатывать список, выполнять их и возвращать все результаты, прежде чем модель продолжит. Gemini тоже это поддерживает, но модели по-разному агрессивно их группируют.
  • Строгие схемы. Строгий режим OpenAI гарантирует, что аргументы точно соответствуют вашей схеме. Claude обычно ему верен, но не обеспечивает такой же жёсткой гарантии, поэтому проверяйте входные данные, прежде чем выполнять что-либо разрушительное.
  • Принуждение vs. выбор. Нужно, чтобы модель всегда вызывала конкретный инструмент (например, для структурированного извлечения данных)? У каждого провайдера есть свой механизм, но синтаксис различается — tool_choice: { type: "function", function: { name } } в GPT против эквивалентного объекта в Claude.
  • Рассуждения + инструменты. Новые модели с рассуждениями чередуют размышления и вызовы инструментов. Тестируйте это явно; задержка и расход токенов заметно меняются.

Практический вывод: не думайте, что промпт, выдающий чистые вызовы инструментов на одной модели, ведёт себя так же на другой. Их нужно сравнивать на ваших схемах и ваших промптах.

Один эндпоинт, одна схема, любая модель

Именно здесь исчезает большая часть трения. AnyModel предоставляет единый OpenAI-совместимый эндпоинт, так что вы описываете инструменты в формате tools от OpenAI один раз и получаете доступ к GPT, Claude, Gemini, а также DeepSeek, GLM, Kimi, Qwen и Grok. Смена модели — это просто замена идентификатора model; ваши определения инструментов, разбор tool_calls и код передачи результатов остаются прежними.

curl https://anymodel.org/v1/chat/completions \
  -H "Authorization: Bearer $ANYMODEL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4.5",
    "messages": [{"role": "user", "content": "Weather in Berlin?"}],
    "tools": [{"type": "function", "function": {
      "name": "get_weather",
      "parameters": {"type": "object", "properties": {"city": {"type": "string"}}}
    }}]
  }'

Поменяйте "model" на gpt-5 или gemini-2.5-pro и запустите снова — тот же payload. Это позволяет легко проверить, какая модель вызывает ваши инструменты наиболее надёжно, а затем сравнить стоимость и задержку, прежде чем сделать выбор.

Подключение к вашему агентскому стеку

Уже используете CLI-агент? Одна строка подключает его:

bash <(curl -fsSL "https://anymodel.org/i?tool=codex") <YOUR_API_KEY>

Используйте tool=claude для Claude Code (также opencode, hermes). Для Cursor, Windsurf, Zed, Cline, Aider, Continue или Gemini CLI направьте ручную OpenAI-совместимую конфигурацию на https://anymodel.org/v1 со своим ключом.

Разрабатывайте приватно, платите за токены

AnyModel работает по предоплаченному балансу без подписки и минимальных платежей. За регистрацию токены не начисляются; после верификации уникального Telegram-аккаунта можно получить 5 000 000 бесплатных токенов.

Хотите больше гайдов по агентам и вызову инструментов? Загляните в блог.

Готовы протестировать function calling в GPT, Claude и Gemini с одним ключом? Создайте бесплатный аккаунт и переключайте модели, меняя одну строку.

Читать дальше