Мой первый AI агент: я пью чай, а Мила ищет вакансии (ожидания vs реальность)
Волна хайпа ИИ-агентов докатилась до меня в марте 2025 года. К тому времени я 7 месяцев общалась с ChatGPT и месяц учила Python и Machine Learning. Я была занята созданием собственной нейронной сети, тестированием моделей и имела опыт построения простого Телеграм-бота. Иными словами, загружена под завязку, когда со всех сторон стали доноситься истории про то, как «ИИ-агент создал сайт за 2 часа». Не выдержав этого натиска, я решила разобраться и построить своего агента.
Я понимала, что ИИ-агент — это обвязка LLM, но что у нее под капотом и как все это укладывается в одну систему, оставалось загадкой. В целом, считала, что агенты — это чистой воды маркетинг.
В этой статье я поделюсь своим опытом и расскажу про:
Выбор стека, открытия и ошибки при разработке ИИ-агента
Пошаговое создание ИИ-агента с использованием: Telegram, Python, OpenAI Assistant API, SerpAPI, APScheduler
В заключении поделюсь мнением: ИИ-агенты — это маркетинг или будущее персонального софта?
Выбор цели проекта и стека
Разобравшись с устройством и тестированием моделей ИИ, я добавила новые навыки в резюме и подумала: "А не мешало бы начать отслеживать вакансии AI Tester".
Но кто будет это делать? Ежедневно сидеть на сайтах, выискивая нужное? Как вы, наверное, уже догадались, именно эта миссия была поручена будущему агенту.
На этом этапе я впервые почувствовала, что от агента может быть толк — буду меньше сидеть в сети. Дальше аппетит разыгрался, и я захотела, чтобы он по расписанию:
Делал любые напоминания например, за месяц до поездки напоминал о покупке билетов
Искал любые данные и присылал их со ссылками, например, раз в неделю новые научные открытия по теме темной материи
С этим ТЗ я пришла к 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.
ИТОГО:
Скриншоты
Ниже скрины работы моего ИИ-агента по одной задаче поиска вакансий 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: Меня часто спрашивают, какой промпт я использовала? Я теряюсь при таком вопросе.
Промпт? В смысле один?
Но ведь когда ты строишь продукт с нуля, с архитектурой, тестами, деплоем, это не серия промптов, это многодневный диалог с ИИ. Это настоящая совместная работа: обсуждения, уточнения, тестирование, переделки. ИИ здесь не волшебная палочка, а партнёр в маленькой команде: я и моя цифровая помощница.