ИИ-агенты 101: Собираем агента с памятью на базе n8n
В прошлой статье я рассказал, как можно собрать своего первого ИИ-агента / телеграм бота на базе Make.com. Но у этого агента не было ни памяти, ни особых умений.
В этот раз мы мы усложним задачу и сделаем агента, который будет вести за нас список дел: по нашему запросу создавать задачи, напоминать о них, отмечать их выполненными по нашему запросу. С ним можно будет общеться на естественном языке, и он будет нас понимать.
N8N
N8N - это крайне популярная no-code / low-code платформа для автоматизации процессов. Ее важная особенность - есть Community edition, который можно запустить на своем сервере, и держать все ценные данные при себе. Тем не менее у них также есть и облачное решение, которое можно купить за $24/мес.
В итоге у нас есть 3 варианта, как заполучить n8n:
1. Купить подписку на n8n.io (есть бесплатный пробный период 14 дней)
3. Арендовать сервер и самому установить на него n8n, например, очень удобно разворачивается в несколько кликов мыши через Сoolify.
Создаем сценарий
Итак, у нас появился n8n, теперь самое время настроить сценарий.
Задача: мы хотим сделать виртуального ассистента, который будет вести наш список задач. Общаемся с ним через Telegram.
1. В первую очередь добавим таблицу, в которой будем хранить данные о наших задач. Для этого перейдем в раздел Data tables и добавим таблицу.
2. В таблице добавляем колонки - атрибуты задач, которые мы хотим вести.
3. Таблица готова, теперь переходим в список сценариев и создаем новый. Наша задача - собрать сценарий как на картинке ниже.
3.1. Вначале добавляем блок Telegram Trigger. Там нас попросят настроить подключение в Telegram. Вводим в нем токен. Где взять токен бота - можно прочитать в предыдущей статье. Также указываем, что сценарий должен запускаться при получении сообщений.
После настройки очень рекомендую отправить сообщение вашему боту и получить его в n8n, нажав там "Execute workflow". Это дальше упростит настройку следующих шагов.
3.2. Потом добавляем блок с Агентом, к нему подключаем блок с моделью, которую хотим использовать (в ней попросят указать токен для доступа). В этот раз я пользуюсь gpt-5-mini от OpenAI, но так же можно подключить и любую модель через OpenRouter.
Обратите внимание, что мы по сути программируем агента на естественном языке. Здесь мы ему можем дать дополнительные поручения, напимер, показывать список задач в определенном формате, или например, не "все время подтверждать у пользователя удаление задач".
3.3. Дальше подключим агенту инструменты для работы с нашей таблицей. Data table: Insert row, Get row(s), Update row(s), Delete row(s).
Настраиваем каждый из этих инструментов - подключаем их к нашей таблице.
1. Операция "Insert".
2. В таблицу "tasks".
3. Название таски - нажимаем на кнопочку со здездочками (пусть агент сам придумает название задачи на основе моего сообщения), и то же самое делаем с остальными полями.
4. Дату-время модель тоже укажет сама, но мы ей можем подсказать верный формат (так же можно было подсказать разрешенные статусы для задач, например).
3.4. По такой же логике настраиваем остальные блоки. Там где возможно предоставляем возможность самой модели указывать поля.
3.5. Добавляем агенту память, чтобы он помнил историю переписки. Для этого подключаем блок Simple memory. В качестве session id указывает chat id. Будем хранить 5 последних сообщений;
3.6. На этом этапе рекомендую еще раз прогнать всю цепочку, и проверить, что все работает. После этого добавляем последний блок Telegram: Send message. Там указываем chat id (в какой чат отправить сообщение), и ответ от агента.
Вот и все! Вы можете активировать сценарий.
1. Все ваши сообщения будут отправляться в n8n. Дальше их получит агент.
2. На основе ваших инструкций он сможет создавать задачи, обновлять их, удалять их, получать их список.
3. С ним можно говорить на естественном языке и он более ли менее все понимает.
Что с этим делать?
1. Можно поработать с инструкциями для агента, например, попросить присылать список задач в определенном формате.
2. Можно добавить еще один сценарий, который будет по таймеру смотреть, например, список задач на сегодня и присылать нам утренню сводку того, что надо сделать.
3. А вообще это не обязательно задачи, таким же способом можно обрабатывать любые структурированные данные: лиды, контакты, дни рождения :D.
4. Можно на входе приделать распознавание речи и не печатать агенту, а говорить ему голосом, и т.д.
Сегодня мы сделали чуть более продвинутого агента, чем в прошлый раз. Мы дали ему память, хранилище структурированных данных, инструменты по работе с ним и на естественном языке описали правила работы.
В следующий мы поговорим, как можно расширить список инструментов и сделать агента, который может пользоваться внешними данными для выполнения своих задач.
Напишите, если статья оказалась полезной. Также подписывайтесь на мой телеграм канал, где я рассказываю о своих экспериментах с ИИ агентами: @agent_force