Agent vs Workflow

Выбор между agentic workflow (LLM встроен в заранее заданный путь кода: step1 → step2 → step3) и AI-агентом (LLM сам динамически решает последовательность). Главное правило: начинай с простого, агентом делай только то, что нельзя предопределить.

Суть

  • Workflow — оркестрация LLM и инструментов через предопределённый code path. Разработчик пишет шаги; LLM — часть потока, но не управляет им. Детерминированно, предсказуемо, легко аудировать.
  • AI-агент — LLM сам управляет процессом и выбором инструментов; разработчик задаёт цель и tools (см. AI Agent, цикл ReAct). Гибко, но менее предсказуемо, дороже по latency.

Зачем это нужно

Агентизация повышает latency и стоимость, поэтому оправдана не всегда. По материалу: ~80% задач закрываются workflow. Неверный выбор = либо хрупкий «агент» там, где хватило бы скрипта, либо негибкий workflow на открытой задаче.

Как работает (когда что)

  • Workflow: задача понятна, сценариев мало, цена ошибки высокая, нужна предсказуемость и аудит. Пример: обработка заявок classify → route → reply → log.
  • Agent: открытая задача, много путей решения, решения зависят от контекста. Пример: deep research план → поиск → чтение → декомпозиция → отчёт.
  • Лестница сложности: один LLM-call + RAG → workflow → агент. Поднимайся только при необходимости.
  • То же различие на уровне фреймворков: линейная цепочка (LangChain LCEL) ≈ workflow; граф с ветвлениями/циклами (LangGraph) ≈ агент. Тезис «агенты — это графы, а не цепочки» — это и есть выбор «agent vs workflow», выраженный в коде (см. LangGraph vs LangChain).

Альтернативный взгляд: «4 уровня агентности»

Вместо бинарного «workflow vs агент» лекция предлагает градацию автономности — полезна, потому что «агентом» называют что угодно (от сложного промпта до целой системы с БД):

  1. Простая LLM — обычный чат: ввод → ответ, без принятия решений.
  2. Маршрутизация — появляется логика if/else на базе намерения пользователя (запрос → нужная база/ветка). Первый уровень «агентности»: решение принимает модель.
  3. Использование инструментов — вызов функций/API (function calling) как часть ответа.
  4. Многошаговый агент — выполняет сценарий из нескольких действий перед финальным результатом.

Эта шкала уточняет «лестницу сложности» из основной части: переходы 1→2→3→4 — это и есть та самая постепенная агентизация, которую стоит включать только по необходимости. Верхний уровень соответствует Agentic RAG (агент сам управляет циклом retrieval).

Связано с

  • AI Agent — что такое агент (вторая половина выбора)
  • ReAct — цикл, делающий агент «недетерминированным»
  • Agent Routing — внутри workflow можно роутить шаги на разные модели
  • Agentic RAG — верхний уровень агентности (агент управляет retrieval-циклом)
  • LangGraph vs LangChain — «граф vs цепочка» = тот же выбор на уровне фреймворка

Открытые вопросы

  • критерий «исход не предопределён» на практике
  • гибрид: workflow с одним агентным шагом