Создание AI-агента 3-го уровня автономии: n8n, OpenRouter, Telegram | AiManual
AiManual Logo Ai / Manual.
01 Янв 2026 Гайд

AI-агент 3-го уровня на n8n и OpenRouter: от чатбота к автономному сотруднику

Пошаговый гайд по созданию автономного AI-агента на n8n и OpenRouter с интеграцией Telegram. Реализация Perception-Reasoning-Action цикла для бизнес-задач.

От реактивного чатбота к автономному агенту: в чем разница?

Представьте разницу между сотрудником, который только отвечает на вопросы, и тем, кто сам видит проблему, планирует решение и выполняет его. Первый - это ваш типичный RAG-бот (уровень 1-2 автономии). Второй - агент 3-го уровня. И сегодня мы превратим Telegram-бота из первого во второго.

Почему именно 3-й уровень? Потому что 1-й - просто отвечает на вопросы. 2-й - может выполнять простые команды. 3-й - сам определяет, что нужно сделать, планирует последовательность действий и адаптируется к изменениям. Как будто вы наняли нового сотрудника, только он не требует зарплаты и не спит.

Важно: Агент 3-го уровня не просто исполняет команды - он сам решает, какие команды нужны. Если пользователь пишет "Мне нужно увеличить продажи", агент не ответит "Используйте маркетинговые стратегии". Он проанализирует текущие показатели, предложит конкретные действия и даже сможет их выполнить.

Архитектура: что скрывается под капотом

Наша конструкция строится на трех китах:

  • Perception (Восприятие): Telegram бот + n8n webhook. Агент видит не только текст сообщения, но и контекст: кто отправил, когда, в каком чате, какие предыдущие сообщения были.
  • Reasoning (Рассуждение): OpenRouter с моделями вроде Claude 3.5 Sonnet или GPT-4o. Здесь происходит магия: анализ задачи, планирование, принятие решений.
  • Action (Действие): n8n workflow как набор инструментов. Отправка email, работа с Google Sheets, вызов API, создание задач в Trello - все что угодно.
Компонент Роль Технология
Интерфейс Взаимодействие с пользователем Telegram Bot API
Мозг Принятие решений и планирование OpenRouter (LLM)
Руки Выполнение действий n8n workflows
Память Контекст и история PostgreSQL / Redis

1 Подготовка: собираем инструменты

Сначала разберемся с тем, что нам понадобится. Не пугайтесь списка - половину можно развернуть за 5 минут.

  • n8n: Локально или облачно. Я предпочитаю локальную установку через Docker - меньше зависимостей от интернета. Если еще не знакомы с n8n, рекомендую начать с нашего гайда по локальным ассистентам.
  • OpenRouter аккаунт: Регистрация занимает минуту. Берите бесплатные $1 для тестов.
  • Telegram Bot: Пишите @BotFather, создаете бота, получаете токен. Тривиально.
  • База данных: PostgreSQL для хранения истории диалогов. Можно и SQLite, но для продакшена лучше PostgreSQL.
# Установка n8n через Docker
docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v ~/.n8n:/home/node/.n8n \
  n8nio/n8n:latest
💡
Не используйте одну модель для всего. Для reasoning (рассуждений) нужна мощная модель типа Claude 3.5 Sonnet. Для простых классификаций хватит и Llama 3.1 8B. OpenRouter позволяет выбирать модели под задачу и экономить.

2 Создаем скелет агента: базовый workflow

Открываем n8n и создаем новый workflow. Назовем его "AI Agent Core". Вот как будет выглядеть базовая структура:

// Структура данных для агента
{
  "user_input": "Нужно увеличить продажи в этом месяце",
  "user_id": "123456789",
  "chat_id": "-1001234567890",
  "context": {
    "previous_messages": [...],
    "available_tools": ["send_email", "update_spreadsheet", "create_task"],
    "current_state": "idle"
  }
}

Первая нода - Telegram Trigger. Настраиваем webhook. Вторая - "Get Chat History" (запрос к PostgreSQL). Третья - "Construct Prompt". Вот здесь начинается интересное.

