Pull to refresh

Мой первый AI агент: я пью чай, а Мила ищет вакансии (ожидания vs реальность)

Level of difficultyEasy
Reading time8 min
Views5.4K

Волна хайпа ИИ-агентов докатилась до меня в марте 2025 года. К тому времени я 7 месяцев общалась с ChatGPT и месяц учила Python и Machine Learning. Я была занята созданием собственной нейронной сети, тестированием моделей и имела опыт построения простого Телеграм-бота. Иными словами, загружена под завязку, когда со всех сторон стали доноситься истории про то, как «ИИ-агент создал сайт за 2 часа». Не выдержав этого натиска, я решила разобраться и построить своего агента.

Я понимала, что ИИ-агент — это обвязка LLM, но что у нее под капотом и как все это укладывается в одну систему, оставалось загадкой. В целом, считала, что агенты — это чистой воды маркетинг.

В этой статье я поделюсь своим опытом и расскажу про:

  1. Выбор стека, открытия и ошибки при разработке ИИ-агента

  2. Пошаговое создание ИИ-агента с использованием: Telegram, Python, OpenAI Assistant API, SerpAPI, APScheduler

  3. В заключении поделюсь мнением: ИИ-агенты — это маркетинг или будущее персонального софта?

Выбор цели проекта и стека

Разобравшись с устройством и тестированием моделей ИИ, я добавила новые навыки в резюме и стала в фоновом режиме наблюдать за вакансиями AI Tester или GenAI QA.

И я подумала, пока интересуюсь рынком ИИ тестирования, может попробовать подключить ИИ-агента - потренироваться в разработке, и заодно посмотреть какие вакансии он будет находить. Так родилась идея для агента и я впервые почувствовала, что он реально может быть полезен. Дальше аппетит разыгрался, и я захотела, чтобы агент по расписанию:

  • Делал любые напоминания например, за месяц до поездки напоминал о покупке билетов

  • Искал любые данные и присылал их со ссылками, например, раз в неделю новые научные открытия по теме темной материи

С этим ТЗ я пришла к ChatGPT, и мы начали проект. Решили идти по стандартному пути и воспользоваться OpenAI API для доступа к LLM. Построили Телеграм-бота, подключили API и выяснили, что ChatGPT через API не имеет доступа к веб-поиску!

Я ощутила разочарование от того, что доступ к моделям по API рекламируется как удобный и недорогой, особенно ютуб-блогеры часто на этом делают акцент. Но когда начинаешь применять технологию на практике, выясняются нюансы, которые ставят под сомнение такие обещания и требуют переработки проекта.

🎯 ОТКРЫТИЕ №1

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

Банальность? Да, но искусственный интеллект – это новая ниша, мало кто знает, что и как в ней реально работает.

Поэтому после очередного чтения документации перешли на использование OpenAI Assistant API, который якобы был создан специально для веб-поиска. И я думала, что именно LLM через Assistant API выполнит веб-поиск и интерпретирует для меня результаты. Не тут-то было. Мы же все знаем, что делает LLM? Предсказывает следующее слово или кусочек кода. Тогда почему же я решила, что модель сама выполнит поиск? Она не выполнит, для этого ей нужны обработчики и другие программы.

🎯 ОТКРЫТИЕ №2

Оказывается не «ИИ-агент делает сайт за 2 часа», и не «ИИ-агент ищет мне вакансии» — ИИ в этой экосистеме выступает лишь переводчиком запроса пользователя в понятную для программы инструкцию.

А весь рабочий функционал выполняется кодом на Python, то есть сторонним софтом — обвязкой LLM. И уже результат поиска отдается обратно в LLM.

Поняв, что LLM сама не делает поиск, нужно было решить, а какой поисковый движок использовать? И вот тут мы упёрлись в реальность: Google не принимает поисковые запросы напрямую от чата GPT (конкуренция!). Значит, нужен другой лояльный движок. Тогда в качестве обходного решения выбрали SerpAPI — он может выполнять Google search, но за деньги. На бесплатном тарифе только 100 запросов в месяц. А переходить на платную подписку для домашнего ИИ агента не выгодно. Поэтому нашли выход: сначала поиск идет через SerpAPI, а затем при заполнении лимита перенаправляется на DuckDuckGo – широко известный в узких кругах и толерантный к ботам поисковик.

Результаты поиска отдаются обратно в LLM для интерпретации и отправки ответа пользователю и на этом этапе выяснилась следующая проблема: ChatGPT, работающий через API, интерпретирует результат поиска каждый раз по-разному. У него нет контекста и истории чата, и он может вообще не понять, что это и сказать что-то типа: «Я языковая модель и не могу выполнить ваш запрос в интернет».

