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

Базовая ссылка на уроки : https://practicum.yandex.ru/trainer/yc-ml-aiagents/lesson/6f589a6d-4fb6-4675-8ae4-06d9b3a1f47f/

Введение в ИИ-агентов

Большие языковые модели (LLM) производят революцию в области автоматизации человеческой деятельности. Они самостоятельно решают сложные интеллектуальные задачи: анализ текста, извлечение данных, ведение диалога для достижения бизнес-целей.LLM — инструмент для работы с текстом, его встраивают в рабочие процессы для повышения эффективности. При этом LLM редко рассматривают как системы, способные действовать самостоятельно.

ЛогикаА ведь на LLM можно посмотреть по-другому — как на самостоятельного агента, который умеет думать и сам решает, как двигаться к цели. Представьте: он сам выбирает, как вести разговор, чтобы, например, закрыть сделку или выудить нужную информацию. Именно о таких самостоятельных системах и пойдёт речь в этом курсе. 💡 Агентность (от англ. agency) — это способность программной системы действовать самостоятельно, принимать решения и влиять на своё окружение, преодолевая внешние ограничения.

Агенты и окружение

💡 Агент — это автономная сущность, которая функционирует в окружении. Агент может наблюдать его или взаимодействовать с ним, а также выполнять в нём действия.Например, умный чат-бот поддержки общается с пользователем (в этом случае он часть окружения), отвечает на вопросы и при необходимости переводит беседу на оператора. У такого бота есть функции наблюдения (получение сообщений) и действия (ответить или перевести разговор на оператора).

Агент и его окружение💡 В одном окружении могут работать и взаимодействовать несколько агентов. Такие системы называются многоагентными. Их особенность — эмерджентность, то есть способность всей системы решать более сложные задачи, чем каждый агент по отдельности.

Характеристики агентов

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

  • Автономность — умение действовать самостоятельно для достижения цели. Обычно включает планирование (разделение цели на простые подзадачи) и рефлексию (анализ результатов и корректировка поведения).
  • Реактивность — способность реагировать на изменения в окружении. Например, чат-бот, заметив раздражение пользователя, переводит его на оператора.
  • Проактивность — умение инициировать действия для достижения цели.
  • Адаптивность — умение менять алгоритм работы под новые условия.
  • Коллаборативность — способность к взаимодействию в многоагентной системе для достижения общей цели.

Анатомия простейшего агента

Агента можно построить и без языковой модели, но чаще всего он создаётся вокруг LLM. Помимо неё, важные компоненты агента:

  • Память — хранит историю действий. У разговорного агента это может быть переписка с пользователем или все сообщения, сгенерированные LLM.
  • Инструменты, которыми пользуется агент. Их реализует разработчик, а языковая модель заранее получает список доступных инструментов. Через них агент взаимодействует с окружением, например вызывает оператора.
  • Поиск по локальной базе знаний — часто входит в набор инструментов и позволяет реализовать Retrieval-Augmented Generation (RAG), чтобы агент мог работать в определённой предметной области. Иногда добавляют и глобальный поиск в интернете.

Агент с локальной текстовой базой знаний и инструментами

Структурный ответ и вызов инструментов

Способность работать с инструментами — ключевая особенность агентов. Поэтому важно, чтобы языковая модель поддерживала вызов инструментов (Function Calling или Tool Calling). Этой функции модель обучают специально: она умеет формировать особый ответ, когда нужно вызвать инструмент. Для вызова инструментов нужна ещё одна важная функция — структурный ответ. Если ответ LLM обрабатывает программа, формат нужно зафиксировать строго, чтобы код правильно его интерпретировал. Современные модели позволяют задавать не только формат (например, JSON), но и точную схему данных — набор обязательных полей и их типы.

Фундаментальные модели в Yandex Cloud

Для создания агентов нужна современная языковая модель, которая поддерживает вызов инструментов и структурный ответ. В Yandex Cloud доступны несколько вариантов:

  • AliceLLM и YandexGPT — поддерживают структурный ответ и вызов инструментов, подходят для создания ИИ-агентов. Обучены на большом корпусе русского языка и отлично справляются с русскоязычными задачами.
  • Открытые модели (Qwen, GPT-OSS и др.) — работают с множеством языков и поддерживают все необходимые функции.

