
Если вы, как и я, тратите часы на сортировку резюме или сбор задач по разным доскам — добро пожаловать. Я расскажу, как за пару вечеров собрал AI-агентов, которые делают это за меня. Без магии — просто Make, n8n и немного здравого смысла.
Привет, Хабр! Меня зовут Василий Соломкин, я младший руководитель проектов в IBS. Управляю проектами разного профиля: нагрузочное тестирование, DevOps, внутренние проекты по разработке, юзабилити-тестирование и другие. Последние полгода активно изучаю искусственный интеллект, в первую очередь чтобы облегчить себе жизнь и оставить рутину за кадром. В этой статье расскажу про новое ответвление нейросетей — AI-агентов — и покажу собственные рабочие кейсы по автоматизации задач с их помощью. Сразу отмечу, что это именно мои кейсы — я разрабатывал их специально под свои задачи, и далеко не обязательно они покажутся вам актуальными именно для ваших задач. Но моя цель — показать, что ИИ можно использовать не только в формате чата, а создавать персональные автоматизации. Это просто, быстро и крайне полезно.
Что такое AI-агенты и зачем они нужны
AI-агент — это искусственный интеллект, которому дали доступ к конкретным инструментам и информации. В отличие от простого бота, который действует строго по заданному алгоритму, AI-агент обладает несравненно более высокой гибкостью и может проявлять почти человеческую креативность.
От классических больших языковых моделей AI-агент отличается автономностью. Это автоматизированный помощник, который способен самостоятельно работать с данными, анализировать информацию, принимать решения и выполнять различные действия — например, отправлять письма, писать отчеты и генерировать документы. К нему не нужно стучаться с запросом: агент может функционировать в фоновом режиме полностью без участия человека.
Еще одна фишка AI-агента — масштабируемость. Если расшарить его с командой, он будет выполнять для всех одну и ту же функцию и работать в едином контексте.
Обзор инструментов: во что «собирают» агентов

Для запуска AI-агента нужны три составляющие:
Платформа для автоматизации: инструмент для визуальной автоматизации, который позволяет создавать сами процессы, связывать между собой различные системы посредством довольно простых интеграций и запускать все это по триггеру без необходимости писать код. Я указал две таких платформы — Make и n8n, но их в действительности больше.
Большая языковая модель: мозг процесса, который будет обрабатывать информацию, генерировать идеи и выдавать результат. Я использую платный сервис, который за $10 предоставляет 1 млн токенов на ввод: это примерно 20 книг «Гарри Поттер и философский камень».
Сервисы: программы и приложения, работу в которых нужно автоматизировать. На схеме выше я указал несколько инструментов, которыми пользуюсь сам: Trello, Google-таблицы, Telegram и другие, но вариантов может быть очень много. API-доступы к большинству популярных сервисов бесплатные.
Make vs n8n
Make и n8n — умные конструкторы, в которых можно собирать процессы из шагов-блоков. Каждый отдельный блок процесса называется нодой. Это какое-то определенное действие — например, получить письмо, сохранить файл или отправить сообщение в Telegram. Каждый процесс всегда начинается с триггера — ноды, которая запускает работу AI-агента. Это может быть, например, ручной запуск по клику или определенное событие в приложении.
Вот пример автоматизации планирования встреч в календаре по данным из Excel-таблицы, реализованной с помощью Make:

Make — максимально простая no-code-платформа, не требующая вообще никакого знания программного кода. Это идеальный вариант для знакомства с AI-агентами.
Рабочее пространство n8n выглядит чуть более сдержанно:

