Вступление про ИИ
В этой статье я опишу, объясню и продемонстрирую как можно использовать ИИ-агентов для автоматизации процесса сбора ключевых слов задавая только идею статьи (в качестве примера). Также опишу то, как эти агенты работают, принимают решения и их виды и разновидности.
Я всегда смотрел на новые технологии скептически, не доверял хайпу и трендам. ИИ особенно. Вроде как и прикольно, но толку то для меня было немного.
Конечно, первое время было интересно просто так початиться, но это приедалось да и об ошибках, неточностях и супер уверенности в том, что они генерируют, я вообще молчу. Они хороши ровно на столько, на сколько хороши изначальные данные для тренировки. А на каких данных они тренируются? Правильно, сайты и их контент.
Так, например, если спросить у Gemini самый избитый и обсосанный вопрос у фронтенд разработчиков: "Как отцентрировать элемент?", то Gemini даст полный, развёрнутый и исчерпывающий ответ. Прошу заметить, что я задал очень общий вопрос, я мог иметь в виду, как это можно было бы сделать в Figma или любом другом редакторе. Но так, как Gemini использует результаты поиска в качестве инструмента, то и интент он узнаёт от туда.
А вот если спросить: "Опиши подробно ход и результаты "Стеклянной войны" 1804 года между Швейцарией и Монголией." То ИИ попытается подыграть и может очень уверенно ответить, что же там происходило в 1804 году.
Я понимаю, пример очень утрирован и самые современные модели на это не поведутся, но в любом случае всегда нужно проверять, что они там тебе нагенерировали.
Но кое-что сегодняшний ИИ может делать хорошо и это агрегировать и обобщать большие объёмы данных и делать это быстро. И это я считаю очень хорошие качества для автоматизации некоторых процессов.
Именно способность быстро обрабатывать данные делает ИИ идеальным кандидатом для автоматизации. Но чтобы превратить простого болтливого бота в надежного помощника, нам нужно дать ему самостоятельность и право действовать. Здесь на сцену выходят ИИ-Агенты.
Что такое ИИ-Агент и как он выглядит?
Согласно определению из интернета, которое ну 100% не сгенерировано ИИ, ИИ-Агент это:
То есть, чтобы можно было посчитать обычный python-скрипт ИИ-Агентом необходимо:
- Языковая модель — то, что и будет производить соответствующую генерацию.
- Инструменты — то, благодаря чему языковая модель может взаимодействовать с окружающим миром
- Система контроля рабочего процесса (The Orchestration Layer) — то есть, система контролирующая цикл "Думать, Действовать, Наблюдать" машина состояний, если так будет угодно, определяющая какую модель использовать, какие инструменты предоставить этой модели.
Как агенты работают и думают
В своей основе, все агенты работаю в специальном цикле называемом "Думать, Действовать, Наблюдать". И состоит она из 5 ключевых шагов:
- Получить миссию — суть в том, что человек задаёт некую изначальную цель, ради которой она и начнёт действовать. Эта миссия может быть заложена как пользователем, так и разработчиком при создании.
- Анализ контекста — на этом этапе агент анализирует весь предоставленный контекст, будь то начальные промпты разработчика, описания предоставленных инструментов, что есть во временной памяти.
- Обдумать — теперь модель непосредственно начинает думать над решением запроса пользователя, разрабатывает план для дальнейших действий, и соответственно какие инструменты можно будет использовать.
- Действовать — агент выбрав необходимые инструменты начинает их использовать в соответствии с необходимостью выполнения заданной миссии.
- Наблюдать и Повторять — у каждого инструмента должен быть некий результат на выходе, этот результат добавляется в контекст и агент возвращается на 3-й шаг для анализа нового, обновлённого контекста.

Цикл работы ИИ-Агента. Взято с: https://www.kaggle.com/whitepaper-introduction-to-agents
Какие агенты бывают?
В предыдущей главе я показал как работает агент в своём базовом, простейшем виде. Но знал ли ты, что у агентов есть иерархия и они могут становиться ещё сложнее и умнее. Как следствие решать куда более серьёзные задачи.

