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 со своим ключом.

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

Никакой подписки и кредитной карты для старта не нужно: при регистрации вы получаете 1 000 000 бесплатных токенов и 6 000 000 в сумме, если привяжете Telegram. Дальше — оплата за токены без минимумов. Для чувствительных входных данных инструментов подключите Ghost Mode — ключи с нулевым хранением (zero-retention), где мы держим только счётчик токенов и не сохраняем ни промпты, ни ответы (провайдер модели всё равно получает промпт, так что это не абсолютная приватность, но на нашей стороне ничего не хранится).

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

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

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