объясни tool-function-calling --простыми-словами

Инструменты / Function Calling
Агент ничего не делает сам. Он заполняет наряд на работу и передает его тому, кто делает.
Когда мы говорили про агентов, я сказал, что граница между чатботом и агентом — это инструменты. Агент может вызвать API, запустить команду, отправить письмо, обновить цену. Я пропустил часть, на которой люди обычно спотыкаются: как модель вообще "пользуется" инструментом. Потому что модель все еще остается тем, чем была: словами в коробке. Она не может протянуть руку через экран и списать деньги с карты. Она не может физически отправить письмо. Тогда как она вообще что-то делает?
Она пишет наряд на работу.
Представь прораба, который ведет ремонт твоей кухни. Он сам не машет молотком. Он не делает сантехнику, проводку или плитку своими руками. Когда задача доходит до сантехники, он выписывает наряд и передает его подрядчику-сантехнику: "нужна медная труба на полдюйма к раковине". Сантехник делает реальную работу и отчитывается. Прораб читает результат и решает следующий шаг.
Это и есть function calling. Ты даешь модели список инструментов, которые ей разрешено запрашивать, и каждый похож на пустой наряд, который она может заполнить:
- send_email
- get_orders
- post_to_slack
Когда модель решает, что ей нужен один из них, она не выполняет работу сама. Она выдает аккуратный структурированный запрос: вызвать get_orders с такими датами. Что-то снаружи модели (harness) читает этот запрос, реально запускает его в настоящем приложении и возвращает результат. Модель читает, что вернулось, и решает, что делать дальше.
Вся соль в слове "структурированный". Модель не бормочет "может, кто-нибудь проверит заказы?". Она заполняет форму точно: имя инструмента, входные данные, в таком виде, чтобы машина могла действовать без догадок. Это разница между "мне курицу какую-нибудь" официанту и разборчиво записанным заказом на талоне, который кухня сможет прочитать.
Теперь посмотри снова на цикл агента. Решить шаг, сделать его, посмотреть, что вернулось, решить следующий шаг. Function calling — это шарнир "сделать". Точный момент, когда слова в коробке превращаются в событие в реальном мире.
Зачем это знать человеку, который не пишет код. Каждый раз, когда агент что-то сделал для тебя — забронировал встречу, вытащил отчет, отправил сообщение в Slack, — под капотом был function call. И это объясняет тихий режим поломки. Если ты не дал агенту нужный инструмент, он буквально не может сделать работу, как бы умно он ни звучал. Он либо скажет, что не может, либо, что хуже, сделает вид, что сделал. Инструменты, которые ты ему даешь, — это полный набор вещей, до которых он может дотянуться в реальном мире. Та же граница, что и меню drive-thru раньше. Он может заказать только то, что ты напечатал на табло.
Модель решает. Инструменты делают. Function calling — это наряд на работу между ними.