Гайд · n8n · ИИ-агент

Как собрать ИИ-агента в n8n: модель, память и Telegram

Триггер, AI Agent node, память по chat id и человек в контуре — без слепой автопубликации

Telegram Maya Pro

n8n — это конструктор сценариев: вы соединяете блоки на холсте, и они сами гоняют данные между сервисами. ИИ-агент внутри n8n — не «ещё один чат», а блок, который читает свободный текст, сам выбирает инструмент и только потом отвечает.

Для маркетолога это разница между «нейросеть написала пост» и «бот сам нашёл черновик, спросил вас и отправил в нужный чат».

Коротко. Сначала четыре части: триггер, модель, память, хотя бы один инструмент. Потом Telegram. Публичный канал — только через человека. Облако n8n из России часто недоступно: рабочий путь — свой сервер.

Чем AI Agent отличается от цепочки «промпт → ответ»

Обычный сценарий в n8n жёсткий: пришло сообщение → вызвали модель → отправили текст дальше. Он предсказуем. ИИ-агент нужен, когда человек пишет как хочет: «проверь заявку», «сделай короткий пост», «найди прошлый бриф». Агент смотрит, какие у него есть инструменты, выбирает один или несколько и собирает ответ.

Маркер: простыми словами. AI Agent node — это центральный блок на холсте. К нему подключают «мозг» (языковую модель), «память» (историю диалога) и «руки» (инструменты). Без рук официальная документация n8n агента не считает готовым: нужен хотя бы один tool.

Когда хватит обычных нод If/HTTP

Если путь всегда один — заявка из формы, одно письмо, одна строка в таблице — агент только добавит стоимость токенов и риск «сам придумал шаг». Тогда лучше обычные блоки: условие, HTTP-запрос, отправка в Telegram. Агент оправдан, когда вход свободный и действий несколько.

Минимум для агента: модель + хотя бы один tool

Маркер: простыми словами. Tool (инструмент) — это разрешённое действие: запросить сайт, прочитать таблицу, запустить другой сценарий. Это не «магия», а список кнопок, которые модели можно нажимать.

В документации n8n прямо сказано: к AI Agent нужно подключить минимум один tool-подблок. Частая ошибка гайдов — «сначала агент без инструментов, потом добавим». Такой граф часто просто не запускается. Для первого теста хватит безобидного инструмента: калькулятор, HTTP «прочитай эту страницу», или пустой sub-workflow, который возвращает «ок».

Старые шаблоны с выбором типа агента путают. С версии 1.82.0 типы убрали: все AI Agent работают как Tools Agent.

Какой контур собрать первым

Не начинайте с «платформы агентов» и MCP. Первый рабочий контур умещается в одну картинку.

Trigger → AI Agent → ответ

Шаги, которые новичок повторяет сам:

  1. Создайте workflow. Добавьте Chat Trigger (для теста в редакторе) или сразу Telegram Trigger, если бот уже есть.
  2. Добавьте ноду AI Agent. Соедините выход триггера со входом агента.
  3. В поле сообщения пользователя укажите текст из триггера. Для Telegram это обычно текст сообщения, а не весь JSON.
  4. Подключите Chat Model: OpenAI, Claude, Gemini, Ollama или HTTP к GigaChat / YandexGPT.
  5. Подключите Memory.
  6. Подключите один безопасный tool.
  7. Напишите System Message: кто агент, чего не делает, когда останавливается и зовёт человека.
  8. Запустите тест. Откройте execution log: должны быть вызов модели и, при необходимости, вызов tool.
  9. Только после этого включите Active.

Признак успеха. В логе есть зелёный прогон, агент ответил по делу и не крутится в цикле. Если нода красная с текстом про missing tool — не хватает инструмента, это не «сломался Telegram».

Типичные ошибки. Забыли tool. В сообщение агента попал весь JSON. В System Message нет стопа. Max iterations стоит 20 «на всякий случай» — так сгорают токены.

System message: роль, стоп, эскалация

Пишите коротко и по-русски. Три абзаца достаточно: роль («ты редактор канала, не финансист»), границы («не публикуешь сам, не выдумываешь цифры»), выход («после трёх неудачных попыток tool — верни человеку формулировку, чего не хватает»).

Маркер: простыми словами. Max iterations — потолок кругов «подумал → вызвал tool → подумал снова». Для двух инструментов держите 5–8. Больше — почти всегда ошибка архитектуры: задачу надо резать на мини-агентов, а не крутить лимит.

