Skip to main content

7. Рабочие процессы и агенты

Критический выбор

Во многих реальных проектах выбор между:

  • Простым скриптом
  • Детерминированным рабочим процессом
  • Традиционным чатботом
  • Системой RAG (Retrieval-Augmented Generation)
  • Полноценным автономным агентом

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

Четыре ключевых фактора

Чтобы сделать выбор яснее, рассмотрите:

  1. Вариабельность ваших входных данных
  2. Сложность требуемого рассуждения
  3. Ограничения производительности или соответствия
  4. Бремя постоянного обслуживания

Когда НЕ использовать foundation модель?

Используйте простой код, если:

  1. Входные данные полностью предсказуемы и каждый возможный выход может быть описан заранее

    • Пример: парсинг лог-файла с фиксированным форматом "YYYY-MM-DD HH:MM:SS—message" → регулярное выражение в Python или Go
  2. Требуется задержка на уровне миллисекунд

    • Пример: встроенная система, которая должна реагировать на данные датчиков в реальном времени
    • Нет времени для вызова API языковой модели
  3. Регулируемые домены требуют полностью детерминистической, проверяемой логики принятия решений

    • Примеры: медицинские устройства, авиация, определенные финансовые системы
    • Черные ящики нейронных моделей не удовлетворят требованиям сертификации

Вывод: Если входные данные детерминистичны, требуются строгие потребности в производительности или объяснимости, или домен проблемы статичен → простой код почти всегда предпочтительнее foundation модели.

Детерминированные рабочие процессы

Используйте детерминированный рабочий процесс, если:

  • Логика может быть выражена как конечный набор шагов или ветвей
  • Вы заранее знаете, где может потребоваться человеческое вмешательство или дополнительная обработка ошибок

Пример: Импорт счетов от небольшого набора поставщиков, каждый счет приходит в одном из трех известных форматов (CSV, JSON, PDF):

  • Маршрутизация каждого формата к соответствующему парсеру
  • Проверка несоответствий
  • Остановка для человеческого обзора, если поля не проходят простую сверку

Инструменты: Airflow, AWS Step Functions, хорошо структурированные наборы скриптов

Когда использовать: Когда вы можете перечислить все ветви решений заранее и вам нужен жесткий, проверяемый контроль над каждой ветвью.

Традиционные чатботы или RAG системы

Используйте RAG, если:

  • Ваша основная потребность — позволить пользователям задавать вопросы о базе знаний
  • Примеры: руководство по продукту, юридический архив, корпоративные вики

Как работает RAG:

  1. Встраивает документы в векторное хранилище
  2. Извлекает релевантные отрывки в ответ на запрос
  3. Генерирует связные, контекстно-зависимые ответы

Пример: Внутренняя IT-служба поддержки использует RAG для ответа "Как сбросить мои VPN-учетные данные?" путем получения последнего руководства по устранению неполадок и суммирования соответствующих шагов.

Ограничения RAG:

  • Не принимают независимых решений о последующих действиях (например, создание тикета или планирование обратного звонка)
  • Просто предоставляют информацию

Когда использовать: Когда задача в основном состоит в ответах на вопросы по структурированному или неструктурированному контенту, с ограниченной потребностью в внешних вызовах API или оркестрации решений.

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

Автономные агенты

Используйте автономного агента, если:

  • Ни простой код, ни жесткие рабочие процессы, ни RAG не достаточны
  • Входные данные неструктурированы, новы или сильно изменчивы
  • Требуется динамическое многошаговое планирование
  • Требуется непрерывное обучение на основе обратной связи

Пример 1: Служба поддержки клиентов

  • Получает свободные электронные письма с проблемами от "батарея моего ноутбука раздувается и может взорваться" до "меня продолжают выставлять счета за услуги, которые я не заказывал"
  • Правило-основанный рабочий процесс или RAG-система FAQ развалились бы под таким открытым разнообразием
  • Агент может:
    • Разобрать намерение
    • Извлечь релевантные сущности
    • Проконсультироваться с базой знаний
    • Составить соответствующий ответ
    • Эскалировать к человеку при необходимости
    • Все это без предварительного указания каждой возможной ветви

Пример 2: Управление цепочкой поставок

  • Агент, который принимает данные о запасах в реальном времени, сроки поставки поставщиков и прогнозы продаж, может динамически перепланировать графики отгрузок
  • Детерминированный рабочий процесс потребовал бы постоянных ручных обновлений для обработки новых исключений

Пример 3: Параллельные подзадачи

  • Агент операций безопасности одновременно:
    • Запрашивает API разведывательной информации об угрозах
    • Сканирует сетевую телеметрию
    • Выполняет анализ песочницы подозрительных двоичных файлов

Преимущества агентов:

  • Работают асинхронно
  • Переприоритизируют на основе данных в реальном времени
  • Избегают хрупкой природы "один шаг за раз" рабочих процессов или RAG систем

Стоимость: Чтобы оправдать более высокие вычислительные и затраты на обслуживание запуска foundation модели, вам нужен этот уровень:

  • Контекстного рассуждения
  • Параллельной оркестрации задач
  • Постоянного самосовершенствования

Сравнительная таблица

ХарактеристикаТрадиционный кодРабочий процессАвтономный агент
Структура входных данныхПолностью предсказуемые схемыВ основном предсказуемые с конечными ветвямиВысоко неструктурированные или новые входные данные
ОбъяснимостьПолная прозрачность; легко проверяемоЯвный аудит ветвь за ветвьюКомпоненты черного ящика, требующие дополнительных инструментов
ЗадержкаСверхнизкая задержкаУмеренная задержкаВысокая задержка
Адаптируемость и обучениеНетОграниченнаяВысокая (обучение на основе обратной связи)

Вопросы для принятия решения

Перед выбором спросите:

  1. Мои входные данные неструктурированы или непредсказуемы?
  2. Нужно ли мне многошаговое планирование, которое адаптируется к промежуточным результатам?
  3. Достаточно ли системы извлечения документов для информационных потребностей моих пользователей, или система должна решать и действовать автономно?
  4. Хочу ли я, чтобы эта система улучшалась со временем с минимальным человеческим вмешательством?
  5. Могу ли я терпеть задержку и бремя обслуживания foundation модели?

Краткие рекомендации

  • Фиксированное, детерминистическое преобразование → напишите простой код
  • Несколько известных ветвей + явные контрольные точки обработки ошибок → используйте детерминированный рабочий процесс
  • В основном ответы на вопросы на естественном языке по корпусу → выберите традиционный чатбот или архитектуру RAG
  • Высокая вариабельность, открытое рассуждение, динамические потребности в планировании или постоянные требования к обучению → инвестируйте в автономного агента