MAF v1 — Human-in-the-Loop (Python + .NET)
Pause a workflow for human input, resume it with the same request_id, and keep the caller-side contract simple across runs.
Read article
Solutions Architect specializing in Azure, AI, and enterprise cloud-native development. Writing about architecture, AI agents, and building things that scale.
Pause a workflow for human input, resume it with the same request_id, and keep the caller-side contract simple across runs.
Read article

Persist workflow state at superstep boundaries, reload snapshots in a fresh process, and continue without losing progress.

Use a centralized manager to pick speakers each round, compare round-robin and agent-driven strategies, and cap runaway loops.

Let a Triage agent route the conversation to Math or History specialists, handle handbacks, and guard against loops in production.
Read article
Use Magentic orchestration for autonomous planning: a manager keeps facts, delegates to workers, reassesses, and replans when stuck.

Wrap a ChatClientAgent as a workflow executor, chain two translators, and hide adapter plumbing behind AgentWorkflowBuilder.

Fan one input out to an expert panel, aggregate the responses, and keep wall-clock time bounded by the slowest branch cleanly.

Use SequentialBuilder or BuildSequential to pass one conversation through Writer, Reviewer, and Finalizer agents without hand-built adapters.

MCP solves the N×M integration problem between AI models and tools. What it is, how it works, and why it matters before your next AI feature.

Stand up a Python MCP server and consume it from Python and .NET MAF agents, including discovery and AITool wiring from one server.

Two kinds of workflow events — lifecycle and custom. Subscribe to the stream in Python and .NET, filter by type, and wire a live progress indicator.

Model deterministic workflows with executors as nodes, edges as routes, and a Pregel-style scheduler in Python and .NET.