n8n — самый гибкий self-hosted конструктор автоматизаций, а с пакетом LangChain-узлов он превращается в полноценную платформу AI-агентов. Разбираем установку через Docker, собираем первого агента с инструментами и памятью, добавляем RAG по своим документам и делаем Telegram-бота. Реальный JSON-воркфлоу, Docker-команды, стоимость self-hosted против облака.
n8n долгое время воспринимали как «бесплатный Zapier с открытым кодом». Но с релизом пакета LangChain-узлов (@n8n/n8n-nodes-langchain) он стал одним из самых удобных способов собрать AI-агента без единой строчки backend-кода: агент с доступом к 400+ интеграциям, памятью в векторной базе и триггерами от Telegram, почты или CRM. Главный козырь — self-hosted бесплатно и без лимитов на количество запусков. Этот гайд проводит от установки до рабочего агента в продакшене.
Сравним n8n с прямыми конкурентами. Dify и Flowise заточены под RAG и быстрые прототипы, но слабее в интеграциях с внешними системами. LangGraph даёт максимальный контроль, но требует писать код. n8n занимает середину: визуальный конструктор + 400+ готовых коннекторов + опциональные JS-блоки. Для бизнес-задач — агент в поддержке, который тянет данные из CRM, ищет в базе знаний и отвечает клиенту в Telegram — n8n часто выигрывает по скорости запуска.
Ключевое преимущество — self-hosted. Вы платите только за API-ключ LLM, а не за подписку платформы и не за каждый запуск. При объёме в тысячи запросов в день это экономит от сотни долларов в месяц. Облако n8n Cloud стартует от $24/мес за аккаунт, но лимитирует количество execution.
Самый надёжный способ — Docker. Один compose-файл поднимает сам n8n и Postgres для хранения воркфлоу и креденшелов. Для self-hosted это обязательная связка: без Postgres n8n хранит всё в SQLite и плохо переживает рестарты.
# docker-compose.yml services: n8n: image: n8nio/n8n ports: - "5678:5678" environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - N8N_DIAGNOSTICS_ENABLED=false - GENERIC_TIMEZONE=Europe/Moscow depends_on: - postgres postgres: image: postgres:16 environment: - POSTGRES_USER=n8n - POSTGRES_PASSWORD=strongpass - POSTGRES_DB=n8n
docker compose up -d # интерфейс: http://localhost:5678 — создайте владельца (owner account)
Создайте новый workflow и перетащите на холст узлы в цепочке: Trigger (Chat или Webhook) → AI Agent → ответ. В настройках AI Agent выберите модель (OpenAI, Anthropic или любая через OpenAI-совместимый API) и укажите системный промпт. Важно: именно этот промпт определяет поведение агента — чем точнее инструкция и ограничения, тем стабильнее результат.
# системный промпт агента поддержки (поле System Message) Ты — ассистент поддержки. Отвечай кратко и по делу. Если не знаешь ответ — честно скажи об этом и предложи написать человеку. Не выдумывай данные. Используй инструменты, только когда это необходимо.
Чтобы агент умел что-то делать, а не только болтать, подключите инструменты через дочерние узлы (Tools). Это могут быть HTTP Request, поиск по базе, Google Sheets или JavaScript-узел. Агент сам решит, какой инструмент вызвать, на основе описания узла.
Чтобы агент отвечал по вашей базе знаний, добавьте векторное хранилище. n8n поддерживает Qdrant, Pinecone, pgvector и даже in-memory store для тестов. Схема классическая: загрузили документы → разбили на чанки → посчитали эмбеддинги → положили в векторную БД → агент на каждый вопрос ищет релевантные фрагменты и отвечает с опорой на них.
# воркфлоу RAG: узлы в цепочке # Read Binary Files → Text Splitter → Embeddings → Qdrant (upsert) # затем в цепочке агента: Qdrant Vector Store (retrieve) как Tool # параметры Text Splitter (рекомендуемые для русских текстов) chunkSize: 1000 chunkOverlap: 200
Ключевой нюанс для русского языка: модель эмбеддингов должна хорошо работать с кириллицей. Берите OpenAI text-embedding-3-large или открытый intfloat/multilingual-e5-large. Эмбеддинг-узел настраивается один раз, а затем переиспользуется во всех RAG-воркфлоу.
Соберём полный сценарий: пользователь пишет боту → агент ищет ответ в базе знаний → отвечает. Триггер — Telegram Trigger, финал — отправка сообщения обратно. Вот упрощённый экспорт воркфлоу (JSON), который можно импортировать в n8n через меню «Import from Clipboard».
{ "nodes": [ { "name": "Telegram Trigger", "type": "n8n-nodes-base.telegramTrigger", "parameters": { "updates": ["message"] } }, { "name": "AI Agent", "type": "@n8n/n8n-nodes-langchain.agent", "parameters": { "promptType": "define", "text": "={{ $json.message.text }}" } }, { "name": "Telegram Send", "type": "n8n-nodes-base.telegram", "parameters": { "text": "={{ $json.output }}" } } ], "connections": { "Telegram Trigger": { "main": [[{ "node": "AI Agent" }]] }, "AI Agent": { "main": [[{ "node": "Telegram Send" }]] } } }
Когда готовых узлов не хватает, вставляйте Code-узел. Например, перед отправкой ответа очистите его от лишних пробелов и обрежьте до лимита Telegram (4096 символов), чтобы сообщение не падало с ошибкой.
// Code-узел: нормализация ответа агента const raw = $json.output ?? $json.text; const clean = raw.trim().slice(0, 4096); return [{ json: { output: clean } }];
Для продакшена вынесите n8n за обратный прокси с HTTPS, настройте резервное копирование Postgres и включите ограничение на выполнение (workflow timeout). Self-hosted вариант обойдётся в стоимость VPS (от $5/мес) плюс токены LLM — это главная статья расходов. Облако n8n Cloud избавляет от администрирования, но тарифицирует и подписку, и объём executions.
| Параметр | Self-hosted | n8n Cloud |
| Цена | VPS от $5/мес | от $24/мес |
| Лимит запусков | нет | по тарифу |
| Узлов LangChain | все | все |
| Администрирование | на вас | на них |
Большинство проблем в n8n-воркфлоу сводится к трём вещам: неправильная ссылка на данные (синтаксис $json), неверные креденшелы и забытый timeout. Отлаживайте по шагам: включите «Execute Node» на каждом узле, смотрите вкладку Output, и только потом гоняйте весь воркфлоу. Логи и историю запусков смотрите через Execution History — там видно, на каком узле упало и с какой ошибкой.
Самые частые ошибки: webhook не срабатывает, потому что узел в состоянии «inactive» (включите его тумблером Active); агент «выдумывает» данные — значит не хватает инструментов или промпт слишком свободный; ответы пустые — проверьте маппинг полей между узлами (обычно нужен $json.output, а не $json.text). Для быстрой проверки webhook снаружи используйте curl:
# протестировать Webhook-узел из консоли curl -X POST http://localhost:5678/webhook-test/abc123 \ -H 'Content-Type: application/json' \ -d '{"message":"привет"}' # посмотреть логи контейнера в реальном времени docker logs -f n8n
Выбор платформы зависит от того, что важнее: глубина AI-возможностей или широта интеграций. Zapier и Make сильны в no-code интеграциях, но AI-агенты там ограничены. Dify и Flowise — наоборот, заточены под LLM и RAG, но слабее в подключении внешних систем. n8n — единственный, кто закрывает обе задачи в self-hosted виде без лимитов.
| Платформа | AI-агенты | Интеграции | Self-hosted |
| n8n | сильные (LangChain) | 400+ | бесплатно |
| Zapier | базовые | 6000+ | нет |
| Make | базовые | 2000+ | нет |
| Dify | сильные (RAG) | средне | бесплатно |
Итог простой: нужен AI-агент, встроенный в рабочие процессы с CRM, почтой, таблицами и мессенджерами, без ежемесячной платы за платформу — берите n8n. Нужен только RAG-чат по документам — Dify или Flowise будет быстрее. Нужны тысячи готовых SaaS-интеграций без хостинга — Zapier.
Self-hosted n8n — это ваш сервер, и его безопасность целиком на вас. Четыре обязательных правила: закрыть панель за HTTPS через обратный прокси (Caddy или nginx с Let's Encrypt), включить Basic Auth или SSO для доступа к интерфейсу, не хранить API-ключи в воркфлоу (используйте переменные окружения и встроенное хранилище Credentials), и ограничить исходящий доступ n8n только нужными хостами. Регулярно обновляйте образ — в n8n периодически находят уязвимости, и свежая версия закрывает их автоматически.
# обновление self-hosted n8n до последней версии docker compose pull n8n docker compose up -d n8n
n8n действительно бесплатный? Self-hosted версия — да, полностью, включая LangChain-узлы и без лимитов на запуски. Платите только за VPS и токены LLM. Платная лицензия нужна лишь для enterprise-фич вроде SSO и аудит-логов.
Какая модель лучше для агента? Для большинства задач хватает gpt-4o-mini или claude-3-5-haiku — они дёшевы и быстры. Тяжёлую логику и сложные промпты отдавайте gpt-4o или claude-sonnet. n8n позволяет переключать модель на лету, не меняя воркфлоу.
Нужен ли мне Python? Нет. 90% задач решаются визуальными узлами и JavaScript-блоками. Python пригодится только если вы пишете собственные кастомные узлы.
Можно ли использовать локальные LLM? Да. Через OpenAI-совместимый API n8n подключается к Ollama или LM Studio — бесплатные модели вроде Llama и Qwen работают для простых агентов, хотя по качеству уступают gpt-4o и claude. Это удобно для тестов и задач, где данные нельзя отдавать наружу.
n8n — самый быстрый способ поднять AI-агента с интеграциями в продакшен без написания backend-кода. Self-hosted версия бесплатна и безлимитна по запускам, а LangChain-узлы дают агента с инструментами, памятью и RAG по вашим документам. Схема запуска: Docker + Postgres → узел AI Agent с чётким промптом → инструменты и векторная база → Telegram-триггер. Начните с простого агента поддержки и расширяйте по мере появления задач — именно так n8n-автоматизации окупаются быстрее всего.