Иерархия Агентских систем. Взято с https://www.kaggle.com/whitepaper-introduction-to-agents
0-й уровень. Система рассуждений (The core reasoning system). Только большая языковая модель сама по себе.
- Пример: Ты спросил Gemini: "Напиши эссе о влиянии промышленной революции на экологию".
- Суть: Модель использует только свои внутренние знания, полученные при обучении. Она не лезет в интернет, не запускает код. Если знаний нет или они устарели — она начнет галлюцинировать.
1-й уровень. Система решения проблем (The connected problem-solver). На этом уровне, к языковой модели прикручивают инструменты, и дают возможность изучать и взаимодействовать с окружением.
- Пример: Ты спросил: "Какая погода сейчас в Варшаве?"
- Суть: Модель понимает, что не знает ответа, но у нее есть инструмент (функция)
get_weather(city). Она вызывает этот инструмент, получает данные и формирует ответ на естественном языке. Здесь появляется связь с внешним миром.
2-й уровень. Стратегическая система решения проблемы (The Strategic Problem-Solver). На этом уровне у агента появляется контекст и при помощи этого контекста можно ограничивать и задавать рамки агенту или настраивать его поведение.
- Пример: Агент, который мы создаем в статье (SEO-специалист).
- Суть: Вы не просто даете инструмент, вы задаете роль и контекст: "Ты SEO-специалист, твоя цель — расширить семантическое ядро". Агент помнит свою миссию, может совершить несколько действий подряд (найти конкурентов -> извлечь ключи -> отфильтровать) в рамках одной сессии, сохраняя контекст задачи.
3-й уровень. Коллективная система агентов решения проблемы (The Collaborative Multi-Agent System). А на этом уровне разные агенты со своими инструментами и контекстами объединяются в команду для решения общей задачи.
- Пример: "Редакция блога".
- Суть: Есть три агента: Исследователь (ищет темы в интернете), Копирайтер (пишет текст на основе найденного) и Редактор (проверяет текст и правит стиль). Вы даете задачу "Написать статью про ИИ", и агенты передают работу друг другу по цепочке, как сотрудники в офисе, пока результат не будет готов.
4-й уровень. Самоадаптирующаяся система. (The self-evolvin system). Это такая система, которая способна понять свои недостатки и ограничения и создать дополнительные инструменты и/или агенты для устранения своих недостатков, чтобы выполнить поставленную задачу
- Пример: Агент по бронированию путешествий, столкнувшийся с новой задачей.
- Суть: Вы просите забронировать отель на специфическом сайте, API которого агент не знает. Агент 4-го уровня не упадет с ошибкой. Он сам пойдет читать документацию этого сайта, напишет для себя новый инструмент (код) для взаимодействия с этим API, протестирует его и выполнит вашу задачу.
Пару заметок по некоторым уровням. Принципиально между 2-м и 3-м уровнем можно поставить знак равенства. Так, вместо того, чтобы создавать 10-ки отдельных агентов со своими инструментами, можно просто создать все необходимые инструменты и передать их одному агенту. В реализации это куда проще. Не придётся думать о том, как связать несколько агентов и думать как они будут взаимодействовать.
По этой логике, самоадаптирующаяся система тоже не обязательно должна состоять из нескольких агентов. Она может просто создавать или искать необходимые инструменты для выполнения своих задач.
Но есть, пару ограничений, которые не позволят сделать так, как я описал выше.
- Первое — это контекст. У каждого агента он ограничен, и соответственно не получится засунуть все инструменты в одного агента. И именно поэтому их(агентов) придётся множить.
- Второе — это отсутствие долгосрочной памяти у агентов. При каждом новом взаимодействии, придётся заново задавать контекст и обучать тому как выполнять ту или иную задачу.
Дальше в этой статье я продемонстрирую создание ИИ-Агента 2-го уровня, ибо они сейчас проще всего в разработке и подходят для решения большинства рутинных задач. По крайней мере моих. И это точно не потому, что я не умею пока делать агентов 3-го и 4-го уровня.
И как ты мог заметить, начиная с первого уровня, ключевым отличием агента от простого чат-бота является способность взаимодействовать с окружением. А делают они это с помощью инструментов. Давайте разберемся, какими они бывают.
Про инструменты для ИИ-Агентов
Под инструментами подразумеваются некоторые функции, которые Большая языковая модель способна использовать для выполнения поставленных задач. Все инструменты можно условно разделить по типу действия:
- Те, чтобы узнать что-то — для того, чтобы получить некоторую информацию, например сделать запрос к базе данных.
- Те, чтобы сделать что-то — для того, чтобы произвести некоторые действия с уже существующими системами, например сделать запись в базе данных.
Эти инструменты можно разделить и по признаку происхождения инструментов:
- Внешние инструменты - те инструменты, которые не встроены в Языковую модель и их необходимо указывать при создании агента.
- Встроенные инструменты - те инструменты, которые Языковая модель может использовать и без явного указания в инструментарии при создании агента. Так например, Gemini имеет следующие встроенные инструменты Google Search, Code Execution, URL-Context, Computer Use. Больше встроенных инструментов для Gemini можно посмотреть здесь.
- Агент как инструмент - т.е. любой агент тоже может быть использован как инструмент.
Так же при разработке инструментов для своего агента нужно учитывать и придерживаться лучших практик:
- Тщательно всё документируй - то есть, используй понятные названия, описывай все входные параметры, объясняй что твоя функция возвращает, предоставляй значения по умолчанию, добавь примеры. Это всё пойдёт в контекст и агенту нужно будет понять для чего данный инструмент предназначен.
- Описывай результат, не ход выполнения - то есть объясни что нужно сделать, не как это сделать, не пытайся объяснить последовательность действий.
- Инструменты должны быть простыми - не нужно усложнять и писать функцию со множеством назначений.
- Делай инструменты таким образом, чтобы они не возвращали большие объёмы данных, но лишь самое необходимое - например, вместо того, чтобы вернуть таблицу с большим к-вом строк сохрани просто имя таблицы, для дальнейшего обращения к ней в будущем.
И это только основа. Кажется всё очень сложным и не понятным, но на самом деле собрать своего первого агента (уровня 2) можно за 15 минут. Давайте напишем агента, который автоматизирует работу с метатегами в SEO.
Давай сделаем простейшего, функционального ИИ-Агента
Что потребуется и что стоит учесть перед началом
Мне потребовалось немало усилий, чтобы придумать что-то такое, чтобы было и простым в реализации и одновременно с этим, даже полезным. Вот что мы напишем — ИИ-Агент для определения ключевых слов для продвижения в поиске по описанию самой идеи статьи основываясь на топ 20 при поиске в Google.
Ничего сложного, нам потребуются следующие компоненты:
- Одна модель от Google - gemini-2.5-flash.
- Инструмент для парсинга поисковой выдачи - Tavily
- Ну и язык на котором мы будем это писать - Python/LangChain
Почему я выбрал именно этот стек для своего агента? Ну тут всё довольно прозаично, у них есть бесплатные лимиты на которых можно потренироваться и освоится. Да и в принципе, для единоличного использования тех лимитов, которые они представляют, хватает с лихвой. И получить API-ключи для них очень просто, минутное дело.
Получаем API-ключ для использования Gemini
Перейди на официальный сайт от Google для создания, интеграции и настройки собственных ИИ-Чатов - https://aistudio.google.com/app/api-keys. Тебе, конечно же, потребуется аккаунт Google. На дашборде:

