Суть
- 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 агент» лекция предлагает градацию автономности — полезна, потому что «агентом» называют что угодно (от сложного промпта до целой системы с БД):
- Простая LLM — обычный чат: ввод → ответ, без принятия решений.
- Маршрутизация — появляется логика
if/elseна базе намерения пользователя (запрос → нужная база/ветка). Первый уровень «агентности»: решение принимает модель. - Использование инструментов — вызов функций/API (function calling) как часть ответа.
- Многошаговый агент — выполняет сценарий из нескольких действий перед финальным результатом.
Эта шкала уточняет «лестницу сложности» из основной части: переходы 1→2→3→4 — это и есть та самая постепенная агентизация, которую стоит включать только по необходимости. Верхний уровень соответствует Agentic RAG (агент сам управляет циклом retrieval).
Связано с
- AI Agent — что такое агент (вторая половина выбора)
- ReAct — цикл, делающий агент «недетерминированным»
- Agent Routing — внутри workflow можно роутить шаги на разные модели
- Agentic RAG — верхний уровень агентности (агент управляет retrieval-циклом)
- LangGraph vs LangChain — «граф vs цепочка» = тот же выбор на уровне фреймворка
Открытые вопросы
- критерий «исход не предопределён» на практике
- гибрид: workflow с одним агентным шагом