Создание ИИ-агента в n8n: Полное руководство
N8n — это платформа с открытым исходным кодом для оркестрации рабочих процессов (workflow automation), которая позволяет интегрировать различные сервисы, API и инструменты. С появлением встроенных узлов для работы с искусственным интеллектом, n8n превратился в мощную среду для создания, развертывания и управления ИИ-агентами. ИИ-агент в контексте n8n — это автоматизированный рабочий процесс, который использует модели машинного обучения (чаще всего большие языковые модели, LLM) для восприятия данных, принятия решений и выполнения задач с минимальным вмешательством человека.
Архитектура ИИ-агента в n8n
Агент строится на последовательности узлов (нод), образующих конвейер обработки информации. Типичная архитектура включает следующие слои:
- Слой ввода (Input): Узлы-триггеры (Webhook, Schedule, Polling) или узлы для получения данных (HTTP Request, Email, Telegram).
- Слой обработки и логики (Processing & Logic): Узлы для манипуляции данными (Set, IF, Switch, Code) и ключевые ИИ-узлы (LangChain, Chat Model).
- Слой памяти и контекста (Memory & Context): Механизмы для сохранения состояния агента (переменные, базы данных, векторные хранилища через Pinecone или подобные узлы).
- Слой вывода и действий (Output & Action): Узлы для выполнения действий на основе решений ИИ (HTTP Request для вызова API, Email, Telegram, Google Sheets).
- Добавьте узел Telegram Trigger (или Webhook для других мессенджеров).
- Настройте подключение к вашему Telegram Bot через API-токен от BotFather.
- Выберите тип события «Message». Теперь workflow будет запускаться на каждое новое сообщение в Telegram.
- Добавьте узел Set. Сформируйте поле
userMessage, взяв его из тела входящего сообщения Telegram ({{$json.message.text}}). - Добавьте узел Chat Model (например, OpenAI GPT-3.5-Turbo).
- В системном промпте пропишите: «Ты классификатор намерений. Определи, требует ли следующий пользовательский запрос поиска актуальной информации в интернете (например, новости, курсы валют, погода) или является общим вопросом. Ответь строго ‘web_search’ или ‘general_chat’.»
- В пользовательский промпт передайте
{{$json.userMessage}}. - Добавьте узел Switch. В качестве условия укажите
{{$json["Chat Model"].message.content}}. - Создайте две ветки: для значения
web_searchиgeneral_chat. - В ветке
web_search:- Добавьте узел Code (или используйте специализированный узел для Serper, Google Search API) для выполнения поискового запроса. Например, через HTTP Request к API Serper.dev, передав
userMessageкак поисковый запрос. - Полученные сниппеты или данные передайте в следующий узел.
- Добавьте узел Code (или используйте специализированный узел для Serper, Google Search API) для выполнения поискового запроса. Например, через HTTP Request к API Serper.dev, передав
- Добавьте новый узел Chat Model в обе ветки.
- В ветке
web_searchв системном промпте укажите: «Ты полезный ассистент. На основе предоставленных результатов поиска сформируй четкий и структурированный ответ пользователю. Если информации недостаточно, укажи на это. Всегда ссылайся на источники.» - В пользовательский промпт передайте структурированные данные: «Запрос пользователя: [userMessage]. Результаты поиска: [searchResults].»
- В ветке
general_chatнастройте модель для ведения обычного диалога. - После узла Chat Model добавьте узел Telegram Send Message.
- Настройте его на отправку текста из
{{$json["Chat Model"].message.content}}в тот же чат, откуда пришел запрос ({{$json.message.chat.id}}). - Переменные n8n: Подходят для простого хранения контекста в рамках одного выполнения workflow.
- Внешние базы данных: Узлы PostgreSQL, MySQL. Можно сохранять историю диалога с привязкой к chat_id.
- Векторные хранилища (RAG): Комбинация узлов для обработки документов (Text Splitter), эмбеддингов (Embeddings) и векторных БД (Pinecone, Chroma). Позволяет агенту отвечать на вопросы на основе ваших приватных данных.
- Узел LangChain Memory: Позволяет напрямую интегрировать буферную память (BufferMemory), память суммаризации и другие типы в цепочку LangChain.
- Режим выполнения (Execution Mode): Запуск workflow вручную с тестовыми данными. Позволяет проверить каждый узел.
- Просмотр данных: При клике на каждый узел можно увидеть входные и выходные данные для конкретного выполнения.
- Ведение логов: Использование узла Code для логирования ключевых переменных или специализированных сервисов.
- Развертывание: После тестирования workflow активируется. Его можно запускать по триггеру (например, вебхук), расписанию или вручную. Для продакшн-среды рекомендуется использовать n8n.cloud или собственный сервер с обратным прокси и настройкой домена.
- Через узел Ollama (если есть community node), который позволяет обращаться к локально запущенным моделям.
- Через узел Chat Model с выбором провайдера «Custom API», если модель предоставляет OpenAI-совместимый API (например, локально развернутый vLLM или текстовое поколение в LM Studio).
- Написав кастомную логику в узле Code для вызова локального эндпоинта модели.
- Используйте встроенную аутентификацию n8n для доступа к интерфейсу редактора.
- Для публичных вебхуков настройте секретный ключ (Webhook Authentication) или проверку подписи.
- Для API-ключей LLM и внешних сервисов используйте Credentials в n8n, никогда не храните их в открытом виде в коде workflow.
- Настройте правила CORS и IP-фильтрации на сервере, где развернут n8n.
- HTTP Request: Для вызова REST API вашей системы. Данные для запроса можно формировать на основе вывода LLM.
- Code: Для написания кастомного подключения с использованием специфичных библиотек или протоколов.
- Создайте свой собственный узел n8n, если интеграция будет часто использоваться.
Ключевые узлы n8n для создания агента
Для построения агента используются специализированные и стандартные узлы.
| Название узла | Категория | Назначение в агенте |
|---|---|---|
| LangChain | AI | Основной узел для создания цепочек (chains). Позволяет комбинировать LLM, промпты, инструменты (tools) и память в единый исполняемый конвейер. |
| Chat Model | AI | Узел для подключения к LLM (OpenAI GPT, Anthropic Claude, локальные модели через Ollama и др.). Обрабатывает системные и пользовательские промпты. |
| Chat Trigger | Core | Триггер для создания интерактивных чат-ботов. Запускает workflow при новом сообщении пользователя. |
| Code | Core | Позволяет добавлять кастомную логику на JavaScript или Python для обработки данных, работы с API или сложных преобразований. |
| IF / Switch | Core | Узлы для ветвления логики агента на основе условий (например, анализ тональности запроса или intent classification). | Set | Core | Для управления данными, объединения полей, создания структур для отправки в LLM. |
Пошаговый процесс создания базового ИИ-агента
Рассмотрим создание агента-ассистента для обработки запросов из Telegram и поиска информации в интернете.
Шаг 1: Настройка триггера
Шаг 2: Обработка и классификация запроса
Шаг 3: Ветвление логики и вызов инструментов
Шаг 4: Формирование ответа с помощью LLM
Шаг 5: Отправка ответа пользователю
Продвинутые техники: память, инструменты и цепочки
Добавление памяти агенту
Для многораундового диалога агенту необходима память. Это реализуется через:
Расширение возможностей агента через инструменты (Tools)
Инструменты — это функции, которые агент может вызывать для взаимодействия с внешним миром. В n8n это реализуется через узел LangChain Tools.
| Тип инструмента | Реализация в n8n | Пример использования агентом |
|---|---|---|
| Поиск в интернете | Интеграция с Serper API, Tavily API через узел HTTP Request или кастомный инструмент Code. | Агент решает, что нужен поиск, вызывает инструмент, получает JSON с результатами, формирует ответ. |
| Работа с файлами и БД | Узлы Google Sheets, Spreadsheet File, SQL. | Агент может добавлять запись в таблицу по запросу «Сохрани мою затрату 100$ на продукты». |
| Вычисления и код | Узел Code или Wolfram Alpha Tool. | Агент вычисляет сложные математические выражения. |
| Взаимодействие с API | Узел HTTP Request, обернутый в инструмент. | Агент получает курс биткойна, включает/выключает умную лампочку через Smart Home API. |
Тестирование, отладка и развертывание
N8n предоставляет встроенные инструменты для отладки workflow:
Ответы на часто задаваемые вопросы (FAQ)
Чем ИИ-агент в n8n отличается от простого чат-бота?
Простой чат-бот чаще всего работает по жестким сценариям (правилам). ИИ-агент в n8n использует LLM для понимания естественного языка, может динамически принимать решения о вызове инструментов, обладает памятью о предыдущих взаимодействиях и способен выполнять сложные, многоэтапные задачи, интегрируясь с десятками внешних систем.
Можно ли использовать локальные LLM (например, Llama 3) вместо OpenAI?
Да, это возможно. Основные способы:
Как обеспечить безопасность и управление доступом к агенту?
Агент работает медленно. Как оптимизировать производительность?
Основные причины медленной работы и способы оптимизации:
| Причина | Решение |
|---|---|
| Длинные промпты и большие контексты | Используйте суммаризацию истории диалога, очищайте контекст от ненужных данных, настраивайте максимальную длину токенов. |
| Последовательные вызовы LLM | По возможности объединяйте задачи в один запрос к модели. Используйте параллельное выполнение (Branching), если узлы не зависят друг от друга. |
| Медленные внешние API (поиск, базы данных) | Устанавливайте таймауты, используйте кеширование повторяющихся запросов (можно через переменные или внешний кеш). |
| Слабая инфраструктура | Увеличьте ресурсы сервера (CPU, RAM) для n8n, особенно если обрабатывается много одновременных запросов. |
Как интегрировать агента с моей внутренней CRM или базой данных?
N8n поддерживает сотни готовых узлов для популярных сервисов (Salesforce, HubSpot, PostgreSQL, MySQL, MongoDB). Если готового узла нет, используйте универсальные узлы:
Заключение
N8n представляет собой гибкую и мощную платформу для создания production-готовых ИИ-агентов. Комбинируя визуальное построение workflow, широкие возможности интеграции, продвинутые ИИ-узлы и механизмы оркестрации, разработчики и инженеры могут создавать агентов, способных решать реальные бизнес-задачи — от интеллектуальной поддержки клиентов и анализа данных до автоматизации сложных межсистемных процессов. Ключевыми преимуществами являются модульность, возможность тонкой настройки логики, открытость платформы и отсутствие привязки к одному провайдеру ИИ.
Комментарии