Как завести Telegram-бота, чтобы ответ уходил в нужный чат

Схема чат-бота: Telegram Trigger → AI Agent → Telegram Send Message. Без третьего шага агент «подумал» внутри n8n, а человек в мессенджере тишину.

  1. В Telegram найдите BotFather, создайте бота, скопируйте токен. Токен — секрет, его не светят на скриншотах и не кладут в открытый Git.
  2. Напишите боту любое сообщение.
  3. В n8n создайте credentials Telegram, вставьте токен.
  4. Telegram Trigger: события сообщений. Для канала позже понадобятся права администратора — для личного чата с ботом хватит диалога.
  5. После агента — Send a text message. Chat ID возьмите из триггера, не хардкодьте чужой канал.
  6. Parse Mode, если нужны жирный/курсив, поставьте HTML и не мешайте markdown.

Признак успеха. Сообщение, отправленное боту, возвращается ответом в тот же чат за несколько секунд. В getWebhookInfo у Telegram виден production-URL вашего n8n, не /webhook-test/.

Почему тест живой, а Active — молчит

Пока вы жмёте Test workflow, Telegram смотрит на тестовый webhook. После Active нужен боевой. Если в getWebhookInfo торчит webhook-test, активируйте сценарий ещё раз. Если URL пустой — регистрация не прошла: проверьте HTTPS, что n8n доступен из интернета, что нет редиректа.

Второй классический конфликт: тот же токен уже слушает другой скрипт через long polling. Telegram разрешает либо webhook, либо polling, не оба. Тогда webhook «тихо исчезает» через секунды — это не мистика n8n.

Маркер: простыми словами. Webhook — это адрес, на который Telegram сам присылает новые сообщения. Polling — когда программа постоянно спрашивает «ну что, есть новое?». Один бот не может жить в двух режимах сразу.

Карта поломки

Один токен — один consumer

Слева спокойный webhook на одном процессе. Справа queue mode: три воркера одновременно зовут setWebhook и Telegram отвечает Too Many Requests. Дальше в тексте — как не наступить на это в проде.

  • Trigger держите на main
  • Тяжёлый агент — отдельным workflow
  • Не смешивайте polling и webhook

Память по chat id: почему бот «забывает»

Без памяти каждый заход — как новый человек у стойки. С памятью агент помнит, что вы уже согласовали рубрику и тон.

Ключ сессии для Telegram почти всегда один: идентификатор чата. Его подставляют в session key памяти, чтобы переписка с клиентом А не смешивалась с клиентом Б.

Window Buffer vs Postgres/Redis

Маркер: простыми словами. Window Buffer — короткая память «последние N реплик», которую n8n держит у себя. Для пилота её хватает. Postgres или Redis нужны, если историю надо показывать в своей админке, переносить между серверами или переживать переезд инстанса без сюрпризов.

Не обещайте себе, что буфер вечен. После перезапуска или смены ключа бот снова «не помнит бриф». Для продакшена с платными диалогами заранее решите, где лежит история.

Tool не видит память — что передавать явно

Память принадлежит агенту, не инструменту. Sub-workflow, который пишет строку в таблицу, не читает прошлые реплики сам. Если tool должен знать «о каком товаре речь», передайте это параметром: название, ссылка, session id. Иначе модель «помнит», а руки действуют вслепую.

Какие инструменты давать агенту — и какие нельзя

Давайте мало. Два-три понятных tool лучше зоопарка из двадцати. Каждый инструмент опишите так, будто объясняете стажёру: когда вызывать, какой вход, какой выход.

Хороший набор для контент-контура: «найти последний бриф в таблице», «проверить, нет ли такого заголовка в черновиках», «положить текст в таблицу статусов». HTTP Request — для своего API или RSS. Execute Workflow — когда проверка сложнее одного запроса.

Нельзя на первом круге: списание денег, удаление строк, отправка в публичный канал, смена прав. Даже «просто пост» — write-действие. Его либо выносят в отдельный сценарий с кнопкой человека, либо ставят обязательное подтверждение.

Маркер: простыми словами. Human-in-the-loop — остановка перед опасным шагом. Агент готовит текст и параметры, человек жмёт «можно» или «нет». Для контента это дешевле, чем разгребать ошибочный пост у подписчиков.

Когда нужен человек в контуре