Ошибка новичков: Не храните всю историю диалога в prompt. Это дорого и неэффективно. Используйте векторный поиск по последним N сообщениям или суммируйте историю. Подробнее в статье про память агентов.

3 Реализуем Perception-Reasoning-Action цикл

Вот где обычные боты ломаются. Они получают сообщение - отправляют в LLM - возвращают ответ. Наш агент работает иначе:

  1. Perception: Анализируем не только текст, но и метаданные. Пользователь пишет "срочно!"? Помечаем приоритет. Отправляет файл? Извлекаем текст.
  2. Reasoning: LLM определяет тип задачи, выбирает инструменты, строит план. Ключевой момент - агент должен уметь сказать "я не могу это сделать" или "мне нужна дополнительная информация".
  3. Action: Выполняем план через n8n workflows. Если действие требует подтверждения - спрашиваем пользователя.

Вот пример prompt для Reasoning этапа:

Ты - автономный бизнес-агент уровня 3. Твоя задача: анализировать запросы пользователей и выполнять действия через доступные инструменты.

Доступные инструменты:
1. send_email - отправить email (требует: адрес, тема, текст)
2. update_spreadsheet - обновить Google Sheets (требует: ID таблицы, данные)
3. create_task - создать задачу в Trello (требует: название, описание, список)

Анализируй запрос пользователя и определи:
1. Какой тип задачи? (информационный, действие, комбинированный)
2. Какие инструменты нужны?
3. Какой план выполнения?
4. Нужно ли уточнение у пользователя?

Верни ответ в формате JSON:
{
  "task_type": "...",
  "required_tools": ["..."],
  "execution_plan": ["шаг 1", "шаг 2"],
  "needs_clarification": true/false,
  "clarification_question": "..."
}

4 Интеграция OpenRouter: настройка и оптимизация

OpenRouter хорош тем, что дает доступ к десяткам моделей через один API. Но есть нюансы:

// n8n HTTP Request нода к OpenRouter
{
  "url": "https://openrouter.ai/api/v1/chat/completions",
  "method": "POST",
  "headers": {
    "Authorization": "Bearer YOUR_API_KEY",
    "HTTP-Referer": "http://localhost:5678",
    "X-Title": "AI Agent"
  },
  "body": {
    "model": "anthropic/claude-3.5-sonnet",
    "messages": [
      {"role": "system", "content": "Ты автономный агент..."},
      {"role": "user", "content": "{{user_input}}"}
    ],
    "temperature": 0.7,
    "max_tokens": 2000
  }
}
💡
Используйте разные модели для разных задач. Claude 3.5 Sonnet отлично справляется с reasoning, но дорогой. Для простых классификаций переключайтесь на более дешевые модели типа Google Gemini Flash. OpenRouter позволяет указать несколько моделей в fallback порядке.

Как экономить на токенах? Во-первых, сжимайте историю диалога. Во-вторых, используйте structured outputs - заставляйте модель возвращать JSON вместо свободного текста. В-третьих, кэшируйте похожие запросы.

5 Создаем инструменты (Actions) в n8n

Инструменты - это отдельные workflows в n8n, которые агент может вызывать. Вот пример workflow для отправки email:

Нода 1: HTTP Request (входная точка)
- Ждет POST запрос с параметрами: to, subject, body

Нода 2: Validate Input
- Проверяет, что email валиден
- Проверяет, что subject не пустой

Нода 3: Send Email (SMTP)
- Настройки SMTP сервера
- Формирует письмо

Нода 4: Log Result
- Записывает в базу результат отправки
- Возвращает success/failure

Ключевой момент: каждый инструмент должен возвращать четкий результат (успех/ошибка) и подробности. Агент должен понимать, получилось ли выполнить действие и почему.

Как агент узнает об инструментах? Создайте "Registry" workflow, который возвращает список доступных инструментов и их описаний. Агент запрашивает этот список при инициализации или периодически обновляет.

6 Реализуем State Management (управление состоянием)

Агент 3-го уровня должен помнить не только историю диалога, но и состояние выполнения задачи. Пример:

