Workflow-паттерны LLM-систем

Abstract

Workflow задаёт поток выполнения программно. В отличие от агента, его основные переходы известны заранее; модель решает локальные задачи внутри узлов.

Chaining

extract → validate → transform → validate → publish

Используй, когда задачу можно разложить на фиксированные зависимые шаги. Контракт между узлами лучше задавать схемой, а не свободным текстом. Подробнее: Prompt Chaining.

Routing

input → classifier/router ─┬→ support workflow
                           ├→ billing workflow
                           └→ fallback

Подходит для различимых классов запросов. Router может быть правилом, небольшой моделью или основной LLM. Измеряй ошибки маршрутизации отдельно от качества downstream-веток.

Parallelization

Независимые ветки выполняются одновременно, затем результаты агрегируются:

  • sectioning: разные подзадачи или источники;
  • voting: несколько независимых оценок одного объекта.

Параллельность сокращает wall-clock time, но увеличивает расход и требует правил дедупликации, конфликтов и частичных отказов.

Orchestrator–workers

Оркестратор динамически формирует подзадачи, запускает workers и собирает результат. Это полезно, когда число и тип подзадач заранее неизвестны. Если decomposition фиксирована, обычный workflow проще.

Evaluator–optimizer

generator → evaluator → accept
                │
                └→ feedback → generator

Используй, когда критерии можно выразить рубрикой и итерация действительно повышает качество. Ограничивай число циклов и сохраняй лучший результат: evaluator тоже ошибается.

Общие компоненты

  • типизированные входы и выходы узлов;
  • timeouts, retries и idempotency;
  • бюджет calls, tokens, времени и денег;
  • state вне истории сообщений;
  • trace с версиями prompts, моделей и tools;
  • fallback для каждого внешнего компонента;
  • end-to-end evals, а не только тесты отдельных prompts.

Workflow или agent

ПризнакWorkflowAgent
Переходызаданы кодомвыбираются моделью
Предсказуемостьвышениже
Отладкапрощетребует trajectory traces
Лучший сценарийстабильный процесснепредсказуемая задача с обратной связью

Начинай с workflow. Agent loop добавляй, когда невозможно заранее описать полезную траекторию без взрыва правил.

Источник

Связанные заметки