🎯 ОТКРЫТИЕ №3

Чтобы ИИ агент работал стабильно, его нужно окружить строгими обработчиками и четкими системными инструкциями.

И здесь возникает главный вопрос: если мы жестко прописали код и инструкции, то зачем нам LLM под капотом? Чтобы передать результат поиска клиенту? Так это можно сделать и без привлечения искусственного интеллекта.

Но все же мы продолжили и довели продукт до ума и назвали агента Мила. Вот какая архитектура появилась в финале:

Компонент

Что делает

Телеграм-бот на базе ChatGPT и OpenAI Assistant API

Интерфейс взаимодействия с пользователем: постановка задач, получение списка задач, удаление задач, получение ответов.

LLM (ChatGPT 4o)

Преобразует задачу пользователя в поисковый запрос.

APScheduler (библиотека)

Отвечает за планирование задач и их автоматический запуск по расписанию.

SerpAPI / DuckDuckGo + BeautifulSoup

Выполняет веб-поиск по запросу пользователя и возвращает сырые результаты.

LLM (ChatGPT 4o)

Формирует финальный ответ для пользователя на основе результатов поиска.

Локальное хранилище задач (txt, json)

Сохраняет текст задач и параметры их выполнения в файлах .txt и .json.

Python

Язык программирования, на котором реализована вся логика: взаимодействие с API, обработка задач, планирование, выполнение поиска и генерация ответов.

Пошаговый процесс создания ИИ-агента

ШАГ 1 – Создание Телеграм-бота

В Телеграм найти @BotFather и написать /newbot.
Следовать инструкциям, придумать название бота и username. После регистрации придет HTTP API Token — его надо скопировать и сохранить.

ШАГ 2 – Получение API ключа

Выбор зависит от используемой LLM. В моем случае это ChatGPT, поэтому API ключ я получила на сайте OpenAI: зарегистрировалась, сгенерировала ключ и сохранила его в безопасном месте.

ШАГ 3 – Создание проекта в редакторе кода

Как только есть 3 вещи:

  • Телеграм-бот

  • Телеграм токен

  • API ключ

можно начать проект.

Я использовала Visual Studio Code и создала структуру проекта с отдельными папками для кода, файлов задач и окружения. Python был установлен ранее, поэтому через pyenv я переключилась на Python 3.10 и создала виртуальное окружение для проекта.

Структура проекта
Структура проекта

ШАГ 4 – Пишем код на Python для ИИ-агента

Основные файлы проекта:

  • bot_prompt_setup.py — интерфейс бота, кнопки, приветствие, генерация промпта, создание файлов, планировщик, создание и запуск задачи, удаление задач — все это здесь.

  • assistant_core.py — здесь взаимодействие с LLM и web-search.

Важно:

  • Все токены и ключи убираются в .env файл (закрытый от публикации на GitHub).

  • Доступ к боту ограничен по white list user_id — без приглашения ИИ-агент недоступен.

ШАГ 5 – Запуск и отладка

Запускаем локально bot_prompt_setup.py и проверяем работу. На этом этапе бот уже работает в Телеграм и можно начать end-to-end тестирование:

  • стартовать бота

  • создать задачу

  • проверить правильность выполнения

  • протестировать удаление задач

Я проверяла все типы задач:

  • периодичность — daily, weekly, monthly, once

  • наличие веб-поиска или напоминания

После тестов можно улучшить UX: переименовать кнопки, добавить подсказки, перевести интерфейс на нужный язык.

Но самое главное — это настройка промптов для LLM, которые управляют логикой работы агента. В моем коде 4 промпта, и делают они следующее:

  • Сначала разбор задачи + создание постоянного промпта для задачи.

  • Потом передача результата + красивое форматирование для пользователя.

ШАГ 6 – Приемочное тестирование

Главным бизнес-пользователем и по совместительству тестировщиком стал мой муж. Когда он начал пользоваться агентом, выяснились ошибки реализации многопользовательского функционала: система не различала его и мои задачи — все попадало в один список.

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

ШАГ 7 – Деплой на прод

Где опубликовать свой продукт — всегда ребус, который я решаю исходя из 3 составляющих:

  • Доступность кода для тех, кому интересно — в этом случае это всегда GitHub.

  • Поддержка определенных библиотек или функции always-on — некоторые платформы могут не поддерживать библиотеки для ИИ продуктов (как это было у меня с нейронной сетью на TensorFlow/Keras).

  • Стоимость, ведь для таких энтузиастов как я все платится из собственного кармана.