{
  "task_id": "task_123",
  "current_step": 2,
  "total_steps": 5,
  "status": "waiting_for_confirmation",
  "data_collected": {
    "client_email": "client@example.com",
    "project_name": "Новый проект"
  },
  "next_action": "send_proposal_email",
  "created_at": "2024-01-15T10:30:00Z",
  "updated_at": "2024-01-15T10:35:00Z"
}

Храните это в Redis для быстрого доступа или PostgreSQL для надежности. При каждом взаимодействии агент проверяет состояние задачи и решает, что делать дальше.

Предупреждение: Не делайте состояние слишком сложным. Если агент теряет контекст после 10 шагов - проблема в дизайне, а не в реализации. Читайте про stateful memory в нашей статье.

7 Тестирование и отладка: находим слабые места

Собрали агента? Отлично. Теперь сломайте его. Серьезно. Вот что нужно проверять:

  • Неоднозначные запросы: "Сделай что-нибудь" - агент должен спросить уточнение, а не гадать.
  • Прерывание задачи: Пользователь говорит "стоп" во время выполнения многошаговой задачи.
  • Ошибки инструментов: Что если email не отправляется? Агент должен попробовать альтернативный способ или сообщить об ошибке.
  • Контекстное переключение: Пользователь спрашивает про погоду, пока агент составляет отчет.

Создайте тестовый сценарий в n8n с набором входных данных и ожидаемых результатов. Автоматизируйте тестирование.

Реальные кейсы: что может такой агент

Теория теорией, но что на практике? Вот несколько примеров из реальных проектов:

Задача Действия агента Сложность
Обработка лида 1. Записать в CRM
2. Отправить welcome email
3. Создать задачу менеджеру
4. Запланировать follow-up
Средняя
Ежедневный отчет 1. Собрать данные из 3 систем
2. Сгенерировать анализ
3. Отправить в Slack
4. Обновить dashboard
Высокая
Напоминание о встречах 1. Проверить календарь
2. Отправить напоминание
3. Подготовить материалы
4. Обновить статус
Низкая

Ошибки, которые все совершают (и как их избежать)

После десятка внедрений таких агентов, я собрал топ-5 ошибок:

  1. Слишком много свободы: Давать агенту доступ ко всем инструментам сразу - рецепт катастрофы. Начинайте с 2-3 простых действий.
  2. Игнорирование ошибок: LLM ошибается. Инструменты ломаются. Добавляйте обработку ошибок на каждом уровне.
  3. Нет лимитов: Агент может зациклиться в reasoning loop. Ставьте максимальное количество шагов и таймауты.
  4. Плохие промпты: "Ты полезный ассистент" - это не промпт. Детализируйте роль, ограничения, формат ответов.
  5. Нет мониторинга: Не знаете, что агент делает? Добавляйте логирование каждого действия и reasoning шага.

Особенно обратите внимание на пункт 3. Без лимитов ваш агент может потратить $100 на API вызовы, пытаясь решить неразрешимую задачу.

💡
Добавьте "emergency stop" механизм. Пользователь должен иметь возможность сказать "отмена" в любой момент и агент должен немедленно прекратить все действия и очистить состояние задачи.

Что дальше? Эволюция агента

Вы создали базового агента 3-го уровня. Куда развивать дальше?

  • Мультиагентные системы: Разные агенты для разных задач, которые координируются между собой. Об этом мы писали в статье про суб-агентов.
  • Обучение на основе обратной связи: Агент улучшает свои промпты и стратегии на основе успешных/неуспешных выполнений.
  • Интеграция с RAG: Добавьте векторную базу знаний, чтобы агент мог использовать внутренние документы. Полное руководство здесь.
  • Голосовой интерфейс: Добавьте STT/TTS для голосового взаимодействия.

Самый важный совет: начинайте с малого. Не пытайтесь сразу создать универсального супер-агента. Возьмите одну конкретную бизнес-задачу (например, обработка заявок с сайта), реализуйте ее идеально, затем добавляйте следующую.

Через месяц у вас будет не просто "еще один чат-бот", а полноценный автономный сотрудник, который работает 24/7, не устает и постоянно улучшается. И все это на стеке, который стоит копейки по сравнению с корпоративными решениями.

P.S. Если ваш агент начал проявлять признаки самосознания - немедленно отключайте интернет. Шучу. Но мониторить логи все равно нужно.