Одна из болевых точек ранних рабочих процессов ИИ-агентов: они хрупкие. Долгосрочный многошаговый рабочий процесс, привязанный к одному процессу, означает, что перезапуск процесса = потеря состояния. Для простых демо это нормально. Для производственных нагрузок — нет.
Модель программирования рабочих процессов Microsoft Agent Framework теперь поддерживает устойчивое выполнение, основанное на фреймворке Durable Task, с хостингом в Azure Functions. Вот как работает модель программирования и почему история устойчивости важна.
Основные строительные блоки
Executor’ы — это фундаментальная единица работы. Каждый типизирован — принимает определённый ввод и производит определённый вывод:
using Microsoft.Agents.AI.Workflows;
internal sealed class OrderLookup()
: Executor<OrderCancelRequest, Order>("OrderLookup")
{
public override async ValueTask<Order> HandleAsync(
OrderCancelRequest message,
IWorkflowContext context,
CancellationToken cancellationToken = default)
{
// найти заказ, вернуть его
return new Order(Id: message.OrderId, ...);
}
}
Рабочие процессы соединяют executor’ы в направленные графы с помощью fluent builder’а. Фреймворк берёт на себя выполнение, поток данных между шагами и распространение ошибок.
Вы можете моделировать:
- Последовательные цепочки (шаг A → шаг B → шаг C)
- Параллельный fan-out/fan-in (запускать агентов A, B, C параллельно, агрегировать результаты)
- Условное ветвление
- Одобрения с участием человека (приостановить рабочий процесс, ждать внешнего сигнала)
In-Memory-раннер для локальной разработки
Начать работу просто:
dotnet add package Microsoft.Agents.AI
dotnet add package Microsoft.Agents.AI.Workflows
Основной пакет включает лёгкий in-process раннер. Никаких внешних зависимостей, никакой базы данных, никаких ресурсов Azure. Отлично подходит для локальной разработки и модульного тестирования.
Добавление устойчивости с Durable Task
Когда рабочий процесс должен пережить перезапуски процесса — потому что он долгосрочный, потому что имеет шаги с участием человека, потому что распределяется на множество параллельных вызовов агентов — in-memory раннер недостаточен.
Интеграция Durable Task в MAF хранит состояние рабочего процесса в Azure Storage. Если процесс перезапускается, рабочий процесс возобновляется с того места, где остановился. Модель программирования остаётся прежней; вы просто меняете раннер.
dotnet add package Microsoft.Agents.AI.Workflows.DurableTask
Те же executor’ы, тот же граф рабочего процесса — основан на устойчивом состоянии.
Хостинг в Azure Functions
Третий уровень — хостинг в Azure Functions. Ваш рабочий процесс становится Function-приложением: запускайте его через HTTP-эндпоинт, а устойчивая среда выполнения управляет масштабированием, состоянием и надёжностью.
Это означает, что мультиагентный рабочий процесс с параллельными вызовами, условными ветвями и человеческими одобрениями может масштабироваться в среде serverless Functions без пользовательского управления состоянием.
Почему это важно
Комбинация значима для реальных ИИ-систем:
- Параллельные вызовы агентов — одновременно распределять на несколько специализированных агентов без блокировки, агрегировать результаты когда все завершат
- Долгосрочные процессы — рабочие процессы с участием человека или внешними событиями могут приостанавливаться и возобновляться на протяжении часов или дней
- Масштабирование — Azure Functions масштабирует выполнение горизонтально; фреймворк Durable Task управляет координацией параллельного состояния
Если вы создаёте рабочие процессы MAF за пределами простых локальных демо, это путь к выполнению производственного качества.
Оригинальная публикация: Durable Workflows in the Microsoft Agent Framework