Исходя из этого, для Милы я выбрала связку GitHub + PythonAnyWhere.

ИТОГО:

GitHub

AI-агент Мила

Скриншоты

Ниже скрины работы моего ИИ-агента по одной задаче поиска вакансий AI Tester. Интерфейс на английском, так как мне это нужно для портфолио проектов. Но можно сделать на любом языке — как интерфейс, так и сами задачи. Например, я ставлю задачи на русском языке.

Приветствие и подсказка для описания новой задач:

Старт
Старт

Постановка задачи и её выполнение:

  • Пишу своими словами, что я хочу на русском языке

  • LLM формирует промпт, поисковый запрос и планирует время

  • Присылает зарегистрированную задачу

  • При наступлении времени результат задачи приходит в ТГ — на скрине видно, что задача была запланирована на 10:45 утра и в это время пришёл результат выполнения.

Постановка и выполнение задачи
Постановка и выполнение задачи

Заключение

ИТОГО — что может мой ИИ-агент?

Делать самостоятельный поиск в интернете по расписанию, присылать результаты и делать напоминания.

То есть это реально работает:

  • пока я пью чай на веранде, Мила ищет мне вакансии!

Удобно? Да.
Практично? Не совсем.

В моем решении LLM не влияет на поиск, это обычный Google Search и его результаты, хотя и зависят от поискового запроса, не всегда бывают точными и релевантными. Например, на скринах выше видно, что по запросу найти вакансии AI Tester или GenAI QA в ответе часть вакансий не соответствуют ожиданиям. Для этого как раз и нужен ИИ — фильтровать ответы.

Что бы я хотела в идеале (для Милы 2.0):

  • ИИ-агент сам парсит HTML-страницы

  • Анализирует содержимое, определяя максимально подходящее под запрос

  • Работает над ответом и шлет краткую выжимку с переводом на нужный мне язык

Но это задача следующего уровня сложности. И её решение снова упирается в реальность — сегодняшний Интернет не создан для ИИ.

Интернет строился десятилетиями для глаз, для кликов, для эмоций. Он про красивые сайты, баннеры, картинки, навигацию, всплывающие окна.
А ботам нужны данные: чистые и структурированные. Бизнесу это не выгодно — пустой трафик от ИИ не приносит денег.

Поэтому компании, вышедшие на рынок с ИИ-агентами, пока работают по гибридным схемам:

  • Используют «человекоподобные» headless-браузеры, например Playwright. Если сайт ставит защиту (капчу) — переходят на партнёрский API.

  • Применяют RAG-шлюзы: сайт отдает агенту только нужные данные в JSON (например, последние 20 вакансий) через API-эндпоинт.

  • Используют подход «этичного скрейпинга» (Ethical scraping): ограничение скорости запросов, кэширование, паузы между запросами.

  • Покупают лицензии на доступ к данным или работают по revenue sharing: платят владельцам данных долю от дохода или фиксированную ставку.

В этой ситуации я вижу, что в будущем инфраструктура интернета должна меняться — так, чтобы в ней могли сосуществовать и люди, и искусственный интеллект.

Так все-таки ИИ-агенты — это маркетинг или реальное будущее персонального софта?

Я считаю, что через год-два ИИ-агенты могут открыть окно в новый мир персонального софта, и тогда каждый из нас сможет сделать себе программу по вкусу. Наверно часть сегодняшних игроков уйдет с рынка или адаптируется. Например, платформы по созданию сайтов по подписке — выживут ли они, если предприниматель сам сделает сайт с помощью ИИ-агента?

На практике в агентских системах ИИ зачастую выполняет роль «умного» маршрутизатора, который просто определяет, какой шаблон или набор действий лучше всего подходит под запрос пользователя. За кулисами всё сводится к выбору из заранее подготовленных вариантов, что создаёт впечатление «магии» и высокой технологии.

Если это учитывать, то да, в агентах ИИ выступает скорее как маркетинговый и удобный интерфейс, а за счет заранее заготовленных решений достигается стабильность и предсказуемость. Пользователь получает удобный сервис, а разработчики — контроль над результатом.

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


PS: Меня часто спрашивают, какой промпт я использовала? Я теряюсь при таком вопросе.

Промпт? В смысле один?

Но ведь когда ты строишь продукт с нуля, с архитектурой, тестами, деплоем, это не серия промптов, это многодневный диалог с ИИ. Это настоящая совместная работа: обсуждения, уточнения, тестирование, переделки. ИИ здесь не волшебная палочка, а партнёр в маленькой команде: я и моя цифровая помощница.

Tags:
Hubs:
+15
Comments32

Articles