Чат «бот ↔ вы» можно почти полностью отдать агенту. Канал с аудиторией — нет. Схема, которая не стыдит бренд: агент кладёт карточку в канал проверки, вы правите одну фразу, второй бот или тот же сценарий публикует в открытый канал.

Не путайте «агент написал» и «агент опубликовал». В контент-заводе второе — отдельная должность, даже если должность занимает кнопка.

Self-host или облако: что выбрать в РФ

Честно: облако n8n для новых клиентов из России и Беларуси с 2022 года часто закрыто. Если видите экран «регион не поддерживается» — это не ваш косяк. Рабочий путь — Community Edition на своём VPS: лицензия $0, прогоны без счётчика платформы, данные у вас.

n8n установка на практике = Docker на Ubuntu у хостера в РФ (Selectel, Yandex Cloud, Beget VPS). n8n docker — самый короткий старт: один compose, том для данных, HTTPS через прокси. Локальная установка на ноутбуке годится, чтобы потыкать холст, но Telegram webhook с домашнего компьютера без белого IP мучителен.

Модели из России без серых схем: GigaChat (HTTP или community-нода), YandexGPT (HTTP / community), Ollama на той же машине — из Docker стучитесь на host.docker.internal, не на localhost. OpenAI и Claude удобнее как «мозг», но это отдельный договор, карта и вопрос персональных данных.

Если нужен разбор автоматизации с нуля — не только n8n, но и Make и MCP — программа обучения по автоматизации и вайбкодингу.

n8n или Make: где агентный цикл дешевле

Make удобнее, если сценарий короткий и вы уже живёте в визуальном конструкторе без сервера. У Make нет своего «агентного цикла» той же плотности: это набор модулей, и каждый шаг ест кредит.

n8n считает execution: один запуск сценария — одна единица, сколько бы раз агент ни дернул tool внутри. Для агента с тремя вызовами инструментов это обычно выгоднее. Self-host снимает плату за прогоны совсем: остаётся сервер и API модели.

Маркер: простыми словами. Execution — «один полный прогон сценария». Operation в Make — «один модуль щёлкнул». Агент щёлкает часто, поэтому форма оплаты важнее красивого логотипа.

Если у вас уже стоит контент-завод на Make — не ломайте его ради моды. n8n имеет смысл, когда нужен именно агент с памятью и инструментами, self-host или контроль данных.

Типичные поломки webhook, queue mode и токена

Три поломки, из-за которых «у всех в гайде работает, у меня нет».

Один бот — один consumer. Второй n8n, старый Python-поллер, ещё один Test в соседней вкладке — и webhook сбрасывается. Оставьте один активный Trigger на токен.

Queue mode не ставить на Telegram Trigger. В очереди несколько процессов пытаются зарегистрировать webhook одновременно. Telegram отвечает Bad Request или Too Many Requests. Триггер держите на одном основном процессе, тяжёлый агент выносите в отдельный workflow.

Маркер: простыми словами. Queue mode — режим «главный принимает задачу, рабочие считают». Для писем и таблиц полезно. Для Telegram-триггера на старте вредно.

Max iterations и вечный tool. Агент не нашёл поле в JSON и дергает HTTP по кругу. Поставьте стоп в промпте и лимит 5–8.

Чек-лист перед продом: Active включён; HTTPS без редиректа; токен не в публичных логах; память ключуется chat id; write-действия с человеком; error workflow на падение модели.

FAQ

Что такое n8n?

Визуальный конструктор автоматизации с открытым кодом. Сценарии собирают из нод. Можно держать у себя на сервере.

Как создать ИИ-агента в n8n бесплатно?

Поставьте Community Edition на VPS, подключите GigaChat или Ollama, соберите Trigger → AI Agent → ответ. Бесплатны прогоны платформы, не электричество и не все токены.

Нужен ли MCP, чтобы агент заработал?

Нет. MCP — способ подключить внешние инструменты по общему протоколу. Сначала заставьте агента работать с одним HTTP-tool.

Можно ли сразу постить в канал без модерации?

Технически да, редакторски нет. Сделайте канал проверки. Слепой автопостинг экономит минуту и стоит репутации.

n8n ai и «n8n агент» — это разные продукты?

Обычно люди ищут одну и ту же ноду AI Agent плюс модель, память и инструменты.

Что проверяли по источникам

Итог: соберите узкий контур, ключуйте память, не отдавайте каналу пост без человека.

Beget — надёжный хостинг и VPS