Введение
Долгое время нейросети напоминали гениальных, но запертых в изоляторе ученых. Они могли написать великолепное эссе или решить сложную математическую задачу, но не могли узнать сегодняшнюю погоду или нажать кнопку на сайте. Всё изменилось с появлением технологии Function Calling (Вызов функций).
Function Calling — это мост, соединяющий текстовый интеллект LLM с реальным миром программных интерфейсов (API). Для пользователей n8n эта технология стала ключом к созданию автономных ИИ-агентов. В этой статье мы разберем, как работает Function Calling под капотом, и настроим агента в n8n, который умеет пользоваться внешними инструментами.
Что такое Function Calling простыми словами?
Представьте, что вы общаетесь с ChatGPT. Если вы спросите: "Какая погода в Москве?", обычная модель ответит: "Я не имею доступа к интернету в реальном времени...".
Но если модель поддерживает Function Calling, процесс выглядит так:
- Вы даете модели задачу ("Какая погода в Москве?") и список доступных ей инструментов
(например, функцию
get_weather(city)). - Модель анализирует ваш запрос, понимает, что ей не хватает данных, и вместо текстового ответа возвращает
вам специальный JSON: "Эй, человек (или n8n), выполни для меня функцию
get_weatherс аргументомcity="Москва", и верни мне результат". - n8n выполняет реальный API-запрос к сервису погоды (например, OpenWeatherMap), получает ответ (например, "+15, дождь").
- n8n отправляет этот результат обратно в нейросеть.
- Нейросеть генерирует финальный, человеческий ответ: "В Москве сейчас +15 градусов и идет дождь. Не забудьте зонт!".
Важно понимать: Сама нейросеть (OpenAI, Claude) ничего не выполняет и не ходит в интернет. Она лишь формирует правильный запрос (собирает JSON с аргументами), чтобы ваша программа (n8n) выполнила действие.
Создаем ИИ-агента с инструментами в n8n
Давайте соберем практический пример. Мы создадим умного ассистента в Telegram, который умеет делать две вещи: узнавать точное время в любом городе и отправлять email'ы. Для этого мы "научим" его двум функциям.
Шаг 1: Базовая настройка AI Agent
Создаем новый Workflow в n8n.
- В качестве триггера используем Telegram (On Message).
- Подключаем к нему узел AI Agent.
- В настройках агента выбираем тип агента: Tools Agent.
- В качестве модели подключаем OpenAI Chat Model (рекомендую использовать
gpt-4oилиgpt-4o-mini, они заточены под Function Calling). - Подключаем Window Buffer Memory для сохранения контекста диалога.
Шаг 2: Создаем кастомный инструмент (Tool) для времени
В n8n есть специальный узел для создания функций — Custom n8n Tool. Подключите его к входу "Tools" вашего AI Agent.
- Name:
get_current_time(имя должно быть без пробелов). - Description:
Возвращает текущее время для заданного часового пояса. Используй этот инструмент, когда пользователь спрашивает "Который час?".(Это самое важное поле! Именно по этому описанию нейросеть понимает, КОГДА нужно использовать этот инструмент).
Внутри узла Custom n8n Tool вы настраиваете логику, как в обычном n8n: ставите узел HTTP
Request для запроса к API точного времени (например, World Time API) и передаете
город, который ИИ поместит во входящие данные узла.
Шаг 3: Используем готовые узлы как инструменты
В n8n (начиная с новых версий) появилась магия: вы можете превратить почти любой стандартный узел n8n в инструмент для ИИ! Добавьте узел Gmail (Call n8n Tool) и подключите его к агенту.
- Настройте авторизацию в Gmail.
- В настройках укажите Description:
Отправляет email сообщение. Требует email адрес получателя, тему письма и текст.
Как это работает на практике? Тестируем!
Теперь мы пишем нашему боту в Telegram сообщение:
"Привет! Узнай, сколько сейчас времени в Нью-Йорке, и отправь это время моему боссу на boss@company.com с темой 'Время в офисе NY'."
Что происходит внутри n8n?
- Мысль: Модель OpenAI анализирует запрос и видит, что ей нужно выполнить два действия.
- Действие 1: Модель инициирует Function Calling. Она отправляет сигнал:
"Использовать инструмент
get_current_timeс аргументомtimezone="America/New_York"". - Исполнение 1: n8n незаметно запускает логику узла Custom Tool, делает API запрос и получает дату: "10:05 AM". n8n возвращает эту строку обратно в модель OpenAI.
- Мысль: Модель получает время и понимает, что первое действие завершено. Теперь нужно выполнить второе.
- Действие 2: Модель формирует второй JSON: "Использовать инструмент
Gmailс аргументамиto="boss@company.com",subject="Время в офисе NY",body="Привет, босс. Текущее время в Нью-Йорке: 10:05 AM."". - Исполнение 2: n8n отправляет реальное письмо через Google API.
- Финальный ответ: После успешной отправки ИИ формирует сообщение для Telegram: "Всё сделано! Я узнал, что в Нью-Йорке 10:05 утра, и уже отправил письмо вашему боссу."
Советы по работе с Function Calling
- Детальные описания (Descriptions): Успех на 90% зависит от того, насколько точно вы описали работу инструмента. Не пишите "работает с базой". Пишите: "Ищет пользователя в базе PostgreSQL по его номеру телефона и возвращает его баланс".
- Ограничение свободы: Чтобы ИИ не отправлял странные письма, используйте валидацию внутри Custom Tool. Например, проверяйте, находится ли email в белом списке доменов вашей компании, прежде чем физически отправить письмо.
- Строгая типизация: Всегда четко задавайте типы переменных для инструментов (String, Number, Boolean), чтобы модель не подсунула текст туда, где ожидается число.
Заключение
Function Calling в сочетании с визуальной средой n8n превращает ИИ из умной "болталки" в полноценного цифрового сотрудника. Вы можете дать нейросети доступ к вашей CRM, базе 1С, складским системам и мессенджерам. Она будет сама считывать заявки, анализировать их, дергать нужные API-ручки и отчитываться о проделанной работе.