N8n: Настройка и использование AI Agent
N8n — это инструмент с открытым исходным кодом для оркестрации рабочих процессов (workflow automation), который позволяет соединять различные приложения, сервисы и API без необходимости написания кода. С появлением интеграции с моделями искусственного интеллекта, в частности через ноды AI Agent и Chat Model, N8n превратился в мощную платформу для создания интеллектуальных агентов, способных обрабатывать неструктурированные данные, принимать решения и выполнять сложные многошаговые задачи.
Концепция AI Agent в N8n
AI Agent в N8n — это не отдельный сервис, а специальная нода (узел), которая использует языковую модель (LLM) для выполнения задач в рамках рабочего процесса. Ключевое отличие агента от простой ноды чата в его способности использовать инструменты (Tools). Инструменты — это, по сути, другие ноды или действия, которые агент может вызывать в процессе выполнения своей задачи, основываясь на контексте и инструкциях пользователя. Это позволяет агенту не просто генерировать текст, а взаимодействовать с внешним миром: получать данные из базы, отправлять письма, делать HTTP-запросы, управлять другими системами.
Архитектура и ключевые компоненты
Для успешной настройки агента необходимо понимать взаимодействие его основных компонентов.
| Компонент | Описание | Роль в агенте |
|---|---|---|
| Нода Chat Model | Нода, отвечающая за подключение к LLM (OpenAI GPT, Anthropic Claude, локальные модели через LM Studio, Ollama и др.). | Движок рассуждений агента. Интерпретирует запрос, решает, какие инструменты использовать, и формирует финальный ответ. |
| Нода AI Agent | Основная нода, которая управляет процессом. Принимает системный промпт, список инструментов и пользовательский запрос. | Оркестратор. Управляет диалогом с LLM, вызывает выбранные инструменты, обрабатывает их результаты и возвращает итог. |
| Инструменты (Tools) | Любые ноды N8n, которые могут быть вызваны агентом. Часто это HTTP-запрос, код (Python/JS), запрос к базе данных, чтение файла. | «Руки» агента. Расширяют его возможности за пределы генерации текста, позволяя воздействовать на данные и системы. |
| Системный промпт (Instructions) | Текстовые инструкции, определяющие роль, цель и правила поведения агента. | «Мозг» и свод правил. Четко описывает, кто агент, что он должен делать, как использовать инструменты и в каком формате отвечать. |
| Контекст (Session) | Механизм сохранения истории сообщений в рамках одного выполнения рабочего процесса. | Память агента. Позволяет вести многошаговый диалог, помня предыдущие шаги и ответы. |
Пошаговая настройка базового AI Agent
Рассмотрим создание агента-исследователя, который может искать информацию в интернете и summarizеровать ее.
Шаг 1: Подготовка и настройка ноды Chat Model
- Перетащите ноду «Chat Model» на канву рабочего процесса.
- В настройках ноды выберите сервис (например, OpenAI).
- Настройте учетные данные (Credentials) для выбранного сервиса, указав API-ключ.
- Выберите модель (например, gpt-4-turbo) и настройте параметры: Temperature (креативность), Max Tokens (максимальная длина ответа). Для агента temperature часто ставят ближе к 0 для большей детерминированности.
- Добавьте ноду «HTTP Request».
- Настройте метод POST, укажите URL API Serper:
https://google.serper.dev/search. - В заголовках (Headers) укажите:
X-API-KEY: ваш_ключ_serperиContent-Type: application/json. - В теле запроса (Body) укажите JSON вида:
{"q": "{{ $json.query }}", "num": 5}. Параметрqueryбудет передаваться агентом. - Переименуйте ноду для наглядности, например, в «Web Search Tool».
- Добавьте ноду «AI Agent» на канву.
- Подключите ее выход (output) к входу ноды Chat Model.
- В настройках AI Agent:
- Connect with Chat Model: Выберите созданную ноду Chat Model.
- Instructions (Системный промпт): Введите детальные инструкции. Пример: «Ты — помощник-исследователь. Твоя задача — отвечать на вопросы пользователя, используя актуальную информацию из интернета. Для поиска информации ты должен использовать предоставленный тебе инструмент поиска. Всегда анализируй результаты поиска и предоставляй четкий, структурированный ответ с ссылками на источники. Если информации недостаточно, так и скажи. Не выдумывай факты.»
- Tools: В секции «Add Tools» выберите «From Previous Nodes» и укажите ноду «Web Search Tool». Присвойте инструменту понятное имя, например,
search_web. - Session: Для многошагового диалога выберите «Create New Session» и укажите уникальный ключ (например,
user_{{ $json.userId }}).
- Подключите триггерную ноду (например, «Webhook», «Schedule» или «Manual Trigger») к входу ноды AI Agent.
- Запустите рабочий процесс вручную.
- В поле «User Message» ноды AI Agent введите тестовый запрос: «Какие последние новости о запуске новых моделей ИИ?»
- Запустите выполнение. Агент получит инструкции, проанализирует запрос, решит использовать инструмент
search_web, сформирует для него параметрquery, нода HTTP Request выполнит поиск, вернет результаты, и агент на их основе сгенерирует финальный ответ, который будет выведен из ноды AI Agent. - Database Query Tool: Нода «Postgres» или «MySQL» для запросов к внутренней базе данных.
- Code Tool: Нода «Code» (Python или JavaScript) для выполнения вычислений, парсинга данных.
- Email Tool: Нода «Send Email» для отправки уведомлений.
- Internal API Tool: Нода «HTTP Request» для обращения к внутренним системам компании.
- Роль и цель: «Ты — специалист технической поддержки уровня 2.»
- Правила и ограничения: «Не называй цены, если они не указаны в базе знаний. Если не уверен в ответе, используй инструмент поиска в базе знаний.»
- Описание инструментов: «У тебя есть следующие инструменты: 1.
search_kb— ищет статьи в базе знаний по ключевому слову. 2.create_ticket— создает тикет в системе Jira, если проблема не решена.» - Формат вывода: «Всегда отвечай в формате: Резюме, Шаги решения, Ссылка на статью базы знаний (если применимо).»
- Проверьте описание инструмента в системном промпте. Оно должно быть четким и однозначным.
- Упростите инструкции. Слишком сложный промпт может сбивать модель с толку.
- Включите в промпт явные правила: "Для ответа на вопрос о погоде всегда сначала используй инструмент
get_weather". - Проверьте, корректно ли настроены входные параметры для ноды-инструмента. Агент должен передавать данные в ожидаемом формате.
- Используйте отдельные API-ключи для агента с минимально необходимыми правами.
- В промпте явно запрещайте опасные действия: "Не выполняй HTTP-запросы к внешним URL, кроме разрешенных инструментов X, Y, Z."
- Помещайте инструменты, выполняющие записи или критичные действия, за нодой "IF", которая проверяет дополнительные условия перед выполнением.
- Никогда не передавайте агенту прямые доступы к базам данных с правами на удаление. Используйте ограниченные хранимые процедуры или API-прослойки.
- Сжимайте и суммируйте историю диалога через отдельный вызов LLM в длинных сессиях.
- Делайте промпты лаконичными, но информативными.
- Настраивайте лимит Max Tokens на ответ.
- Используйте модели с более низкой стоимостью за токен для простых задач (gpt-3.5-turbo).
- Включите логирование запросов/ответов для последующего анализа.
Шаг 2: Создание инструментов (Tools)
Агент не может работать без инструментов. Создадим инструмент для поиска в интернете через Serper API (альтернатива — Google Custom Search JSON API).
Шаг 3: Настройка ноды AI Agent
Шаг 4: Соединение и тестирование
Продвинутые техники настройки
Создание агента с множеством инструментов
Мощь агента раскрывается при наличии у него арсенала инструментов. Вы можете добавить:
В системном промпте необходимо четко описать назначение каждого инструмента и условия его использования.
Оптимизация системного промпта (Instructions)
Качество работы агента на 80% зависит от промпта. Эффективный промпт должен содержать:
Управление контекстом и памятью (Session)
Для длительных диалогов критически важно управление сессией. Используйте выражение sessionId для привязки диалога к пользователю или чату. Учтите, что контекстное окно LLM ограничено (токены). Для очень длинных диалогов необходимо реализовывать механизм суммаризации истории или выборочной загрузки релевантных прошлых сообщений через отдельные инструменты.
Обработка ошибок и отладка
Включите режим отладки для ноды AI Agent, чтобы видеть цепочку рассуждений модели (Reasoning Trace). Это покажет, как агент решил использовать тот или иной инструмент. Всегда обрабатывайте возможные ошибки в инструментах (нодах) с помощью нод «Catch» или «IF», чтобы агент получал внятное сообщение об ошибке и мог отреагировать.
Пример рабочего процесса: Агент для обработки обратной связи
Цель: Агент анализирует текстовый отзыв клиента, определяет sentiment, категорию и, если отзыв негативный, создает задачу в Trello.
| Нода | Действие |
|---|---|
| Webhook | Получает отзыв из формы на сайте. |
| AI Agent | Получает текст отзыва. Инструкции: «Проанализируй sentiment (позитивный, нейтральный, негативный) и категорию (доставка, качество, интерфейс) отзыва. Если sentiment негативный, используй инструмент для создания карточки в Trello.» |
| Chat Model | Обрабатывает запрос агента. |
| Code (Tool 1) | Инструмент analyze_sentiment. Простая логика анализа тональности (можно заменить на вызов отдельного AI API). |
| Trello (Tool 2) | Инструмент create_trello_card |
Часто задаваемые вопросы (FAQ)
Какой моделью ИИ лучше всего пользоваться для агента в N8n?
Выбор зависит от задач и бюджета. GPT-4 или GPT-4 Turbo от OpenAI обладают наиболее развитыми способностями к рассуждению и работе с инструментами. Claude от Anthropic также отлично подходит. Для внутренних задач с несложной логикой можно использовать более дешевые модели, например, GPT-3.5 Turbo. Для полного контроля данных можно развернуть локальную модель (через Ollama, LM Studio) и подключить ее к N8n, используя совместимые с OpenAI API обертки.
Агент не использует нужный инструмент, что делать?
Как ограничить действия агента для безопасности?
Безопасность является критическим аспектом.
Можно ли заставить агента выполнять строго последовательные действия?
Да, но это противоречит концепции автономного агента. Если вам нужна строгая последовательность, возможно, вам не нужен AI Agent. Лучше использовать стандартные рабочие процессы N8n. Агент же предназначен для ситуаций, где маршрут выполнения задачи зависит от контекста и определяется моделью ИИ на лету. Вы можете направлять его, давая более жесткие инструкции, но полная детерминированность не гарантируется.
Как считать токены и контролировать стоимость?
Токены потребляются при каждом вызове Chat Model. Длинные системные промпты, история диалога и большие ответы инструментов увеличивают затраты. Для контроля:
В чем отличие AI Agent от ноды "Chat" и "Chain" в контексте LLM?
| Нода | Назначение | Автономность |
|---|---|---|
| Chat | Простейший диалог с LLM. Отправка промпта и получение ответа. | Нет. Только генерация текста. |
| Chain | Последовательное выполнение нескольких вызовов LLM, где выход одной ноды является входом для другой. | Низкая. Последовательность задана разработчиком жестко. |
| AI Agent | Автономное выполнение задачи с использованием инструментов. Модель сама решает, что и когда делать. | Высокая. Агент планирует действия на основе цели. |
Заключение
Настройка AI Agent в N8n открывает путь к созданию интеллектуальных, контекстно-зависимых и действующих автоматизаций. Ключ к успеху лежит в тщательной проработке системного промпта, создании надежных и хорошо описанных инструментов, а также в понимании принципов работы языковых моделей. Начиная с простых агентов для поиска информации или классификации, можно постепенно переходить к построению сложных автономных систем, способных заменить рутинные многошаговые операции, требующие принятия решений на основе неструктурированных данных. N8n, как гибкая и расширяемая платформа, предоставляет для этого все необходимые средства, сочетая мощь ИИ с надежностью workflow-оркестрации.
Комментарии