AI Foundations
Tool calling
Неофициальный перевод раздела Cursor Learn. Мы переводим английский оригинал и чуть расширяем объяснения — это не материал от Cursor Inc.
Context ты уже понимаешь. Теперь — как модели делают больше, чем «просто писать текст». Через tool calling они могут совершать действия и подтягивать свежую информацию.
Мы сравнивали модели с API endpoints. Tool calling — это когда самой модели дают право вызывать другие API. По сути, она получает новые skills.
Аналогия. Помогаешь другу готовить по телефону. Ты даёшь советы, но не видишь холодильник и не пробуешь еду. Если друг присылает фото полки или говорит точную температуру духовки — советы резко становятся лучше. Tool calling делает для модели то же самое: даёт live-данные вместо догадок.
Как это работает
Когда разработчики собирают AI-приложение, они описывают набор tools — специальных способностей сверх генерации текста.
Ты уже пользовался tool calling, даже если не замечал: генерация картинки в ChatGPT, web search, запуск кода — всё это tools под капотом.
Типичный цикл:
- Модель получает запрос и понимает, что ей не хватает capabilities
- Отвечает специальным JSON: какой tool вызвать и с какими parameters
- Приложение выполняет tool и возвращает результат
- Модель кладёт результат в context и продолжает
Зачем tools в coding
Для разработки tools — это game changer. Модель может:
- Читать и писать файлы в codebase
- Искать функции и паттерны по коду
- Гонять shell-команды: тесты, install пакетов
- Тянуть docs или искать актуальное в вебе
- Ловить ошибки через linter / test runner
Без tools модель ограничена тем, что ты явно положил в context. С tools она сама исследует проект.
Что внутри tool call
У каждого tool обычно три части:
- name — например
read_fileилиsearch_web - description — когда и как модель должна tool использовать
- parameters — входные данные
Пример definition:
{
"name": "read_file",
"description": "Read the contents of a file from the codebase",
"parameters": {
"filepath": "The path to the file to read"
}
}
Когда модель хочет tool вызвать, она генерирует что-то вроде:
{
"tool": "read_file",
"parameters": {
"filepath": "src/components/Button.tsx"
}
}
Приложение читает файл и добавляет содержимое в conversation context — дальше модель уже понимает твой Button и предлагает релевантные правки.
Цена tools
Помнишь tokens и pricing? Tool calls едят tokens дважды:
- Definitions tools лежат в input context (часто сотни tokens на tool)
- Results tools попадают обратно в контекст (размер зависит от ответа)
Много tool calls → context window забивается быстрее и чек растёт. Обычно trade-off того стоит: live-информация резко повышает полезность. В Cursor при повторной отправке одного и того же контекста после tool call часто растёт cached input — тул умеет кешировать.
За пределы встроенных tools
Появился стандарт MCP (Model Context Protocol) — универсальный способ подключать tools к разным AI-приложениям. Как USB для периферии, только для AI-tools.
Через MCP можно подключить Figma, Linear, свою БД, внутренние API. Один раз написал MCP server — пользуешься в разных клиентах.
Когда модель умеет вызывать несколько tools подряд, принимать решения и учиться на результатах — это уже территория agents.