При этом n8n более гибкая. Платформа поддерживает 400+ интеграций и позволяет визуализировать более сложные логические процессы, правда, для этого могут потребоваться минимальные low-code-доработки. Впрочем, не думаю, что сегодня это может кого-то отпугнуть — написание простенького скрипта можно доверить тому же ИИ.
Платформа |
Назначение |
Доступность |
Сложность |
Make |
No-code-сборка процессов |
Бесплатно до 1000 операций в месяц |
Легко |
n8n |
Low-code, open source, кастомные сценарии |
Триал в облаке 14 дней, потом можно зарегистрировать новый аккаунт и перезалить свои автоматизации; другая опция — установить к себе на сервер и пользоваться бесплатно |
Средне |
А теперь самое интересное: покажу два собственных кейса по автоматизации рутины с помощью n8n.
Кейс № 1: AI в подборе кандидатов
В своих проектах я периодически сталкиваюсь с такой ситуацией, когда мне нужно выбрать кандидатов для заказчиков или для команд. Я не профессиональный рекрутер, и для меня отсмотреть десяток резюме — довольно трудоемкое занятие. Мне показалось, что будет хорошей идеей научить искусственный интеллект получать от меня требования, анализировать данные из резюме, ранжировать кандидатов по релевантности и потенциалу и формировать шорт-лист для интервью.
Автоматизацию по подбору специалистов можно разделить на два этапа, два отдельных процесса. Первый — это подготовка данных из резюме. Второй — обработка этих данных AI-агентом. Эти этапы реализуются в двух разных пространствах. В моем примере они названы соответственно «hr agent - vector store» и «AI agent (HR)».
Открываем первое пространство. По сути, это пустая доска для отрисовки схемы процесса. Чтобы создать триггер, нажимаем на плюс.

В выпадающем списке много вариантов: запуск по таймеру, по вызову вебхука, по заполнению формы и т. д. Выбираем «Trigger manually» — процесс будет запускаться при нажатии на кнопку.
После этого можно начинать добавлять различные приложения и сервисы, которые потребуются для конкретной задачи. Нажимаем на «Action in an app» — и появляется огромное количество различных сервисов для привязки.

Нам нужно подвязать заранее созданную Google-таблицу с двумя столбцами: имя кандидата и ссылка на резюме, которое лежит на Google Disk в формате PDF.
Важно! Чтобы не загружать в стороннее облако конфиденциальную информацию, любые персональные данные нужно сначала обезличить. Например, в работе с резюме я зашифровал ФИО кандидатов кодовыми названиями, а локально у себя на компьютере сделал мэппинг кодов и реальных имен.
Выбираем из списка предлагаемых сервисов Google Sheets и видим варианты возможных действий.

При выборе действия открывается окно с настройками. В поле «Credentials to connect with» проходим авторизацию, после чего в список документов подтягиваются все таблицы, которые хранятся в личном аккаунте Google.
Суть процесса подготовки данных — превратить резюме в векторный формат, с которым привык работать ИИ, и положить в специализированную векторную базу данных для дальнейшего использования. Первый шаг — выдернуть данные из таблицы (Operation: Get Rows). Далее — подвязать Google Drive, чтобы скачать PDF с резюме для дальнейшей обработки.

JSON-запрос решается простым drag-and-drop. Чтобы скачались все резюме, а не только один файл, нужно зажать слева ссылку и перетащить в поле «File» — она автоматически преобразуется в корректный JSON.
Теперь из этих PDF-файлов нам нужно извлечь текст. Для этого используем инструмент «Extract from File».
Помимо текстов резюме, у нас автоматически подгрузилось много лишней информации: номера страниц, версии и метаданные. Чтобы не засорять нашу векторную базу, используем ноду «Edit Fields». Так же с помощью drag-and-drop указываем значения данных, которые автоматически преобразуются в JSON-запрос.
Следующий шаг обработки — превратить полученный текст в векторный формат. Для этой цели я использую сервис Pinecone Vector Store, но вы можете использовать любой другой.
Добавляем большую языковую модель для создания векторов — эмбеддингов. Я выбираю Embeddings OpenAI. Здесь особых настроек не требуется. Достаточно указать API-ключ от OpenAI-аккаунта и выбрать модель.
Следующий элемент — загрузчик данных. Он определяет, какие именно данные мы грузим («Load All Input Data»), и позволяет осуществить разметку метаданных.

Зачем это нужно? Когда мы переводим данные из текста в векторный формат, мы дробим наш текст на кусочки. Размер этих кусочков можно определить самостоятельно. Чем он меньше, тем быстрее будет скорость обработки. Но при этом если, например, имя кандидата указано в самом верху резюме один раз и больше не повторяется, то ИИ может «забыть», что следующие кусочки текста относятся к тому же самому человеку. Чтобы не сбить AI-агента с толку, можно использовать метаданные как некие теги, которые размечают информацию. В нашем случае этими тегами будут: ссылка на резюме, имя и номер строки из таблицы.
Последний инструмент подготовки данных — Recursive Character Text Splitter, который определяет, на какие именно кусочки дробить наши векторные данные. Их размеры тоже можно задать вручную.
На этом подготовка данных для AI-агента окончена. Вот как выглядит полный workflow.

