За несколько последних постов мы разобрали одну простую, но важную конструкцию.
Начали тут☝с обычного запроса к модели:
«Проанализируй задачу TASK-123 в JIRA».
Затем вот тут☝ посмотрели, что происходит внутри API и почему сама модель не может просто взять и прочитать нашу Jira.
После этого вот тут ☝ описали модели инструмент jira_get_issue и увидели, как она сама сформировала function_call.
Модель не вызвала Jira напрямую. Она сообщила нашей системе: «Мне нужны данные TASK-123, вызови вот эту функцию».
Дальше наша система выполнила функцию, получила данные из Jira и вернула результат обратно модели.
На этом месте мы фактически разобрали function calling.
И здесь стоит зафиксировать терминологию.
Function calling - это частный случай более общего понятия tool calling.
Инструментом может быть функция, поиск, работа с файлами, база данных или другой механизм взаимодействия с внешней системой. В нашем примере инструментом является функция jira_get_issue.
То есть пока мы собрали довольно простой механизм:
модель → tool call → наша система → внешний сервис → результат → модель.
Но это ещё не полноценный агент.
Следующий уровень начинается там, где модель получает несколько инструментов и сама определяет, что ей нужно сделать дальше, может выполнить несколько последовательных действий и остановиться только после достижения результата.
И вот тут уже появляются agent loop, MCP, Skills и другие элементы агентной архитектуры.
Но куда двигаться дальше?
🌟Что разобрать следующим?
1️⃣ Как модель выбирает нужный инструмент из десятков доступных
2️⃣ Как устроен agent loop и несколько последовательных вызовов
3️⃣ MCP и как через него подключать инструменты
4️⃣ Skills и чем они отличаются от инструментов
Пишите номер в комментариях и по результатам продолжим серию.
——
✌️ ПРО СА| 🆕 НСА 3.0
