Подходы к построению ИИ-решений
При создании ИИ-систем — цифровых ассистентов, инструментов автоматизации или умных интерфейсов — применяют несколько архитектурных подходов. Каждый из них подходит для определенного типа задач:
- Workflow (рабочий процесс) — линейная, заранее определенная последовательность действий, как в классических чат-ботах.
- Агентский подход — логика на базе LLM, которая позволяет адаптироваться к контексту и вызывать внешние инструменты.
- MAS (Multi-Agent System) — система из нескольких агентов, объединенных в общую структуру для решения сложных задач.
Пример задачи: Пользователь хочет проанализировать договор и получить краткое резюме с ключевыми условиями. Система должна извлечь из документа важную информацию (стороны, сроки, суммы), проверить ее на корректность и сформировать структурированный отчет.
Рассмотрим, как эта задача решается разными подходами.
Workflow подход
Решение через workflow:
- Пользователь загружает файл → проверка формата (только PDF или DOCX).
- Если формат правильный → извлечение текста.
- Поиск ключевых слов: «стороны», «сумма», «срок».
- Заполнение фиксированного шаблона отчета.
- Отправка результата пользователю.
Workflow работает по жесткому алгоритму: каждый шаг выполняется последовательно, без возможности адаптации к содержимому документа.
Агентский подход
Что такое агент
Агент — это полноценный автономный исполнитель на базе языковой модели (LLM). У агента есть своя цель, логика и набор инструментов. Он не требует жестко заданной цепочки действий, а сам решает, какие шаги предпринять для достижения цели.
Агент может:
- самостоятельно понимать запрос пользователя;
- определять, какие действия необходимо выполнить;
- вызывать внешние инструменты (функции, API, парсеры);
- уточнять у пользователя детали;
- адаптироваться к различным ситуациям и контексту;
- возвращать осмысленный результат.
Пример реализации агента вы можете увидеть в Быстром старте, а подробную настройку — в документации по блоку «Агент».
Компоненты агента
| Компонент | Назначение |
|---|---|
| LLM (модель) | «Мозг» агента: интерпретирует запросы и принимает решения. |
| Промт | Определяет роль агента, стиль ответов и правила работы. |
| Инструменты (tools) | Функции, которые агент может использовать для взаимодействия с системами, которые делают то, на что LLM не способна самостоятельно: API-запросы, поиск в базах данных, обработка файлов. |
Отличия от workflow
Workflow (рабочий процесс) — это заранее определенная последовательность действий и условий, где каждый шаг четко регламентирован. В workflow-системах логика работы описывается через схемы типа «если условие X, то выполнить действие Y», что обеспечивает предсказуемость, но ограничивает гибкость.
| Характеристика | Workflow | Агент |
|---|---|---|
| Определение действий | Заранее заданная последовательность: «если А, то Б». | Самостоятельно определяет необходимые действия. |
| Предсказуемость | Высокая — при одинаковых условиях результат всегда одинаковый. | Адаптивная — результат зависит от контекста. |
| Отладка | Простая — четкие правила и логика. | Сложнее — требует анализа решений модели. |
| Гибкость | Низкая — плохо справляется с неопределенностью. | Высокая — адаптируется к различным ситуациям. |
| Понимание запросов | Заранее определенные категории (интенты или друга логика). | Контекстуальная интерпретация. |
| Последовательность действий | Фиксированная. | Динамическая, в зависимости от задачи. |
Агентский подход особенно полезен, когда:
- запросы пользователя разнообразны;
- логика зависит от входных данных;
- существуют разные пути решения задачи;
- невозможно заранее описать все сценарии.
На практике агент часто встраивается в workflow. Workflow управляет общим процессом, а агент используется на интеллектуальных этапах: анализ, генерация, поиск.
Рекомендации по настройке агента
При создании агента определите три ключевых аспекта:
| Поле | Назначение | Принцип | Пример |
|---|---|---|---|
| Роль | Профессия или специализация агента. | Конкретность, не общие термины. | Аналитик договоров. |
| Цель | Конкретная задача, которую выполняет агент. | Измеримость, четкие границы. | Извлечь из договора: стороны, сроки, суммы, риски. Вернуть структурированный JSON. |
| Инструкции | Правила работы, стиль общения, ограничения. | Структурированность, примеры. | Процесс работы, формат ответа, ограничения (пример хорошей инструкции смотрите ниже). |
Структура эффективных инструкций:
- Процесс работы — пошаговый алгоритм действий.
- Стиль общения — тон и манера ответов.
- Формат ответа — как структурировать результат.
- Ограничения — что агент не должен делать.
Пример:
Роль: Аналитик договоров
Цель: Проверь, соответствует ли документ стандартам
Инструкции:
ПРОЦЕСС:
- Изучи документ полностью
- Извлеки ключевую информацию (стороны, сроки, суммы)
- Проверь соответствие стандартам компании
ОТВЕТ:
- Краткое резюме
- Список ключевых условий
- Выявленные риски
ОГРАНИЧЕНИЯ:
- Не давай юридических советов
- При сомнениях рекомендуй специалиста
Создание инструментов для агента
Принципы хороших инструментов:
| Принцип | Описание | Пример |
|---|---|---|
| Атомарность | Один инструмент = одна цель | Поиск документов вместо Поиск документа и рисование картинок в нем |
| Понятное название | Название отражает действие | Извлечь данные из PDF |
| Четкое описание | Агент понимает, что делает инструмент | Ищет документы по ключевым словам в базе данных |
Рекомендации по описанию инструментов:
- Начинайте с глагола:
Извлекает,Анализирует,Отправляет. - Указывайте источник данных:
из базы,из файла,через API. - Поясняйте формат результата:
возвращает список документов,создает отчет в PDF. - Отмечайте ограничения:
работает только с текстовыми файлами.
Пример хорошего описания:
Название: Поиск договоров
Описание: Ищет договоры в корпоративной базе по названию компании,
номеру договора или дате. Возвращает список найденных документов
с основной информацией. Поддерживает только активные договоры.
Частые ошибки:
- Неясные описания инструментов:
обрабатывает данные,работает с файлами. - Отсутствие ограничений: не указано, с какими форматами работает инструмент.
- Противоречивые инструкции:
будь кратким+объясняй подробно.
Пример агента
Решение через агента:
Агент анализирует тот же договор, но адаптируется к его содержимому:
- Получает документ любого формата (PDF, DOCX, изображение).
- Самостоятельно определяет тип договора (поставка, аренда, услуги).
- Извлекает релевантную информацию в зависимости от типа.
- Проверяет логическую согласованность данных.
- Формирует отчет в подходящем формате.
Агент самостоятельно:
- выбирает подходящий инструмент для извлечения текста.
- определяет, какая информация важна для данного типа договора.
- решает, нужна ли дополнительная проверка данных.
- адаптирует формат отчета под сложность договора.
Мультиагентная система (MAS)
Что такое MAS
Мультиагентная система (MAS) — это архитектура, в которой несколько агентов работают совместно, каждый выполняя свою задачу. Подробнее о создании мультиагентного процесса вы можете прочитать в документации.
Вместо одного универсального агента создается несколько специализированных. Например:
- один анализирует документы;
- другой извлекает информацию;
- третий формирует документ по шаблону;
- четвертый отправляет результат.
Преимущества:
- Упрощение разработки — каждый агент отвечает за свою задачу.
- Гибкость — изменения можно вносить точечно в конкретного агента.
- Масштабируемость — систему легко расширять, добавляя новых агентов.
- Повторное использование — агентов можно применять в других сценариях.
Почему не один универсальный агент
Может показаться, что проще создать одного агента с объемной инструкцией. Этот подход работает для простых задач, но в сложных сценариях он неэффективен. Если логика разветвленная, инструкции противоречат друг другу или нужно подключать новых исполнителей, универсальный агент начинает работать нестабильно:
- появляются «галлюцинации»;
- ошибки сложно диагностировать;
- инструкция становится слишком объемной и противоречивой.
Сравнение: один агент vs. MAS
| Один агент | MAS | |
|---|---|---|
| Логика | Общая, в рамках одного промта. | Разделена между отдельными агентами. |
| Поддержка | Усложняется при росте требований. | Легче изменять отдельных агентов. |
| Масштабируемость | Ограничена размером промта. | Легко добавить нового агента. |
| Переиспользуемость | Низкая. | Высокая. |
| Надежность | Зависит от одной модели. | Ошибка локализуется в рамках одного агента. |
Как устроена MAS
Координация агентов обычно происходит через workflow или специального агента-оркестратора, который управляет остальными.
Когда использовать MAS
Использовать MAS, если:
- У задачи много этапов с разной логикой.
- Требуются разные навыки (поиск, генерация, разметка).
- Сценарий может меняться или расширяться.
- Разные специалисты могут разрабатывать отдельных агентов.
Не использовать MAS, если:
- Один агент хорошо справляется с задачей.
- Нет жестких требований к масштабированию.
- Процесс достаточно однообразный и не требует экспертизы в разных областях.
Важно выбирать MAS только когда это действительно нужно. Если задача простая, один агент будет эффективнее и проще в поддержке.
Пример MAS
Решение через MAS:
Для анализа договора создается команда из трех специализированных агентов:
- Агент извлечения — обрабатывает файл и извлекает текст.
- Агент анализа рисков — ищет проблемные пункты и юридические риски.
- Агент анализа финансов — проверяет суммы, валюты и условия оплаты.
Роль оркестратора:
- Координирует работу агентов (сначала извлечение, затем параллельный анализ).
- Решает, какие агенты нужны в зависимости от типа договора.
- Объединяет результаты всех агентов в единый отчет.
- При обнаружении противоречий запрашивает повторный анализ.
Например, если агент рисков находит проблему с суммой, оркестратор может попросить агента финансов дополнительно проверить именно этот пункт.
Сравнение подходов на примере
Сравним все подходы на примере задачи по обработке документов.
| Аспект | Workflow | Агент | MAS |
|---|---|---|---|
| Гибкость к формату | Только PDF/DOCX | Любой формат, поддерживаемый платформой | Любой формат, поддерживаемый платформой |
| Адаптация к типу договора | Одинаково для всех | Универсальный подход | Специализированные агенты под тип |
| Параллельная обработка | Последовательная | Нет | Да (аналитики работают одновременно) |
| Обработка неясностей в тексте | Пропускает или выдает ошибку | Пытается интерпретировать самостоятельно | Привлекает нужного эксперта |
| Разрешение противоречий | Не предусмотрено | Ограниченное | Оркестратор координирует решение |
| Сложность внедрения | Простая | Средняя | Высокая |
| Качество анализа | Базовое | Хорошее | Экспертное (каждый агент — специалист) |
| Масштабируемость | Ограниченная | Хорошая | Отличная (легко добавить экспертов) |
Вывод: Выбор подхода зависит от требований к качеству, разнообразия задач и ресурсов на разработку.