Переходим к workflow самой автоматизации на другой доске. Здесь все намного проще. Требуется только две ноды и несколько инструментов.
Первая нода — триггер — получение сообщения с требованиями заказчика к специалисту во встроенном чате. Вторая нода — привязка AI-агента.
Когда мы его добавляем, у нас появляется большая нода с тремя ответвлениями, в которых нужно выбрать определенные инструменты:
Chat Model: LLM-модель, которая будет анализировать наши данные.
Memory: контекст общения с ИИ; для простых задач достаточно встроенной «Simple Memory».
Tool: инструменты, с которыми будет работать AI-агент; в нашем случае привязываем векторное хранилище Pinecone Vector Store.
К Pinecone Vector Store также необходимо подключить Embeddings OpenAI, то есть инструмент, который будет обратно из векторного формата переводить данные в текст.
Автоматизация готова.

Спойлер: как правило, когда вы создаете свою первую автоматизацию, она не работает. Но в n8n есть прекрасная функция «Test Step» и свой внутренний искусственный интеллект, который расписывает возникшие ошибки и предлагает решения.
Пробуем запустить AI-агента и спустя примерно 30 секунд получаем результат.

AI-агент посчитал, что самые подходящие кандидаты на роль QA Manual — это Романенко Роман, Сергиенко Сергей, Антонов Антон и Василенко Василий (имена вымышленные, все совпадения случайны:) Это значит, что я начну отбор именно с этих четырех ребят. Если меня заинтересуют какие-то конкретные аспекты их резюме, я смогу задать AI-агенту уточняющие вопросы — и он подскажет, сэкономив мне еще немного времени.
Кейс № 2. Отчеты по задачам из Trello
Как устроен n8n я показал выше, так что про этот кейс расскажу по верхам.
Я использую Trello для личных рабочих задач, которые не могу трекать в командной Jira. Идея автоматизации простая: сделать так, чтобы ИИ оценивал список моих дел и выдавал некую сводку — что «горит», что нужно сделать в первую очередь и тому подобное.
Workflow такой. Чат-бот в Telegram, который срабатывает по таймеру, запускает в n8n процесс выгрузки и записи в таблицу всех моих задач из Trello. AI-агент анализирует задачи, обрабатывая их по системному промпту и направляет мне ответ обратно, через того же Telegram-бота.
На схеме это выглядит следующим образом.

В качестве второй ноды я добавил простую авторизацию (проверку совпадения никнейма), чтобы случайные люди не получили доступ к моим задачам из Trello, случайно наткнувшись на чат-бот.
Поскольку AI-агент не может обрабатывать сырые данные из таск-менеджера, сперва нужно выгрузить их в таблицу.
К вопросу о том, что с первого раза автоматизация обычно не срабатывает: здесь я столкнулся с тем, что данные в таблице не заменялись при обновлении информации в Trello. Мое решение: просто первым шагом всегда чистить таблицу перед тем, как загрузить новые данные. Для этого я использовал функцию Delete Rows.
Далее — три шага работы с Trello: получить нужную доску (Get Board), получить колонки с задачами (Get Many), получить карточки с задачами (Get Cards).
Следующая нода — добавить или обновить строки. Выбираем созданную ранее таблицу и производим через уже знакомый принцип drag-and-drop мэппинг колонок по определенному значению, в данном случае — по ID карточек.
На этом этапе я обнаружил еще одну проблему: если напрямую подключить таблицу к AI-агенту, то он будет получать на вход не одну сущность, а то количество сущностей, которые соответствуют количеству строк в моей таблице. Другими словами, он пытается дать ответ на каждую отдельно взятую строчку, из-за этого очень долго работает и потом выдает миллиард ошибок. Чтобы это исправить, я добавил ноду агрегирования данных — из таблицы в одно общее полотно текста.
Осталось только подключить AI-агента и заслать его ответ обратно в Telegram. Вот результат.

Если вы хотите погрузиться в тему поглубже, можно начать с бесплатных обучающих материалов n8n и Make — в них даже есть шаблоны различных процессов. Но вообще я бы советовал просто потестить эти платформы своими руками. Это тот случай, когда дизайн действительно «интуитивно понятный» и максимально user friendly.