Запись архива

Агентные системы на практике: когда workflow, а когда свобода

Разбираем, почему большинство «агентных» решений на деле — это жёсткие цепочки, и когда осмысленный выбор между детерминированным workflow и свободным агентом даёт реальный выигрыш в production.

Схема сравнения workflow и агентной системы с инструментами
Схема сравнения workflow и агентной системы с инструментами
Journalists Protest against rising violence during march in Mexi | by Knight Foundation | openverse | by-sa

Термин «агентные системы» сегодня звучит из каждого второго анонса, но под ним скрывается диапазон решений — от простого вызова LLM с одним инструментом до сложных мультиагентных роев. Для инженера, который собирается внедрить агента в production, ключевой вопрос не в том, «как сделать агента», а в том, когда имеет смысл отпустить контроль, а когда лучше остаться в рамках детерминированного workflow.

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

Почему агентные системы требуют переосмысления

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

Именно здесь становится полезным агент: он сам решает, какой инструмент вызвать, когда остановиться и как интерпретировать результат. Но цена этой свободы — рост стоимости, latency и недетерминизм поведения.

Что говорят источники

Официальная документация Anthropic («Building effective agents», 2024) прямо рекомендует начинать с простейшего решения и только при необходимости добавлять «агентность»: «В большинстве случаев агентный подход — это overhead, а не преимущество». OpenAI в руководстве по function calling (2024) подчёркивает, что модель нужно снабжать не только описанием функций, но и чёткими инструкциями, когда их вызывать — иначе агент начинает «галлюцинировать» вызовы.

LangChain в своей концепции агентов (v0.2) выделяет отдельный класс «agent executor», который в цикле принимает решение, вызывает инструмент, получает результат и повторяет. Это классический loop, и его стабильность напрямую зависит от качества системного промпта и ограничения количества шагов.

Из сообщества стоит отметить работу Лилиан Вэнг (Lilian Weng, «LLM-powered Autonomous Agents», 2023), где сформулирована триада: профилирование, память и планирование. Это не production-рекомендация, а полезная рамка для понимания, что именно делает агента «автономным».

Практический шаблон: агент с инструментами

Для большинства production-задач достаточно одного агента с набором из 3–5 инструментов. Ниже — пример такого набора для типичного сценария «ассистент поддержки»:

Инструмент Назначение Когда вызывать
search_knowledge_base Поиск по документации Если вопрос содержит product-specific terms
get_order_status Статус заказа по ID Если ID указан в запросе
escalate_to_human Передача оператору Если модель не уверена или запрос содержит жалобу
calc_refund Расчёт возврата После подтверждения заказа

Такой агент принимает решение на каждом шаге, но ограничен фиксированным набором действий. Это даёт предсказуемость, но не блокирует нестандартные сценарии.

Ограничения и подводные камни

Первое — стоимость. Каждый цикл «мысль → действие → наблюдение» стоит как минимум один вызов LLM. Если задача требует 5–10 шагов, затраты могут превысить выгоду от автоматизации. Второе — latency. Агент не может ответить сразу, он тратит время на размышления. Для чата это может быть неприемлемо. Третье — отказоустойчивость. Если агент выбрал неверный инструмент — он может уйти в бесконечный цикл или дать неверный ответ. Нужны ограничители: max iterations, fallback-промпты, логирование каждого шага.

Важный момент: мультиагентные системы (два агента, которые общаются друг с другом) пока остаются экспериментальной областью. Даже примеры от AutoGPT и CrewAI показывают, что дополнительный уровень координации редко окупается на задачах, которые можно решить одним агентом.

Что проверить первым делом

Если вы планируете внедрять агентный workflow, начните с трёх шагов:

Запишите все возможные сценарии — какие инструменты потребуются, в каком порядке они могут быть вызваны, какие ошибки возможны.
2. Соберите простой chain — без агентного цикла, только последовательность вызовов. Если он покрывает 80% случаев — остановитесь.
3. Добавьте один agent loop — только для оставшихся 20%, с чётким ограничением шагов (например, максимум 3) и fallback-сообщением.

На практике именно такой подход — от простого к сложному — даёт стабильный результат. Агентные системы сильны не своей автономией, а умением встроиться в уже существующий workflow там, где это действительно необходимо.