ИИ-агенты 101: Собираем агента с памятью на базе n8n

В прошлой статье я рассказал, как можно собрать своего первого ИИ-агента / телеграм бота на базе Make.com. Но у этого агента не было ни памяти, ни особых умений.

В этот раз мы мы усложним задачу и сделаем агента, который будет вести за нас список дел: по нашему запросу создавать задачи, напоминать о них, отмечать их выполненными по нашему запросу. С ним можно будет общеться на естественном языке, и он будет нас понимать.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

N8N

N8N - это крайне популярная no-code / low-code платформа для автоматизации процессов. Ее важная особенность - есть Community edition, который можно запустить на своем сервере, и держать все ценные данные при себе. Тем не менее у них также есть и облачное решение, которое можно купить за $24/мес.

В итоге у нас есть 3 варианта, как заполучить n8n:

1. Купить подписку на n8n.io (есть бесплатный пробный период 14 дней)

2. Арендовать виртуальный сервер с установленным n8n (например, amvera.ru, beget.ru и д.р.)

3. Арендовать сервер и самому установить на него n8n, например, очень удобно разворачивается в несколько кликов мыши через Сoolify.

Создаем сценарий

Итак, у нас появился n8n, теперь самое время настроить сценарий.

Задача: мы хотим сделать виртуального ассистента, который будет вести наш список задач. Общаемся с ним через Telegram.

1. В первую очередь добавим таблицу, в которой будем хранить данные о наших задач. Для этого перейдем в раздел Data tables и добавим таблицу.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

2. В таблице добавляем колонки - атрибуты задач, которые мы хотим вести.

А добавил 3 колонки task - текст задачи, due_date - дата выполнения, status - состояние задачи.
А добавил 3 колонки task - текст задачи, due_date - дата выполнения, status - состояние задачи.

3. Таблица готова, теперь переходим в список сценариев и создаем новый. Наша задача - собрать сценарий как на картинке ниже.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

3.1. Вначале добавляем блок Telegram Trigger. Там нас попросят настроить подключение в Telegram. Вводим в нем токен. Где взять токен бота - можно прочитать в предыдущей статье. Также указываем, что сценарий должен запускаться при получении сообщений.

После настройки очень рекомендую отправить сообщение вашему боту и получить его в n8n, нажав там "Execute workflow". Это дальше упростит настройку следующих шагов.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

3.2. Потом добавляем блок с Агентом, к нему подключаем блок с моделью, которую хотим использовать (в ней попросят указать токен для доступа). В этот раз я пользуюсь gpt-5-mini от OpenAI, но так же можно подключить и любую модель через OpenRouter.

В настройках указываем, что сообщение от пользователя, надо использовать в качестве промта для модели. В системном промте рассказываем про правила работы. Я написал на английском языке, но и с русским должно сработать нормально.
В настройках указываем, что сообщение от пользователя, надо использовать в качестве промта для модели. В системном промте рассказываем про правила работы. Я написал на английском языке, но и с русским должно сработать нормально.
You are a friendly assistant, whoose job is to help the user to manage his or her tasks. The user may ask to add tasks to the tracker, update the status or inquire about the current tasks. You store the tasks in the data table (one row = one task). You have can use tools to get tasks, create new tasks or update existing tasks.

Обратите внимание, что мы по сути программируем агента на естественном языке. Здесь мы ему можем дать дополнительные поручения, напимер, показывать список задач в определенном формате, или например, не "все время подтверждать у пользователя удаление задач".

3.3. Дальше подключим агенту инструменты для работы с нашей таблицей. Data table: Insert row, Get row(s), Update row(s), Delete row(s).

Настраиваем каждый из этих инструментов - подключаем их к нашей таблице.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

1. Операция "Insert".

2. В таблицу "tasks".

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

4. Дату-время модель тоже укажет сама, но мы ей можем подсказать верный формат (так же можно было подсказать разрешенные статусы для задач, например).

3.4. По такой же логике настраиваем остальные блоки. Там где возможно предоставляем возможность самой модели указывать поля.

ИИ-агенты 101: Собираем агента с памятью на базе n8n
ИИ-агенты 101: Собираем агента с памятью на базе n8n
ИИ-агенты 101: Собираем агента с памятью на базе n8n

3.5. Добавляем агенту память, чтобы он помнил историю переписки. Для этого подключаем блок Simple memory. В качестве session id указывает chat id. Будем хранить 5 последних сообщений;

ИИ-агенты 101: Собираем агента с памятью на базе n8n

3.6. На этом этапе рекомендую еще раз прогнать всю цепочку, и проверить, что все работает. После этого добавляем последний блок Telegram: Send message. Там указываем chat id (в какой чат отправить сообщение), и ответ от агента.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

Вот и все! Вы можете активировать сценарий.

1. Все ваши сообщения будут отправляться в n8n. Дальше их получит агент.

2. На основе ваших инструкций он сможет создавать задачи, обновлять их, удалять их, получать их список.

3. С ним можно говорить на естественном языке и он более ли менее все понимает.

ИИ-агенты 101: Собираем агента с памятью на базе n8n

Что с этим делать?

1. Можно поработать с инструкциями для агента, например, попросить присылать список задач в определенном формате.

2. Можно добавить еще один сценарий, который будет по таймеру смотреть, например, список задач на сегодня и присылать нам утренню сводку того, что надо сделать.

3. А вообще это не обязательно задачи, таким же способом можно обрабатывать любые структурированные данные: лиды, контакты, дни рождения :D.

4. Можно на входе приделать распознавание речи и не печатать агенту, а говорить ему голосом, и т.д.

Сегодня мы сделали чуть более продвинутого агента, чем в прошлый раз. Мы дали ему память, хранилище структурированных данных, инструменты по работе с ним и на естественном языке описали правила работы.

В следующий мы поговорим, как можно расширить список инструментов и сделать агента, который может пользоваться внешними данными для выполнения своих задач.

Напишите, если статья оказалась полезной. Также подписывайтесь на мой телеграм канал, где я рассказываю о своих экспериментах с ИИ агентами: @agent_force

33