Нажми на создание API-ключа, после чего введи название ключа и выбери "Default Gemini Project". API-ключ готов, скопируй или сохрани его, он нам потребуется дальше.

Получаем API-ключ для использования Tavily
Теперь получим API-ключ для Tavily. Он нам будет необходим, чтобы получать результаты поисковой выдачи не только Google, но и других поисковых систем.
Для этого, с начала, необходимо зарегистрироваться и перейти на домашнюю страницу. А после создать и скопировать свой API-ключ.

Страница создания API-ключа для Tavily
Код ИИ-агента
Сейчас, у нас есть всё необходимое, чтобы создать своего первого ИИ-Агента. Создадим отдельную директорию, виртуальное окружение, установим необходимые библиотеки и создадим несколько файлов (файл конфигурации агента и файл самого агента).
Создай отдельную директорию, виртуальное окружение и активируй его:
Установим необходимые пакеты:
Создай в этой же директории два файла settings.json и main.py. В первом, помести свои API-ключи вот так:
Во втором файле будет непосредственна логика нашего агента. Вот его код, более подробно о нём смотри ниже.
Внешним инструментом в данном случае играет роль функция get_search_results. Система контроля рабочего процесса это сам пакет langchain, которому на вход предоставляется модель - gemini-2.5-flash, инструменты - только get_search_results, и настройка контекста общения.
Дальше мы вызываем агента и предоставляем ему ещё больше контекста для работы со входными данными. Заметь, я ничего не написал про то, как и какие инструменты ему следует использовать. Но я указал какой именно результат я ожидаю.
После чего структурирую его и сохраняю в файл.
Код ИИ-Агента, улучшенный
Наш агент работает, но результат в виде простого текста не всегда удобно обрабатывать программно. К тому же, мы используем сторонний поиск, когда у самой модели есть мощные встроенные возможности. Давайте проведем рефакторинг и сделаем агента более профессиональным и автономным.
И это можно сделать следующим образом:
- Во-первых использовать встроенный инструмент поиска от Gemini
- Во-вторых использовать структурный вывод.
Давай посмотрим на улучшенную версию, а чуть ниже я расскажу по шагам, что мы изменили и зачем.
Как можешь заметить код стал чуточку чище и понятнее. Ещё мы убрали наш инструмент и теперь используем встроенный в Gemini, Гугл поиск (о встроенных инструментах я говорил чуть выше в этой главе).
Так же, при вызове агента мы больше не указываем как форматировать и возвращать наши данные. Теперь, в каком виде возвращать данные мы указываем в специально определённом классе - KeywordsInfo.
Больше о том, как ещё можно указывать структурированные результаты для агентов, ты найдёшь тут. Грубо говоря, при вызове агента мы пишем что хотим от него получить, а в классе KeywordsInfo, уточняем и структурируем как надо.
Создаём агента с соответствующим указанием, того какие результаты мы хотим получить:
После, запускаем агента:
Получаем данные и делаем с ними, что надо. В моём случае я просто сохраняю их в файл JSON. Возможно дальше я отправлю их на сервер или передам следующему агенту для дальнейших задач.
Это был пример самого просто ИИ-агента с использованием встроенного инструмента поиска и с реализацией нашего собственного инструмента. Со структурированным ответом и без.
Выводы или почему генеративный ИИ хорош для автоматизации "некоторых" процессов
Вот такие они - ИИ-Агенты. Их не очень сложно написать и они круты ровно настолько, насколько круты их инструменты и модели управляющие ими.
Я понимаю, в этой статье я не затронул такие важные темы как тестирование, обработка ошибок, работа с файлами (или артефактами) и развёртывание автономных агентов на сервера. Но это и не требовалось, в этой статье я хотел показать, что создать своего ИИ-агента даже проще чем написать телеграм бота. И что он может быть очень полезен в связке с определёнными инструментами.
Эта статья является лишь первой, ознакомительной частью работы с ИИ-Агентами. Дальше будет больше и интереснее. И чтобы не пропустить следующие статьи подпишись на соответствующий RSS-канал или почтовую рассылку и не забудь оставить комментарий если я что-либо упустил или ошибся. Пока.