📚 При выборе модели учитывайте качество, скорость ответа и стоимость. Модели с меньшим числом параметров быстрее и дешевле, но их ответы неточные. Актуальный список моделей есть в документации.📚 В облаке также есть модели для пакетного режима.Они обрабатывают большие тексты и выдают результат спустя некоторое время. Такой режим не подходит для агентов, работающих в реальном времени, поэтому в курсе он не рассматривается.Два основных подхода для вызова моделей:

  • OpenAI-совместимые API — Completion API и Responses API. Это фактический стандарт в индустрии, поэтому модели из Yandex Cloud можно подключать к библиотекам и инструментам, которые поддерживают OpenAI (ChatGPT). Например, OpenAI Python SDK. Рекомендуем вызывать модели именно через этот способ и использовать современный способ — Responses API.
  • Нативные API Yandex Cloud — REST или gRPC. Их можно использовать с разными языками программирования. Этот вариант подойдёт, если вы создаёте решение, которое работает только внутри Yandex Cloud или требует специфических возможностей платформы. Также для использования специфических сервисов (распознавание/синтез речи, OCR и т. д.) в Python можно применять Yandex AI Studio SDK.

Фреймворки для создания агентов

Как вы уже выяснили, для работы агента нужны базовые компоненты: интеграция с LLM, хранение истории диалога, поддержка RAG и векторных баз данных и т. д. Для этого существуют фреймворки и библиотеки, а также облачные API. В Yandex Cloud доступны API:

  • Yandex AI Studio API — расширенный API для работы с языковыми моделями (пришёл на смену Completion API). Упрощает создание агентных сценариев. Поддерживает автоматическое выполнение инструментов: RAG, поиск в интернете, запросы к MCP-серверам. Совместим с OpenAI, поэтому его можно использовать во всех популярных open-source-фреймворках.

Чаще всего для разработки агентов используют Python-фреймворки:

  • Стандартный OpenAI Python SDK — это базовая библиотека от OpenAI для работы с Responses API, файлами, поисковыми индексами и т. д.
  • OpenAI Agents SDK — это фреймворк для разработки агентов на высоком уровне абстракции, берёт на себя все тонкости реализации.
  • Yandex AI Studio SDK — нативный фреймворк для работы с компонентами платформы. Его можно использовать вместе с Responses API для реализации дополнительных функций: распознавания и синтеза речи, OCR и других возможностей Yandex Cloud.
  • LangChain — open-source-фреймворк на Python и JavaScript. Поддерживает локальные и облачные модели, векторные БД и внешние инструменты. Модели Alice AI LLM, YandexGPT, Qwen, DeepSeek и др. можно подключать через OpenAI Compatible API.
  • LlamaIndex — фреймворк для построения диалоговых систем на основе данных. Умеет индексировать документы из разных источников. Доступен как оpen-source-библиотека и может быть развёрнут в Yandex Cloud.
  • SmolAgents — библиотека от Hugging Face для гибких агентов, умеющих планировать действия и корректировать их на лету. Позволяет LLM генерировать код и безопасно выполнять его в песочнице.

Многоагентные системы и многоагентные сценарии

При создании многоагентных систем есть разные способы организовать их взаимодействие. Предлагаю разобрать два примера!1️⃣ Представьте, что нужно отсортировать входящие сообщения службы поддержки по отделам и сформировать на них ответы. Отделы децентрализованы и используют свои инструменты: техподдержка опирается на документацию по продуктам, отдел доставки — на базу данных товаров. В таких случаях на вход можно поставить агента-маршрутизатора, который направит запрос агенту нужного отдела. Финальный агент проверит корректность и полноту ответа и передаст его пользователю. То есть архитектура системы заранее определяет динамику переходов между агентами.

