AI-воркфлоу в n8n с Ollama и Claude на VPS
Подключите n8n к AI-моделям двумя путями: Ollama для бесплатного локального инференса и API Claude для облачного интеллекта. Соберите воркфлоу классификации контента с обоими вариантами на собственном VPS.
В n8n есть нативные AI-ноды на базе LangChain. Можно подключить локальную модель через Ollama или облачную через API Claude. Оба варианта подключаются одинаково: как суб-ноды внутри ноды AI Agent в n8n. В этом руководстве мы настроим оба пути на собственном VPS, соберём практичный воркфлоу классификации контента и покажем, как переключаться между локальным и облачным инференсом, поменяв всего одну ноду.
Если n8n ещё не установлен, начните с нашей инструкции по установке n8n с Docker Compose на VPS.
Что нужно перед добавлением AI в n8n?
Нужен работающий экземпляр n8n на VPS с Docker Compose, домен с TLS и SSH-доступ. Для Ollama нужно минимум 8 ГБ оперативной памяти на VPS, чтобы запускать небольшие модели (7-8 миллиардов параметров). Для Claude нужен API-ключ Anthropic. GPU для Ollama на CPU не требуется, но инференс будет медленнее.
Чеклист:
- VPS с минимум 8 ГБ RAM (рекомендуется 4 vCPU). Virtua Cloud VCS-8 отлично подходит.
- n8n запущен через Docker Compose (см. инструкцию по установке n8n)
- SSH-доступ под пользователем не-root с sudo
- Домен, направленный на VPS, с настроенным TLS (см. инструкцию по reverse proxy и аутентификации)
- Для Claude: аккаунт в консоли Anthropic с API-ключом
Как добавить Ollama в Docker Compose стек n8n?
Добавьте Ollama как сервис в существующий Docker Compose файл, в ту же сеть, что и n8n. n8n обращается к Ollama через внутренний DNS Docker, используя имя сервиса как hostname. API-ключ не нужен. Ollama остаётся только во внутренней сети, без доступа из интернета.
Откройте существующий docker-compose.yml и добавьте сервис ollama:
services:
# ... ваш существующий сервис n8n ...
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
volumes:
- ollama_data:/root/.ollama
networks:
- n8n-network
environment:
- OLLAMA_HOST=0.0.0.0
deploy:
resources:
limits:
memory: 6G
reservations:
memory: 4G
healthcheck:
test: ["CMD", "ollama", "ps"]
interval: 30s
timeout: 10s
retries: 3
volumes:
# ... ваши существующие тома ...
ollama_data:
Ключевые моменты этой конфигурации:
- Никаких опубликованных портов. Ollama слушает на порту 11434 внутри контейнера, но мы не пробрасываем его на хост. Только контейнеры в
n8n-networkмогут до него достучаться. Это не даёт никому из интернета использовать ваш экземпляр Ollama. OLLAMA_HOST=0.0.0.0говорит Ollama слушать на всех интерфейсах внутри контейнера. Без этого он привязывается только к localhost и n8n не может достучаться до него из другого контейнера.- Лимиты памяти не дают Ollama сожрать всю оперативку VPS. Подкрутите под размер вашей модели.
- Health check использует
ollama psдля опроса сервера. Docker перезапустит контейнер, если Ollama перестанет отвечать. В образе Ollama нетcurl, поэтому используем встроенную CLI.
Если на вашем VPS есть GPU NVIDIA и установлен NVIDIA Container Toolkit, добавьте проброс GPU:
ollama:
# ... то же, что выше, плюс:
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Запустите обновлённый стек:
docker compose up -d ollama
Проверьте, что Ollama работает:
docker compose logs ollama --tail 20
Вывод показывает Listening on [::]:11434. Теперь скачайте модель:
docker compose exec ollama ollama pull llama3.2:3b
Это скачает модель Llama 3.2 на 3 миллиарда параметров (около 2 ГБ). Для VPS с 8 ГБ это самый безопасный вариант для старта. Другие варианты смотрите в таблице ниже.
Проверьте, что модель загрузилась:
docker compose exec ollama ollama list
Протестируйте инференс напрямую:
docker compose exec ollama ollama run llama3.2:3b "Say hello in one sentence"
Ответ должен прийти за несколько секунд. Если всё работает, Ollama готов к подключению n8n.
Какую модель Ollama выбрать для VPS?
Подходящая модель зависит от доступной оперативки. Правило: 1 миллиард параметров требует примерно 1 ГБ RAM при квантизации Q4. На VPS без GPU модель работает на CPU — медленнее, но вполне рабочий вариант для пакетных и фоновых задач.
| Модель | Параметры | Размер на диске | Нужно RAM | Подходит для |
|---|---|---|---|---|
| llama3.2:3b | 3B | ~2 ГБ | 4 ГБ | Лёгкие задачи, мало памяти |
| llama3.1:8b | 8B | ~4,9 ГБ | 8 ГБ | Универсальные задачи, контекст 128K |
| mistral:7b | 7B | ~4,4 ГБ | 7 ГБ | Быстрый инференс, европейская модель |
| qwen2.5:7b | 7B | ~4,7 ГБ | 8 ГБ | Мультиязычность, задачи с кодом |
| gemma3:4b | 4B | ~3,3 ГБ | 5 ГБ | Мультимодальность, хорошее соотношение качество/размер |
На VPS с 4 vCPU и 8 ГБ RAM (вроде Virtua Cloud VCS-8) llama3.2:3b работает с запасом для n8n и ОС. Модели на 7-8B влезают, но запаса меньше. Для них лучше взять VPS на 16 ГБ.
Скачайте выбранную модель перед продолжением. Все дальнейшие шаги работают с любой моделью из таблицы.
Как подключить n8n к API Claude?
Создайте в n8n credential Anthropic с вашим API-ключом. Затем используйте суб-ноду Anthropic Chat Model внутри любого AI Agent воркфлоу. n8n обрабатывает API-вызовы нативно. Нода HTTP Request не нужна.
Сгенерировать API-ключ
- Перейдите в Anthropic Console > Settings > API Keys
- Нажмите Create Key
- Дайте ему узнаваемое имя, например
n8n-vps - Скопируйте ключ сразу. Больше вы его не увидите.
Храните ключ безопасно. Не вставляйте его в файлы на диске. Вы введёте его напрямую в менеджер credentials n8n, который его зашифрует.
Добавить credential в n8n
- В n8n перейдите в Credentials в левой боковой панели
- Нажмите Add Credential
- Найдите Anthropic API
- Вставьте ваш API-ключ
- Нажмите Save
n8n проверяет подключение при сохранении. Вывод показывает «Connection tested successfully». Если не получается, проверьте, что API-ключ действителен и VPS может достучаться до https://api.anthropic.com (исходящий HTTPS не должен быть заблокирован файрволом).
Как работает система AI Agent в n8n?
AI-возможности n8n построены на LangChain. Архитектура использует два типа нод: корневые ноды (они же кластерные), которые определяют поведение агента, и суб-ноды, которые дают конкретные возможности — языковую модель, память, инструменты. Понимание этой структуры помогает строить и дебажить воркфлоу.
Корневые ноды:
- AI Agent: главный оркестратор. Получает вход, отправляет в языковую модель, может использовать инструменты и возвращает ответ. Эту ноду вы будете использовать чаще всего.
- Basic LLM Chain: проще, чем Agent. Принимает вход, отправляет в LLM, возвращает выход. Без инструментов, без цикла рассуждений.
Суб-ноды (подключаются к корневым):
- Chat Model (Ollama Chat Model или Anthropic Chat Model): LLM, которая генерирует ответы
- Memory (Window Buffer Memory и др.): хранит историю диалога
- Tools (HTTP Request, Code, Calculator и др.): действия, которые агент может выполнять
- Output Parser: структурирует ответ LLM в пригодные для использования данные
Главное: переключение между Ollama и Claude — это замена одной суб-ноды. Весь остальной воркфлоу остаётся без изменений. Именно поэтому архитектура n8n хорошо подходит для тестирования и локального, и облачного инференса.
Как собрать воркфлоу классификации с AI в n8n?
Этот воркфлоу получает контент через вебхук, отправляет его в LLM для классификации и суммаризации, а затем маршрутизирует результат по срочности. Практичный паттерн для сортировки почты, маршрутизации тикетов поддержки или модерации контента. Сначала собираем на Ollama, потом переключаем на Claude.
Шаг 1: Создать триггер webhook
- Создайте новый воркфлоу в n8n
- Добавьте ноду Webhook как триггер
- Установите HTTP-метод
POST - Установите путь, например
classify - В разделе Response выберите «Respond to Webhook» (эту ноду добавим позже)
- Сохраните и запишите URL тестового вебхука
Вебхук будет получать JSON такого вида:
{
"title": "Server disk full alert",
"body": "Production server db-01 has reached 95% disk usage. Immediate action required.",
"source": "monitoring"
}
Шаг 2: Добавить ноду AI Agent с Ollama
- Добавьте ноду AI Agent после вебхука
- В настройках Agent задайте системный промпт:
You are a content classifier. For each incoming message, respond with valid JSON only:
{
"urgency": "high" or "low",
"category": "infrastructure" or "security" or "billing" or "general",
"summary": "one sentence summary"
}
Do not include any text outside the JSON object.
-
Подключите суб-ноду Ollama Chat Model к Agent:
- Нажмите на коннектор Chat Model на ноде AI Agent
- Выберите Ollama Chat Model
- В выпадающем списке credentials нажмите Create New
- Установите Base URL в
http://ollama:11434(имя сервиса Docker) - Сохраните credential
- Выберите вашу модель (напр.,
llama3.2:3b)
-
Соедините выход вебхука со входом AI Agent. Замапьте текст сообщения через выражение:
Title: {{ $json.title }}
Body: {{ $json.body }}
Source: {{ $json.source }}
Шаг 3: Разобрать и маршрутизировать ответ
- Добавьте ноду IF после AI Agent
- Задайте условие: проверьте, содержит ли ответ AI
"urgency": "high", или распарсите JSON и проверьте полеurgency - Ветка True (высокая срочность): добавьте ноду уведомления (Slack, почта или HTTP Request на ваш endpoint алертов)
- Ветка False (низкая срочность): добавьте другое действие (записать в таблицу, отправить дайджест и т.д.)
- Добавьте ноду Respond to Webhook в конце каждой ветки, чтобы вернуть результат классификации
Шаг 4: Протестировать воркфлоу
Активируйте воркфлоу для тестирования. Отправьте тестовый запрос:
curl -X POST https://your-n8n-domain.com/webhook-test/classify \
-H "Content-Type: application/json" \
-d '{
"title": "Server disk full alert",
"body": "Production server db-01 reached 95% disk usage. Immediate action required.",
"source": "monitoring"
}'
Проверьте историю выполнений в n8n. Вы должны увидеть:
- Вебхук получил payload
- AI Agent отправил его в Ollama
- Ollama вернул JSON-классификацию
- Нода IF направила в правильную ветку
Обратите внимание на время выполнения на ноде AI Agent. С Ollama на CPU (llama3.2:3b) ожидайте 3-8 секунд в зависимости от характеристик VPS. Для фоновой автоматизации нормально, но для real-time ответов пользователю слишком медленно.
Как один и тот же воркфлоу работает на Ollama vs Claude?
Переключение с Ollama на Claude занимает секунд 30. Структура воркфлоу остаётся идентичной. Меняется только суб-нода Chat Model.
- Нажмите на ноду AI Agent
- Удалите суб-ноду Ollama Chat Model
- Добавьте суб-ноду Anthropic Chat Model вместо неё
- Выберите ваш Anthropic credential
- Выберите модель (напр.,
claude-sonnet-4-6) - Запустите тот же тестовый curl
Сравнение бок о бок:
| Аспект | Ollama (llama3.2:3b, CPU) | Claude (claude-sonnet-4-6) |
|---|---|---|
| Время ответа | 3-8 секунд | 0,5-1,5 секунды |
| Форматирование JSON | Иногда добавляет текст вне JSON | Надёжно следует инструкции JSON-only |
| Точность классификации | Хорошо для очевидных случаев | Лучше с неоднозначным или нюансированным контентом |
| Стоимость запроса | Бесплатно | По токенам (см. тарифы Anthropic) |
| Приватность данных | Контент не покидает ваш VPS | Контент отправляется в API Anthropic |
Формат вывода одинаковый. Нода IF и логика маршрутизации не требуют изменений. Это позволяет использовать Ollama для разработки и тестов, а потом переключиться на Claude для продакшн-воркфлоу, где нужна скорость или лучшее рассуждение.
Когда использовать локальную LLM, а когда облачный API?
Используйте Ollama, когда важна приватность данных, вы хотите нулевых затрат на API или обрабатываете пакетные задачи, где задержка допустима. Используйте Claude, когда нужны быстрые ответы, сильное рассуждение или real-time воркфлоу для пользователей. Модели в n8n можно менять заменой одной суб-ноды, так что это не окончательное решение.
Выбирайте Ollama, когда:
- Чувствительные данные не должны покидать вашу инфраструктуру (медицинские записи, финансовые данные, внутренние документы)
- Вы обрабатываете пакеты, где несколько секунд на запрос — нормально (ночные дайджесты почты, анализ логов)
- Хотите предсказуемые расходы. После оплаты VPS инференс бесплатный, сколько бы запросов ни было
- Прототипируете и быстро итерируете, не думая о счетах за API
Выбирайте Claude, когда:
- Нужны ответы быстрее секунды для пользовательских функций (чат-боты, классификация в реальном времени)
- Задача требует сильного рассуждения или тонкого понимания (анализ юридических документов, сложная суммаризация)
- Обрабатываете мало, но ценных запросов, где качество важнее стоимости
- Нужны очень длинные окна контекста (Claude Sonnet поддерживает до 1M токенов)
Гибридный подход: многие продакшн-конфигурации используют оба варианта. Простые высоконагруженные задачи маршрутизируйте на Ollama. Сложные малообъёмные задачи — на Claude. Нода IF в n8n может проверять входящие данные и выбирать нужный путь.
Как добавить RAG с Qdrant в AI-воркфлоу n8n?
RAG (Retrieval-Augmented Generation — генерация с дополненным поиском) позволяет AI-воркфлоу искать по вашим документам перед генерацией ответа. Добавьте Qdrant как векторное хранилище в Docker Compose стек. В n8n есть нативные ноды Qdrant, которые подключаются к AI Agent как инструмент.
Добавьте Qdrant в docker-compose.yml:
qdrant:
image: qdrant/qdrant:latest
container_name: qdrant
restart: unless-stopped
volumes:
- qdrant_data:/qdrant/storage
networks:
- n8n-network
environment:
- QDRANT__SERVICE__API_KEY=${QDRANT_API_KEY}
volumes:
qdrant_data:
Сгенерируйте надёжный API-ключ для Qdrant:
openssl rand -base64 32
Добавьте ключ в файл .env:
QDRANT_API_KEY=<your-generated-key>
Установите ограничительные права на файл .env:
chmod 600 .env
Запустите Qdrant:
docker compose up -d qdrant
Теперь в n8n вы можете:
- Добавить ноду Qdrant Vector Store как инструмент для AI Agent
- Создать суб-ноду Ollama Embeddings (или другую модель эмбеддингов) для векторизации документов
- Собрать воркфлоу загрузки документов в Qdrant
- AI Agent будет искать в Qdrant релевантный контекст перед генерацией ответа
RAG — обширная тема. Полное руководство смотрите в нашей инструкции по self-hosting AI-агентов на VPS. Стартовый набор self-hosted AI от n8n собирает n8n, Ollama, Qdrant и PostgreSQL в одном Docker Compose файле. Хороший референс для архитектуры RAG, хотя спроектирован скорее для proof-of-concept, чем для продакшна.
Какие ресурсы нужны для AI-воркфлоу на VPS?
Для Ollama на VPS нужно достаточно оперативки под модель плюс ОС и другие сервисы. Сам n8n потребляет около 300-500 МБ. Docker-оверхед добавляет ещё 200-300 МБ. Остальное уходит на Ollama и выбранную модель. Количество CPU влияет на скорость инференса, но не на то, загрузится ли модель.
Таблица планирования ресурсов:
| Размер VPS | Доступно для Ollama | Лучшая модель | Тип воркфлоу |
|---|---|---|---|
| 4 ГБ RAM | ~2,5 ГБ | llama3.2:3b (впритык) | Только лёгкая классификация |
| 8 ГБ RAM | ~5-6 ГБ | llama3.2:3b или mistral:7b | Общая автоматизация |
| 16 ГБ RAM | ~12-13 ГБ | llama3.1:8b или qwen2.5:14b | Сложные агенты, RAG |
| 32 ГБ RAM | ~28 ГБ | Несколько моделей одновременно | Продакшн мульти-агент |
Если используете только путь через API Claude (без Ollama), для n8n хватит VPS с 4 ГБ. LLM работает на инфраструктуре Anthropic.
Мониторьте использование ресурсов после деплоя:
docker stats --no-stream
Покажет потребление CPU и памяти по каждому контейнеру. Следите за контейнером Ollama во время инференса. Использование памяти подскакивает при обработке запроса и падает после.
Проверьте логи Ollama на проблемы с производительностью:
docker compose logs ollama --tail 50
Если видите ошибки нехватки памяти, переключитесь на модель поменьше или увеличьте RAM на VPS.
Устранение неполадок
n8n не может подключиться к Ollama:
- Убедитесь, что оба контейнера в одной Docker-сети:
docker network inspect n8n-network - Проверьте, что Base URL в credential Ollama —
http://ollama:11434(неlocalhost) - Проверьте, что Ollama запущен:
docker compose exec ollama ollama ps - Проверьте, что
OLLAMA_HOST=0.0.0.0задан в окружении Ollama
Ollama тормозит или не отвечает:
- Проверьте память:
docker stats ollama - Попробуйте модель поменьше. 3B-модели заметно быстрее 8B на CPU.
- Если инференс занимает больше 30 секунд, модель скорее всего слишком большая для вашей оперативки. Ollama начинает свопить на диск, и производительность падает катастрофически.
API Claude возвращает ошибки:
- Проверьте API-ключ в credentials n8n (введите заново при необходимости)
- Проверьте исходящий HTTPS с VPS:
curl -I https://api.anthropic.com - Посмотрите лог выполнения в n8n на конкретное сообщение об ошибке. Частые проблемы: просроченный ключ, превышение лимита, недостаточный баланс.
AI Agent возвращает мусор или не-JSON:
- Улучшите системный промпт. Чётко укажите формат вывода.
- Claude следует инструкциям по форматированию надёжнее маленьких локальных моделей.
- Добавьте суб-ноду Output Parser (Structured Output Parser) для принудительного JSON-схемы.
- В Ollama модели побольше (8B+) лучше следуют инструкциям, чем 3B.
Где логи?
# n8n logs
docker compose logs n8n --tail 100
# Ollama logs
docker compose logs ollama --tail 100
# All services
docker compose logs --tail 50
n8n также хранит историю выполнений в веб-интерфейсе в разделе Executions в левой боковой панели. Каждое выполнение показывает вход/выход каждой ноды — самый быстрый способ дебажить проблемы воркфлоу.
Авторское право 2026 Virtua.Cloud. Все права защищены. Данный контент является оригинальным произведением команды Virtua.Cloud. Воспроизведение, повторная публикация или распространение без письменного разрешения запрещены.