Пример архитектуры многоагентного сценария (Agentic Workflow)Такой подход называется многоагентным сценарием (Agentic Workflow). В его рамках возможны разные архитектуры: с централизованным планировщиком или с децентрализованной коммуникацией между агентами.💡 Хотя архитектура взаимодействия агентов продумывается заранее, порядок их работы не фиксирован и меняется в зависимости от задачи. Например, агент-планировщик может разбивать задачу на подзадачи и корректировать план по ходу выполнения, вызывая других агентов по мере необходимости. Важно заранее заложить в систему понятный алгоритм маршрутизации.2️⃣ Представьте, что пользователь задаёт техподдержке сложный вопрос: сколько энергии потратит конкретная кофемашина за месяц непрерывной эксплуатации. Для ответа на этот вопрос нужно найти информацию и выполнить расчёты. Поскольку такие вопросы могут сильно различаться, заранее предусмотреть все варианты взаимодействия агентов невозможно. Вместо этого построение плана решения задачи делегируется LLM. Модель самостоятельно определяет шаги для решения задачи и вызывает доступные инструменты (вычисления, поиск в интернете).

💡 Этот подход более гибкий, но менее предсказуемый. Такие системы также относятся к многоагентным системам.💡 Даже если в примере используется один агент, гибкий подход позволяет строить системы с несколькими агентами. Один агент может делегировать подзадачи другим агентам и затем собрать результаты.Для построения многоагентных систем есть специальные инструменты:

  • LangGraph — фреймворк от создателей LangChain, который объединяет отдельных агентов в граф взаимодействий и позволяет создавать сложные динамические сценарии.

💡Хотя LangGraph часто используют с LangChain, это не обязательно — его можно применять и с любыми другими инструментами.

  • OpenAI Agents SDK — библиотека от OpenAI. Она позволяет создавать агентов и гибкие многоагентные системы, которые основаны на передаче управления между агентами и вызове агентов как инструментов.
  • SmolAgents — библиотека от Hugging Face для создания гибких многоагентных систем с динамическим планированием и кодогенерацией.

Какой же подход выбрать для решения конкретной задачи? Давайте рассмотрим табличку!

В реальности часто встречаются комбинации этих подходов. Например, в медицинской диагностике пациента можно направлять к нужным специалистам по стандартной схеме, а сами врачи при этом используют гибкие исследования через Deep Research. Теперь пора закрепить материал небольшим тестом!

Какие основные свойства характерны для агентов? Выберите два верных ответа.

Правильный ответ

Автономность

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

Проактивность

Правильно, у агента должна быть цель, которую он преследует.

Энергоэффективность

Неправильный ответ

Разумность

Сложно формально определить, что такое разумность.Как вам задача?

Ваш начальник слышал, что хорошие результаты даёт фреймворк Microsoft AutoGen. Как думаете, можно ли его использовать с фундаментальными моделями в Yandex Cloud?Тоже правильный ответ

Да, можно использовать через OpenAI Compatible APIПравильно, с помощью OpenAI Compatible API можно вызывать фундаментальные модели Yandex Cloud из любых инструментов, совместимых с OpenAI.Нет, Yandex Cloud не совместим с протоколами, которые используюНеправильный ответДа, но нужно написать свой прокси-класс, который будет маршрутизировать запросы между AutoGen и Yandex CloudВ этом нет нужды, поскольку Yandex Cloud поддерживает протокол, совместимый с OpenAI.Нет, Yandex Cloud поддерживает только LangChain/LangGraph и LlamaIndexКак вам задача?

Представьте, что вам нужно реализовать сложную индустриальную систему пользовательской поддержки, которая будет отвечать на запросы пользователя по разным темам и передавать его проблему между отделами. Какой подход предпочтительнее использовать в этом случае?Гибкие многоагентные системы, потому что они позволяют решать более широкий круг задачГибкие многоагентные системы, потому что они позволяют быстро прототипировать сложные решенияПравильный ответМногоагентные сценарии, поскольку они более контролируемые и предсказуемыеДа, для индустриальных систем важна контролируемость и предсказуемость.Многоагентные сценарии, поскольку они более гибкие и дешёвыеКак вам задача?

Итоги урока

Мы видим, что на текущий момент под многоагентными системами понимают разные архитектуры с разной автономностью. В основе всегда агент — LLM с инструментами и памятью. В следующих уроках разберём, как создавать таких агентов в Yandex Cloud и использовать их на практике.

Рубрики: Uncategorized

0 комментариев

Добавить комментарий

Заполнитель аватара

Ваш адрес email не будет опубликован.