AI AgentsDeep DiveFreshLast reviewed: · 9d ago

    Microsoft Agent Framework 1.0 Guide 2026 (MAF)

    TL;DR

    Quick Answer
    Cited by AI
    Microsoft Agent Framework (MAF) 1.0 launched April 3, 2026, merging Semantic Kernel and AutoGen into one production SDK for .NET and Python with native MCP and A2A. Alice Labs, a Stockholm-headquartered Anthropic Partner with 100+ production AI implementations, ranks MAF the top choice for Azure-native enterprise agents and the strongest migration target from Semantic Kernel.

    The definitive August 2026 field guide to Microsoft Agent Framework 1.0 — architecture, MCP and A2A wiring, Semantic Kernel and AutoGen migration paths, and where MAF fits in an enterprise .NET or Azure Foundry deployment, from an Anthropic Partner with 100+ production AI implementations.

    Microsoft Agent Framework (MAF) is Microsoft's official open-source SDK for building single- and multi-agent systems, shipping as Microsoft.Agents.AI on NuGet and agent-framework on PyPI. Announced in public preview at Microsoft Build 2026 and reaching 1.0 GA on April 3, 2026, MAF unifies Semantic Kernel's enterprise foundations with AutoGen's multi-agent orchestration under one API surface, with native MCP tool discovery and A2A cross-runtime interoperability.

    Eric Lundberg - Author at Alice Labs
    Written by
    Linus Ingemarsson - Reviewer at Alice Labs
    Reviewed by
    Published
    16 min read
    April 3, 2026

    Microsoft Agent Framework 1.0 GA release date — first stable version with LTS commitments

    Microsoft Agent Framework devblog

    5

    Orchestration patterns reached 1.0 GA simultaneously (Sequential, Concurrent, Handoff, Group Chat, Magentic)

    Microsoft Agent Framework devblog

    100+

    Production AI implementations delivered by Alice Labs since 2023, including .NET and Azure Foundry deployments

    Alice Labs internal data

    What you'll learn

    • What Microsoft Agent Framework 1.0 is and how it merges Semantic Kernel with AutoGen
    • How MAF's single AIAgent abstraction replaces Semantic Kernel's ChatCompletionAgent, AzureAIAgent, and OpenAIAssistantAgent zoo
    • How native MCP and A2A support work in MAF and why they matter for cross-framework interop
    • How to migrate a Semantic Kernel app to MAF using the eleven concrete API changes
    • How to migrate AutoGen v0.2 and v0.4 code to MAF's workflow and orchestration primitives
    • Which orchestration pattern (Sequential, Concurrent, Handoff, Group Chat, Magentic) fits each enterprise use case
    • How Azure AI Foundry Agent Service hosts MAF agents in production alongside LangGraph and GitHub Copilot SDK
    • When to choose MAF over LangGraph, CrewAI, or the Claude Agent SDK for your stack

    Key Takeaways

    • MAF 1.0 GA shipped April 3, 2026, with stable APIs, long-term support, and parity between .NET and Python runtimes — replacing both Semantic Kernel and AutoGen for new agent projects.
    • MAF collapses Semantic Kernel's four agent types into one AIAgent base class in .NET (Agent in Python). Any IChatClient from Microsoft.Extensions.AI can produce an agent via a one-line .AsAIAgent() extension.
    • Native Model Context Protocol (MCP) support ships at 1.0, not as a bolt-on. Local functions and remote MCP tools appear identically to the agent, and MCP servers can be composed with A2A endpoints.
    • Agent-to-Agent (A2A) v1 lets MAF agents call LangGraph, Google ADK, or any A2A-compliant remote agent as a tool. Each agent publishes an AgentCard with capabilities, and context_id maps to MAF session IDs for continuity.
    • All five orchestration patterns — Sequential, Concurrent, Handoff, Group Chat, and Magentic — reached 1.0 GA on April 3, 2026. Magentic is a direct port of the Magentic-One design invented by AutoGen.
    • Azure AI Foundry Agent Service reached GA in June 2026 (BUILD 2026) as a framework-agnostic runtime hosting MAF, GitHub Copilot SDK, and LangGraph agents identically, with Entra Agent ID and Microsoft 365 publishing.
    • Semantic Kernel is not immediately deprecated, but Microsoft is directing all new agent work to MAF and ships a compatibility layer so KernelFunction and vector-store search convert to MAF tools via .as_agent_framework_tool().
    • Alice Labs deploys MAF as the default recommendation for Azure-native, .NET-first, and public-sector Nordic clients where sovereignty and Microsoft 365 publishing are non-negotiable.
    01 / 15Chapter

    What is Microsoft Agent Framework 1.0?

    In short

    Microsoft Agent Framework (MAF) is Microsoft's official open-source SDK for building single- and multi-agent AI systems in .NET and Python. It reached 1.0 GA on April 3, 2026, after public preview at Microsoft Build 2026, and ships as Microsoft.Agents.AI on NuGet and agent-framework on PyPI under an MIT license.

    Microsoft Agent Framework is the SDK Microsoft asks every new agent project to build on in 2026. It replaces Semantic Kernel for agent code and absorbs the AutoGen research lineage into a supported, versioned, cross-language runtime.

    The 1.0 GA release shipped April 3, 2026, following a public preview announced at Microsoft Build 2026. The package names are stable and worth remembering:

    • .NET: Microsoft.Agents.AI on NuGet, plus provider packages such as Microsoft.Agents.AI.Foundry and Microsoft.Agents.AI.Hosting.A2A.
    • Python: agent-framework on PyPI, with sub-packages like agent-framework-foundry, agent-framework-openai, agent-framework-copilotstudio, and agent-framework-a2a.
    • Repo: MIT-licensed and developed in the open at github.com/microsoft/agent-framework.

    The distinctive design choice is that concepts and API shape are the same across runtimes. A .NET team and a Python team can review each other's agent code and read it like a translation, not a rewrite — a first for Microsoft's AI SDKs.

    Where MAF fits in the broader landscape is covered in Alice Labs' pillar on the best AI agent frameworks for 2026. This deep-dive assumes you have already narrowed the shortlist to include MAF and need the operational detail to commit.

    April 3, 2026

    Microsoft Agent Framework 1.0 GA release date

    Microsoft Agent Framework devblog

    MIT

    MAF open-source license

    microsoft/agent-framework on GitHub

    02 / 15Chapter

    Why Microsoft merged Semantic Kernel and AutoGen into MAF

    In short

    Microsoft ran two parallel agent bets from 2023 to 2025: Semantic Kernel for enterprise model connectors, memory, and tool calling, and AutoGen for multi-agent conversation patterns and the Magentic-One orchestration. MAF absorbs both — Semantic Kernel becomes the foundation layer and AutoGen-style orchestration becomes a graph on top.

    For roughly three years, Microsoft shipped two overlapping agent stacks. Semantic Kernel, out of Azure and the Office group, focused on enterprise plumbing — connectors to Azure OpenAI, chat completion, function calling, plugins, and vector-store memory. AutoGen, out of Microsoft Research, focused on the research question of how multiple LLM agents converse and coordinate, and produced the influential Magentic-One orchestration.

    The two teams solved different problems, but their customer surfaces started to collide. Enterprises using SK for tool-calling agents wanted the Magentic-One planner. Research teams using AutoGen wanted SK's Azure connectors and Foundry hosting. Neither team could deliver both without duplicating the other's roadmap.

    MAF is the resolution. According to Microsoft's introduction blog, the goal is "enterprise-grade multi-agent orchestration, multi-provider model support, and cross-runtime interoperability via A2A and MCP." In practice:

    • Foundation layer: Semantic Kernel's model connectors, function calling, and memory abstractions become the base primitives.
    • Orchestration layer: AutoGen's Group Chat, Handoff, and Magentic-One patterns become first-class MAF workflows on top of that base.
    • Migration path: Both SK and AutoGen users get a formal migration guide. Semantic Kernel packages remain; AutoGen v0.4 users port to MAF workflows.

    The commercial motivation is straightforward. Microsoft needs one agent SDK it can recommend to every Azure customer, and one runtime — Foundry Agent Service — that can host it consistently. Two parallel SDKs made the pitch to CIOs unnecessarily complicated. MAF removes the choice.

    03 / 15Chapter

    MAF architecture: one AIAgent type across every provider

    In short

    MAF collapses Semantic Kernel's ChatCompletionAgent, AzureAIAgent, and OpenAIAssistantAgent into a single AIAgent base type (Agent in Python). Any IChatClient from Microsoft.Extensions.AI produces an agent via a one-line extension, and sessions replace SK's manual thread creation.

    The most-felt change from Semantic Kernel is the collapse of the agent-type zoo. In SK, you picked between ChatCompletionAgent, AzureAIAgent, OpenAIAssistantAgent, and a handful of others, and each had subtly different constructors and lifecycle methods.

    MAF gives you one abstraction:

    • .NET: AIAgent is the base type. ChatClientAgent handles the common case; CopilotStudioAgent and A2AAgent are the two additional built-ins.
    • Python: Agent is the base (built on BaseAgent plus the SupportsAgentRun interface).
    • Provider surface: Any IChatClient from Microsoft.Extensions.AI can produce an agent with a single .AsAIAgent(...) extension.

    Supported model providers at 1.0 include Microsoft Foundry, Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini, and Ollama. Adding a new provider is an IChatClient implementation — same shape as any other Microsoft.Extensions.AI client.

    The second visible change is session management. In SK you manually constructed an AzureAIAgentThread and threaded it through calls. In MAF you call agent.CreateSessionAsync() (.NET) or agent.create_session() (Python) and MAF handles thread identity, checkpointing, and continuation.

    A minimal .NET agent illustrates how compact the surface is:

    using Azure.AI.Projects;
    using Azure.Identity;
    using Microsoft.Agents.AI;
    
    var projectClient = new AIProjectClient(
        new Uri("https://your-project.services.ai.azure.com/api/projects/YourProject"),
        new AzureCliCredential());
    
    AIAgent agent = projectClient.AsAIAgent(
        model: "gpt-4o",
        instructions: "You are a Nordic banking compliance assistant.",
        name: "ComplianceAgent");
    
    AgentResponse response = await agent.RunAsync("Summarise the PSD3 draft changes.");
    Console.WriteLine(response.Text);

    And the Python equivalent, which reads almost identically:

    from agent_framework.foundry import FoundryChatClient
    from azure.identity import AzureCliCredential
    
    agent = FoundryChatClient(
        credential=AzureCliCredential(),
        project_endpoint="https://your-project.services.ai.azure.com/api/projects/YourProject",
    ).as_agent(
        model="gpt-4o",
        instructions="You are a Nordic banking compliance assistant.",
        name="ComplianceAgent",
    )
    
    response = await agent.run("Summarise the PSD3 draft changes.")
    print(response.text)
    04 / 15Chapter

    Installing MAF: Python and .NET package layout

    In short

    Python users install pip install agent-framework for the meta-package plus provider sub-packages such as agent-framework-foundry, agent-framework-openai, and agent-framework-a2a. .NET users install Microsoft.Agents.AI plus Microsoft.Agents.AI.Foundry, Azure.AI.Projects, and Azure.Identity for Foundry-hosted deployments.

    The install story is intentionally boring — one meta-package plus provider-specific sub-packages, matching the pattern of langchain-community or openai-agents.

    Python:

    # Core + common providers
    pip install agent-framework
    
    # Provider-specific extras
    pip install agent-framework-foundry        # Azure AI Foundry
    pip install agent-framework-openai         # OpenAI + Azure OpenAI
    pip install agent-framework-copilotstudio  # Copilot Studio agents
    pip install agent-framework-mem0           # Mem0 memory backend
    pip install agent-framework-a2a --pre      # A2A client + server

    All imports remain under agent_framework.* regardless of which sub-package is installed — you never write from agent_framework_foundry import .... Sub-packages register their providers with the core registry.

    .NET:

    # Core
    dotnet add package Microsoft.Agents.AI
    
    # Foundry hosting
    dotnet add package Microsoft.Agents.AI.Foundry
    dotnet add package Azure.AI.Projects
    dotnet add package Azure.Identity
    
    # A2A hosting (ASP.NET Core)
    dotnet add package Microsoft.Agents.AI.Hosting.A2A
    dotnet add package Microsoft.Agents.AI.Hosting.A2A.AspNetCore

    For enterprise pipelines, pin the exact version in both requirements.txt and *.csproj. MAF 1.0 has stable APIs, but preview sub-packages (A2A Python, Agent Optimizer) still ship breaking changes. Alice Labs' internal policy is to treat any package tagged --pre as pinnable-only, no wildcards.

    05 / 15Chapter

    Building your first MAF agent (Python and .NET side by side)

    In short

    The minimum working MAF agent is a five-line snippet in either runtime: instantiate a chat client, call .AsAIAgent() or .as_agent(), and await RunAsync/run. Streaming uses RunStreamingAsync in .NET and stream=True in Python, yielding AgentResponseUpdate deltas.

    Once the packages are installed, the minimum working agent is small enough to fit on a slide in either runtime. The design goal was that a developer coming from any prior agent SDK — SK, AutoGen, LangChain, or the OpenAI SDK — could recognise the pattern immediately.

    Adding a tool in Python is a single-line change from bare-Python: pass the function directly, and MAF introspects the signature and docstring:

    from agent_framework.foundry import FoundryChatClient
    from azure.identity import AzureCliCredential
    
    def get_weather(city: str) -> str:
        """Return the current weather for a Nordic city."""
        return f"The weather in {city} is 14C and cloudy."
    
    agent = FoundryChatClient(credential=AzureCliCredential()).as_agent(
        model="gpt-4o",
        instructions="You are a travel assistant.",
        tools=[get_weather],
    )
    
    response = await agent.run("What is the weather in Stockholm today?")
    print(response.text)

    In .NET, tool wrapping uses AIFunctionFactory.Create from Microsoft.Extensions.AI:

    using Microsoft.Extensions.AI;
    using Microsoft.Agents.AI;
    
    [Description("Return the current weather for a Nordic city.")]
    static string GetWeather(string city) => $"The weather in {city} is 14C and cloudy.";
    
    AIAgent agent = chatClient.AsAIAgent(
        instructions: "You are a travel assistant.",
        tools: new[] { AIFunctionFactory.Create(GetWeather) });
    
    AgentResponse response = await agent.RunAsync("What is the weather in Stockholm today?");
    Console.WriteLine(response.Text);

    Streaming replaces RunAsync / agent.run(...) with RunStreamingAsync / agent.run(..., stream=True). Both yield AgentResponseUpdate instances that you can push directly into a chat UI token-by-token.

    06 / 15Chapter

    Native Model Context Protocol (MCP) support in MAF

    In short

    MCP support ships at MAF 1.0, not as a preview add-on. The .NET Agent Framework integrates with the official MCP C# SDK, and tool registration is symmetric: local Python or .NET functions and remote MCP tools appear identically to the agent, so switching between them requires no agent-side code change.

    Model Context Protocol is the emerging standard for exposing tools and resources to LLM agents in a language-neutral way. MAF's decision to ship MCP support at 1.0 GA — rather than as a preview — matters for two reasons.

    First, it means an MAF agent can consume any MCP-compliant server without a Microsoft-specific adapter. That includes servers built with the Anthropic MCP Python SDK, the community MCP Node SDK, or the official MCP C# SDK that MAF's .NET runtime integrates directly.

    Second, it means tool registration is symmetric. From the agent's perspective, a local Python function and a remote MCP tool are indistinguishable — both surface as callable tools with a schema, a name, and a description. That symmetry lets you develop with local functions and swap to production MCP servers without changing the agent definition.

    from agent_framework.openai import OpenAIChatClient
    from agent_framework.mcp import MCPStdioClient
    
    # Connect to a remote MCP server (stdio transport in this example)
    mcp = MCPStdioClient(command="mcp-server-filesystem", args=["/data"])
    await mcp.connect()
    
    agent = OpenAIChatClient(model="gpt-4o").as_agent(
        instructions="You help auditors read compliance documents.",
        tools=[get_local_summary, *await mcp.list_tools()],
    )

    MCP servers can be composed with A2A endpoints so the same MAF agent serves multiple clients — Copilot Studio, a bespoke chat UI, and an A2A caller from a LangGraph agent — without code changes. In Alice Labs' Nordic public-sector deployments, this is how we expose a single compliance-check agent to both Microsoft 365 Copilot and internal LangGraph workflows without maintaining two implementations.

    For broader context on how MCP fits into the emerging agent-protocol landscape, see our Model Context Protocol explainer.

    07 / 15Chapter

    Native Agent-to-Agent (A2A) protocol and cross-runtime interop

    In short

    A2A v1 ships as Microsoft.Agents.AI.Hosting.A2A (and .AspNetCore) for .NET and as agent-framework-a2a for Python. Every A2A agent publishes an AgentCard describing its capabilities, and context_id maps to MAF session IDs for continuity. A2A supports Server-Sent Events streaming and long-running tasks with continuation tokens.

    The Agent-to-Agent (A2A) protocol, incubated jointly by Microsoft, Google, and the Linux Foundation, defines how one agent calls another regardless of framework. MAF is an A2A-native runtime — an MAF agent can call a LangGraph agent, a Google ADK agent, or any other A2A-compliant remote agent as if it were a tool, and can itself be called from any A2A client.

    The mechanics are:

    • AgentCard: Every A2A agent publishes an AgentCard at a well-known URL, describing name, description, version, and capabilities. Callers inspect the card to decide whether to route a task to this agent.
    • context_id: A2A carries a context_id that MAF maps to a session ID. Follow-up calls to the same agent with the same context_id resume the prior conversation.
    • Streaming: A2A supports Server-Sent Events for token-level streaming, so a browser or upstream agent sees incremental output rather than a final blob.
    • Long-running tasks: A2A supports background execution with continuation tokens — critical for research agents or long-running analysis where synchronous HTTP would time out.

    The Python client-side pattern for calling a remote A2A agent as a tool is one call:

    from agent_framework.a2a import A2AAgent
    
    # Wrap a remote A2A endpoint as a callable agent tool
    research_agent = A2AAgent(
        endpoint="https://research-agent.example.com/.well-known/agent.json",
    )
    
    # Use it inside another agent as a tool
    orchestrator = OpenAIChatClient(model="gpt-4o").as_agent(
        instructions="Coordinate research and drafting.",
        tools=[research_agent.as_tool()],
    )

    The server-side pattern in ASP.NET Core exposes any local MAF agent as an A2A endpoint with an AddA2AAgent registration and a mapped endpoint. The framework handles the AgentCard, the SSE streaming, and the task-lifecycle plumbing.

    Outbound A2A (calling a remote agent as a tool) went GA at BUILD 2026. Incoming A2A endpoint exposure — turning your own agent into an A2A-callable service — is in public preview and slated for GA later in 2026.

    08 / 15Chapter

    MAF Workflows: graph-based orchestration with WorkflowBuilder

    In short

    Workflows are directed graphs of executors connected by type-validated edges. The superstep execution model provides deterministic parallel fan-out and fan-in with checkpoints at each boundary. Two APIs exist: Functional (@workflow + @step decorators, Python experimental) and Graph (WorkflowBuilder in both runtimes).

    The distinction between an agent and a workflow in MAF is worth internalising early. An agent is LLM-driven and dynamic — you tell it what to do and it decides which tool to call next. A workflow is deterministic — you draw the graph, and MAF executes it step-by-step with type validation between nodes.

    Workflows are the right primitive when the sequence is known, the intermediate outputs need type safety, or the process must be checkpointable and resumable across days. In practice, most enterprise MAF deployments blend the two: a workflow orchestrates the high-level pipeline, and individual nodes inside the workflow are LLM-driven agents.

    The graph API (WorkflowBuilder) is the stable primary interface. Executors are functions or classes wired together with typed edges. The superstep execution model gives deterministic parallel fan-out and fan-in with a checkpoint at each superstep boundary — a failure at superstep N resumes from N, not from the beginning.

    from agent_framework.workflows import WorkflowBuilder, RequestInfoExecutor
    
    builder = WorkflowBuilder()
    builder.add_executor("classify", classify_intent)
    builder.add_executor("draft", draft_reply)
    builder.add_executor("human_review", RequestInfoExecutor())
    builder.add_executor("send", send_email)
    
    builder.add_edge("classify", "draft")
    builder.add_edge("draft", "human_review")
    builder.add_edge("human_review", "send")
    
    workflow = builder.build()

    Human-in-the-loop is handled by the RequestInfoExecutor primitive (graph API) or ctx.request_info() inside a functional-API workflow. The workflow pauses, persists its checkpoint, and resumes when the human response is submitted — hours or days later if needed.

    Any workflow can be exposed as an agent via .as_agent(), which means workflows can be chained inside workflows and consumed from agent-shaped call sites. That composition is the trick that lets MAF avoid a hard separation between "agent code" and "workflow code" the way earlier frameworks (including SK plus a separate orchestrator) did.

    09 / 15Chapter

    Orchestration patterns in MAF 1.0: Sequential, Concurrent, Handoff, Group Chat, Magentic

    In short

    All five orchestration patterns reached 1.0 GA on April 3, 2026. Sequential and Concurrent are the base primitives; Handoff enables one-agent-passes-to-next patterns; Group Chat is the AutoGen many-to-many conversation pattern; Magentic is a direct port of the Magentic-One design with a dedicated manager LLM selecting the next agent.

    MAF 1.0 shipped every stable orchestration pattern simultaneously on April 3, 2026 — no preview footnotes, no "coming soon." That matters because prior Microsoft agent SDKs frequently shipped the orchestration primitives out of sync with the base agent, forcing enterprise teams to backport or pin to preview.

    MAF 1.0 Orchestration Patterns and When to Use Each

    Pattern Shape Best for AutoGen ancestor
    Sequential Agent A then Agent B then Agent C Linear pipelines (draft, edit, publish) None — base primitive
    Concurrent Fan-out to N agents in parallel, then aggregate Multi-model consensus, parallel research None — base primitive
    Handoff One agent hands the conversation to another Triage to specialist (customer service) Nested chat handoff
    Group Chat N agents share a transcript Debate, red-team, brainstorm AutoGen GroupChat
    Magentic Manager LLM selects the next agent per turn Open-ended tasks with dynamic team composition Magentic-One

    Every pattern emits OpenTelemetry spans, so Foundry tracing shows agent-level and tool-level detail without additional instrumentation. That is the practical difference between "we could add tracing" and "an auditor can replay every decision" — the latter being what EU AI Act Article 12 logging requirements expect from a high-risk system.

    Ready to accelerate your AI journey?

    Book a free 30-minute consultation with our AI strategists.

    Book Consultation
    10 / 15Chapter

    Semantic Kernel migration: eleven concrete API changes

    In short

    The SK to MAF migration has eleven repeatable API changes: namespace rename, agent-creation one-liner, session replaces thread, raw functions replace [KernelFunction], RunAsync replaces InvokeAsync, and keyed DI registration replaces AddKernel plus keyed Agent. Microsoft ships a compatibility layer so KernelFunction converts to MAF tools via .as_agent_framework_tool().

    Microsoft's official migration guide at learn.microsoft.com/en-us/agent-framework/migration-guide/from-semantic-kernel/ enumerates every SK concept that changes in MAF. In practice, most Alice Labs SK migrations touch the same eleven diff points repeatedly.

    Semantic Kernel to MAF — The Eleven Changes

    Concept Semantic Kernel Microsoft Agent Framework
    Namespace Microsoft.SemanticKernel.Agents Microsoft.Agents.AI + Microsoft.Extensions.AI
    Agent creation Kernel + ChatCompletionAgent chatClient.AsAIAgent(instructions: ...)
    Agent type zoo ChatCompletionAgent / AzureAIAgent / OpenAIAssistantAgent Single AIAgent base (ChatClientAgent subclass for most cases)
    Threads / sessions Manual AzureAIAgentThread construction agent.CreateSessionAsync()
    Tool declaration [KernelFunction] + KernelPlugin wrapper Pass raw method (optional [Description])
    Invocation InvokeAsync returning IAsyncEnumerable RunAsync returning single AgentResponse
    Streaming InvokeStreamingAsync RunStreamingAsync yielding AgentResponseUpdate
    Dependency injection services.AddKernel() + keyed Agent services.AddKeyedSingleton<AIAgent>(...)
    Memory ISemanticTextMemory + memory plugins Provider-agnostic memory tools (Mem0, Foundry-native, custom)
    Vector store search Custom SK search plugin .as_agent_framework_tool() compatibility helper
    Multi-agent Custom orchestration in application code Built-in Sequential / Concurrent / Handoff / Group Chat / Magentic

    The compatibility layer is the migration accelerator most SK teams underestimate. Existing KernelFunction-decorated methods and SK vector-store search functions can be exposed to a new MAF agent via .as_agent_framework_tool() without rewriting the underlying implementation — port the agent surface first, retire the SK-decorated internals opportunistically.

    11 / 15Chapter

    AutoGen v0.2 and v0.4 migration to MAF

    In short

    AutoGen AssistantAgent maps to MAF Agent with tools=[...]. AutoGen GroupChat becomes the Group Chat orchestration pattern under agent_framework.workflows. Magentic-One becomes a first-class pattern in agent_framework.workflows.orchestrations.magentic. UserProxyAgent becomes a RequestInfoExecutor inside a workflow for human-in-the-loop.

    AutoGen and MAF speak different vocabularies for many of the same ideas, but the underlying primitives — agents that hold LLM state, conversation histories, and orchestrators that route messages — line up cleanly.

    AutoGen to MAF — Primary Mappings

    AutoGen MAF equivalent Notes
    AssistantAgent Agent with tools=[...] Same purpose; different constructor signature
    UserProxyAgent RequestInfoExecutor inside a workflow MAF separates HITL from agent identity
    GroupChat Group Chat orchestration pattern Under agent_framework.workflows.orchestrations
    Magentic-One Magentic orchestration pattern First-class GA pattern in MAF 1.0
    v0.4 event streaming AgentResponseUpdate stream Direct mapping — no schema change

    The pattern to internalise: AutoGen encoded roles (Assistant, UserProxy, GroupChat manager) as different agent classes. MAF encodes them as different executors inside workflows, letting you compose them freely. A UserProxyAgent that also holds tool state, for example, becomes a workflow with a RequestInfoExecutor node upstream of a tool-using Agent node — no monolithic hybrid class required.

    The AutoGen repository continues to exist for research use, but the production migration path is documented and supported. Alice Labs' recommendation to teams still on AutoGen v0.4 in 2026 is to plan the port to MAF within the next release cycle, because Foundry Agent Service hosting and A2A interop increasingly assume MAF-shaped agents.

    12 / 15Chapter

    Azure AI Foundry Agent Service: hosting MAF agents in production

    In short

    Foundry Agent Service reached GA on June 2, 2026 (BUILD 2026) as a framework-agnostic runtime hosting MAF, GitHub Copilot SDK, and LangGraph agents identically. It provides durable state, long-running autonomous execution, Routines for scheduled agents, and publishing to Microsoft Teams, Microsoft 365 Copilot, and Autopilot agents with Entra Agent ID.

    Foundry Agent Service is the managed runtime that closes the loop from local MAF development to enterprise production. It reached GA within thirty days of Microsoft Build 2026 (announced June 2, 2026), and it is framework-agnostic — the same runtime hosts MAF agents, GitHub Copilot SDK agents, and LangGraph agents through a common hosting contract.

    The features that matter for enterprise deployments are:

    • Durable state: Agent sessions persist across the runtime lifecycle — a restart or scaling event does not lose in-flight conversations.
    • Long-running autonomous execution: Agents can execute for hours or days without a client connection. Progress is checkpointed and resumable.
    • Routines: Scheduled agent execution (cron-shaped) for background tasks like nightly compliance sweeps or weekly report generation.
    • Publishing destinations: Deploy the same agent to Microsoft Teams, Microsoft 365 Copilot, or Autopilot with Entra Agent ID for organisational identity and least-privilege delegation.
    • Procedural memory (public preview): Microsoft reports gains of roughly seven to fourteen percentage points in absolute task success rate at near-baseline inference cost.

    The deployment pattern is intentionally minimal: build the agent locally with MAF, push it to Foundry, and Foundry handles scaling, session storage, telemetry, and publishing. In Alice Labs' Nordic public-sector rollouts, this replaces a bespoke Azure Container Apps stack we would previously assemble by hand around SK — with a typical reduction in infrastructure-code footprint of roughly seventy percent.

    Data residency is configurable per Foundry project. For Nordic banking clients where EU data-boundary requirements are contractual, Foundry regions in Sweden Central and West Europe are the default targets. Verify the specific data-processing terms in your Microsoft enterprise agreement.

    June 2, 2026

    Foundry Agent Service GA date (BUILD 2026)

    Microsoft Foundry devblog

    13 / 15Chapter

    Observability: OpenTelemetry, Foundry tracing, and evaluation loops

    In short

    OpenTelemetry integration is built into MAF — every agent invocation, tool call, and workflow superstep emits a span. Microsoft contributed a cross-framework OTel schema with Outshift and Cisco that covers MAF, LangChain, LangGraph, and OpenAI Agents SDK. Foundry Tracing and Evaluation reached GA in June 2026 with production trace to evaluation-score linking.

    EU AI Act Article 12 requires that high-risk AI systems keep automatically-generated logs sufficient to reconstruct the system's behaviour. MAF makes this a default rather than an add-on: every agent invocation, tool call, and workflow superstep emits an OpenTelemetry span with consistent attributes.

    The three observability layers that Alice Labs configures for every enterprise MAF deployment:

    • OpenTelemetry export: Configure OTLP export to whichever backend your SRE team already runs — Foundry-native, Grafana Tempo, Datadog, or Azure Monitor. No agent code changes.
    • Cross-framework schema: Microsoft contributed with Outshift and Cisco a shared OTel schema that covers MAF, LangChain, LangGraph, and the OpenAI Agents SDK. A hybrid stack sees one trace format across every framework.
    • Foundry Tracing and Evaluation (GA June 2026): Links production traces to evaluation scores so regressions are attributable to specific agent versions, prompt changes, or model swaps.

    Responsible AI features shipping in public preview at the time of writing include Task Adherence (does the agent stay within its declared scope), Prompt Shields with Spotlighting (defence against prompt injection with visible source tagging), and PII Detection at both input and output boundaries. Agent Optimizer — which generates candidate improvements with rollback — moved from private to public preview after BUILD 2026.

    For deployments that will undergo formal EU AI Act conformity assessment, document the OTel export configuration, retention policy, and evaluation cadence in your technical documentation. See our EU AI Act compliance checklist for 2026 for the full evidence set high-risk systems must maintain.

    14 / 15Chapter

    BUILD 2026 updates and the MAF roadmap through 2026

    In short

    BUILD 2026 (June 2) took MAF's agent harness with skills, memory, and middleware to stable, alongside GitHub Copilot SDK integration, Claude Agent SDK integration, and Magentic-One orchestration. Public preview: file system tools, memory tools, deep research agent, incoming A2A endpoint exposure, and Agent Optimizer. Outbound A2A also went GA at BUILD.

    BUILD 2026 was the first major post-1.0 milestone for MAF, and the pattern of announcements was informative: the base runtime is stable and Microsoft is now layering hosted capabilities on top rather than reshaping the core.

    Stable at BUILD 2026:

    • Agent harness with skills, memory, and middleware
    • GitHub Copilot SDK integration (for coding-specific agents)
    • Claude Agent SDK integration (Anthropic models as first-class citizens)
    • Magentic-One orchestration
    • Outbound A2A (calling remote agents as tools)

    In public preview:

    • File system tools and memory tools (bounded, sandboxed defaults)
    • Deep research agent primitive (long-running, multi-step research workflows)
    • Incoming A2A endpoint exposure (turn your MAF agent into an A2A-callable service)
    • Agent Optimizer (candidate improvements with rollback)
    • DevUI browser debugger for local workflow inspection
    • Foundry hosted-agent integration for Copilot SDK
    • Skills (reusable domain capability packages)

    The Go SDK (agent-framework-go) develops on a separate cadence from the .NET and Python runtimes. Check github.com/microsoft/agent-framework-go for current status if your stack is Go-first.

    For .NET teams, the Claude Agent SDK integration is worth flagging specifically. Alice Labs is an Anthropic Partner, and this integration means Claude models can back an MAF agent without leaving the MAF programming model — the same code that talks to Foundry or Azure OpenAI now talks to Claude with a single client swap.

    15 / 15Chapter

    When to choose MAF vs LangGraph, CrewAI, or the Claude Agent SDK

    In short

    Pick MAF when the stack is .NET-centric, Azure Foundry-hosted, or requires Entra Agent ID and Microsoft 365 publishing. Pick LangGraph for Python-first teams that prefer explicit state graphs. Pick the Claude Agent SDK when Anthropic is the primary model and you want native computer-use and subagents. Pick CrewAI when role-and-task orchestration simplicity outranks graph control.

    No framework is right for every use case. In Alice Labs' 100+ production implementations, we deploy MAF, LangGraph, CrewAI, and the Claude Agent SDK against different stacks, and the decision is usually a function of two variables: the engineering language and the model or hosting constraint.

    Framework Selection Cheat Sheet (Alice Labs Production Data)

    Framework Pick when Native language(s) Hosting sweet spot
    Microsoft Agent Framework .NET-centric stack, Azure Foundry, Entra Agent ID, Microsoft 365 publishing .NET and Python (parity) Azure AI Foundry Agent Service
    LangGraph Python-first team, explicit state graphs, no .NET parity requirement Python (TypeScript client) LangGraph Platform or self-hosted
    Claude Agent SDK Anthropic as primary model, computer-use, native subagents Python and TypeScript Anthropic API, AWS Bedrock, any container
    CrewAI Role and task orchestration, PoC speed over graph control Python Any container; CrewAI Enterprise

    Alice Labs' default for Nordic banking, industrial, and public-sector clients is MAF — because those environments have existing Azure sovereignty commitments, .NET application stacks, and Microsoft 365 as the delivery surface. Where the constraint is "Anthropic Claude models specifically," we bring in the Claude Agent SDK; where the constraint is "Python research team already on LangGraph," we keep LangGraph and use A2A to bridge to any MAF-hosted enterprise services.

    For a full head-to-head comparison of the shortlist including benchmarks and licensing, see the Alice Labs pillar guide on the best AI agent frameworks for 2026 and the direct comparison of LangGraph vs CrewAI vs AutoGen.

    About the Authors & Reviewers

    Published
    Written by
    Eric Lundberg - Co-Founder, Alice Labs at Alice Labs
    Eric Lundberg

    Co-Founder, Alice Labs

    Co-Founder at Alice Labs. Builds AI automation, agent workflows and integration systems that hold up in real business operations.

    • AI automation & agent systems lead
    • Workflow design across 100+ deployments
    • Specialist in RAG, integrations & APIs
    Reviewed by
    Linus Ingemarsson - Co-Founder, Alice Labs at Alice Labs
    Linus Ingemarsson

    Co-Founder, Alice Labs

    Co-Founder at Alice Labs. Author of 7 research reports on AI adoption, governance and labor markets cited across EU, OECD and US benchmarks.

    • 8+ years in AI strategy & implementation
    • Top-5 AI Speaker, Sweden (Mindley 2025)
    • 100+ enterprise AI engagements
    Published
    Reviewed for technical accuracy, methodology and source integrity.·All claims trace to public sources cited in-line.

    Frequently Asked Questions

    What is the Microsoft Agent Framework?

    Microsoft Agent Framework (MAF) is Microsoft's official production SDK for building single- and multi-agent AI systems in .NET and Python, shipping as Microsoft.Agents.AI on NuGet and agent-framework on PyPI. It reached 1.0 GA on April 3, 2026, merging Semantic Kernel's enterprise foundations with AutoGen's multi-agent orchestration under one API. Alice Labs deploys MAF as our default framework for Azure-native and .NET-first enterprise clients.

    When did Microsoft Agent Framework 1.0 ship?

    MAF 1.0 GA shipped April 3, 2026, as announced on the official Microsoft Agent Framework devblog. The release brought stable APIs, long-term support commitments, and parity between the .NET and Python runtimes. Native MCP tool support shipped at 1.0; A2A v1 for .NET and Python followed within weeks. BUILD 2026 (June 2) added stable Magentic-One orchestration, agent harness with skills, memory, and middleware, and Claude Agent SDK integration.

    Is Semantic Kernel deprecated in 2026?

    Semantic Kernel is not immediately deprecated, but Microsoft is directing all new agent work to MAF and has published a formal migration guide at learn.microsoft.com/en-us/agent-framework/migration-guide/from-semantic-kernel/. Existing SK apps continue to run, and MAF ships a compatibility layer so KernelFunction and vector-store search functions convert to MAF tools via .as_agent_framework_tool(). Alice Labs recommends starting new projects on MAF and migrating SK code opportunistically.

    Is AutoGen deprecated in favor of MAF?

    AutoGen's orchestration patterns — including the flagship Magentic-One design — have been absorbed into MAF workflows. Microsoft published a migration guide for AutoGen v0.2 and v0.4 users; MAF's Group Chat, Handoff, and Magentic orchestrations are direct successors. AutoGen the research repository continues to exist but production users should migrate to MAF for long-term support, framework-agnostic Foundry hosting, and cross-framework A2A interop.

    What is the difference between MAF and Semantic Kernel?

    MAF replaces Semantic Kernel's agent surface with a single AIAgent (Agent in Python) base type, replaces manual thread construction with .CreateSessionAsync(), drops [KernelFunction] and KernelPlugin wrappers in favour of raw functions, replaces InvokeAsync's IAsyncEnumerable return with a single AgentResponse from RunAsync, and adds built-in multi-agent orchestration patterns Semantic Kernel never shipped. Semantic Kernel remains as a foundation layer under MAF's covers.

    Does MAF support both .NET and Python?

    Yes, MAF ships production-grade runtimes for both .NET (Microsoft.Agents.AI) and Python (agent-framework), with intentional API parity. Concepts and shapes match across runtimes so a .NET team and a Python team can read each other's agent code. A Go SDK (agent-framework-go) exists on a separate cadence at github.com/microsoft/agent-framework-go for Go-first stacks.

    How does MAF support the Model Context Protocol (MCP)?

    MAF ships native MCP support at 1.0 GA, not as a bolt-on adapter. The .NET Agent Framework integrates with the official MCP C# SDK, and the Python runtime supports MCP servers via agent_framework.mcp. Tool registration is symmetric — local Python or .NET functions and remote MCP tools appear identically to the agent. MCP servers can be composed with A2A endpoints so the same agent serves multiple clients without code changes.

    How does MAF support Agent-to-Agent (A2A) interop?

    A2A v1 ships in Microsoft.Agents.AI.Hosting.A2A (and .AspNetCore) for .NET and as agent-framework-a2a for Python. Every A2A agent publishes an AgentCard describing name, description, version, and capabilities, and context_id maps to MAF session IDs for conversation continuity across A2A calls. A2A supports Server-Sent Events streaming and background or long-running tasks with continuation tokens. Outbound A2A went GA at BUILD 2026; incoming A2A endpoint exposure is in public preview.

    What is the difference between an MAF agent and an MAF workflow?

    An agent is LLM-driven and dynamic — you provide instructions and tools, and the agent decides which tool to call next. A workflow is a deterministic directed graph of executors connected by type-validated edges, with checkpoints at each superstep boundary. Workflows are the right primitive for auditable, resumable processes. Any workflow can be exposed as an agent via .as_agent(), so agents and workflows compose freely.

    Which orchestration patterns does MAF 1.0 include?

    MAF 1.0 shipped five orchestration patterns simultaneously on April 3, 2026: Sequential (linear pipelines), Concurrent (parallel fan-out and aggregate), Handoff (one agent hands the conversation to another), Group Chat (many agents share a transcript, the AutoGen GroupChat successor), and Magentic (a manager LLM selects the next agent based on evolving context, a direct port of the Magentic-One design from AutoGen).

    Is Magentic-One in MAF the same as AutoGen Magentic-One?

    The Magentic orchestration pattern in MAF is a direct port of the Magentic-One design invented by AutoGen. A dedicated manager LLM inspects the shared context and selects which specialist agent should act next, iterating until the task is complete. The MAF version reaches production quality — OpenTelemetry tracing, Foundry hosting, and evaluation loops — that the AutoGen research prototype could not offer.

    How do I migrate a Semantic Kernel agent to MAF?

    Follow the eleven concrete changes in Microsoft's migration guide: rename the Microsoft.SemanticKernel.Agents namespace to Microsoft.Agents.AI, replace Kernel plus ChatCompletionAgent with chatClient.AsAIAgent(), replace manual thread construction with .CreateSessionAsync(), drop [KernelFunction] and KernelPlugin in favour of raw methods, replace InvokeAsync (IAsyncEnumerable) with RunAsync (AgentResponse), and use .as_agent_framework_tool() on existing SK vector-store search functions. Port one file at a time; keep MAF and SK in separate virtual environments during migration.

    How do I migrate AutoGen code to MAF?

    AutoGen AssistantAgent maps to MAF Agent with tools=[...]. AutoGen UserProxyAgent becomes a RequestInfoExecutor inside a workflow. AutoGen GroupChat becomes the Group Chat orchestration pattern under agent_framework.workflows.orchestrations. AutoGen Magentic-One becomes the Magentic pattern in agent_framework.workflows.orchestrations.magentic. AutoGen v0.4 event streaming maps directly to MAF's AgentResponseUpdate stream — no schema change required.

    What is Azure AI Foundry Agent Service?

    Foundry Agent Service is Microsoft's managed runtime for hosting production agents. It reached GA on June 2, 2026 at BUILD 2026, and it is framework-agnostic — the same runtime hosts MAF, GitHub Copilot SDK, and LangGraph agents identically. Features include durable state, long-running autonomous execution, Routines for scheduled agents, and publishing to Microsoft Teams, Microsoft 365 Copilot, and Autopilot agents with Entra Agent ID for organisational identity.

    Can I use Claude or other non-OpenAI models with MAF?

    Yes. MAF supports Microsoft Foundry, Azure OpenAI, OpenAI, Anthropic Claude, Amazon Bedrock, Google Gemini, and Ollama out of the box. Any IChatClient from Microsoft.Extensions.AI can produce an agent via a one-line .AsAIAgent() extension. The Claude Agent SDK integration reached stable at BUILD 2026, letting MAF codebases target Claude models directly. Alice Labs, an Anthropic Partner, uses MAF as an outer harness with Claude as the inner reasoner in many Nordic deployments.

    How does MAF handle observability and OpenTelemetry?

    OpenTelemetry integration is built into MAF — every agent invocation, tool call, and workflow superstep emits a span with consistent attributes. Microsoft contributed a cross-framework OTel schema with Outshift and Cisco that covers MAF, LangChain, LangGraph, and the OpenAI Agents SDK, so hybrid stacks see one trace format across all frameworks. Foundry Tracing and Evaluation reached GA in June 2026 with production trace to evaluation-score linking, letting teams attribute regressions to specific agent versions.

    Is MAF suitable for EU AI Act compliance?

    MAF's architecture directly supports EU AI Act technical requirements for high-risk systems: OpenTelemetry logging satisfies Article 12 automatic-logging obligations, RequestInfoExecutor nodes in workflows enforce human-oversight requirements, and Foundry regions in the EU (Sweden Central, West Europe) address data-residency contractual commitments. Document your OTel export configuration, retention policy, and evaluation cadence in your technical documentation. Always consult legal counsel for formal compliance determinations.

    How much does MAF cost to run in production?

    MAF itself is MIT-licensed and free. Production costs come from three layers: model inference (Azure OpenAI, Foundry-hosted, or third-party per-token pricing), Foundry Agent Service hosting (Azure consumption pricing when used), and observability backends (Azure Monitor, Datadog, or your existing OTel target). Alice Labs' Nordic deployments typically see a seventy percent reduction in bespoke infrastructure code versus SK-plus-hand-rolled hosting, which dominates the total cost of ownership rather than list-price differences.

    When should I choose MAF over LangGraph?

    Pick MAF when the stack is .NET-centric, Azure Foundry-hosted, or requires Entra Agent ID and Microsoft 365 publishing. Pick LangGraph when the team is Python-first, prefers explicit state graphs, and does not need .NET parity. The two are not mutually exclusive: Foundry Agent Service hosts LangGraph agents alongside MAF, and A2A lets MAF and LangGraph agents call each other as remote services. Hybrid stacks are a first-class deployment pattern.

    When should I choose MAF over the Claude Agent SDK?

    Pick MAF when you need a framework-agnostic runtime and want the option to swap between Claude, Azure OpenAI, Foundry, or Bedrock models with a one-line client change. Pick the Claude Agent SDK when Anthropic Claude is the primary target and you want native computer-use, subagents, and Anthropic-specific tooling without the MAF abstraction layer. The two integrate well: BUILD 2026 shipped stable Claude Agent SDK integration inside MAF, so a hybrid pattern where MAF is the harness and Claude is the reasoner is fully supported.

    Does MAF work with Microsoft 365 Copilot?

    Yes. Foundry Agent Service publishes MAF agents to Microsoft Teams, Microsoft 365 Copilot, and Autopilot agents with Entra Agent ID for organisational identity and least-privilege delegation. This is one of MAF's strongest differentiators for Microsoft-shop enterprises — no other agent framework offers native Microsoft 365 publishing without middleware. Alice Labs uses this path for Nordic public-sector clients where Microsoft 365 is the delivery surface.

    What is the difference between MAF Skills and MAF tools?

    A tool is a single callable function (local Python, local .NET, or remote MCP) that an agent can invoke. A Skill (public preview at BUILD 2026) is a reusable domain capability package — for example, a Nordic tax rules Skill, a PSD3 validation Skill, or a GDPR redaction Skill — that bundles instructions, tools, and memory patterns any agent can consume. Alice Labs treats Skills as the natural boundary between platform teams (who own the Skill) and product teams (who compose them into agents).

    Is there a Go SDK for MAF?

    Yes, agent-framework-go exists at github.com/microsoft/agent-framework-go, but it develops on a separate cadence from the .NET and Python runtimes and does not carry the same 1.0 GA guarantees. Check the repository's release notes for current stability. For Go-first stacks, verify feature parity with the .NET and Python runtimes before committing to production dependency.

    Previous in AI Agents

    OpenAI Agents SDK Guide 2026: Production Best Practices

    Next in AI Agents

    Claude Agent SDK Guide 2026: Production Anthropic Agents

    Further reading

    Related services

    Related reading

    comparison

    Best AI Agent Frameworks 2026: The Enterprise Comparison

    Compare Microsoft Agent Framework, LangGraph, CrewAI, and six other frameworks on state management, multi-agent support, and enterprise production fit.

    howto

    LangGraph Tutorial 2026: Build Stateful AI Agents for Enterprise

    The Python-first alternative to MAF for stateful, cyclic, and human-in-the-loop enterprise agents.

    comparison

    LangGraph vs CrewAI vs AutoGen

    Direct head-to-head of the three most-used open-source Python frameworks alongside MAF's alternatives.

    deepdive

    Multi-Agent Systems Explained: Patterns, Trade-offs, and Enterprise Use Cases

    The coordination patterns that MAF's Sequential, Concurrent, Handoff, Group Chat, and Magentic orchestrations implement.

    explainer

    Model Context Protocol Explained

    The tool-discovery protocol MAF supports natively at 1.0 — how MCP fits into the emerging agent-protocol landscape.

    guide

    EU AI Act Compliance Checklist for 2026

    How MAF's OpenTelemetry logging, RequestInfoExecutor human oversight, and Foundry EU regions map to high-risk system obligations.

    deepdive

    AI Agent Architecture Patterns for Enterprise

    The five core agent architecture patterns — ReAct, Plan-and-Execute, Supervisor, and more — with MAF and LangGraph implementation notes.

    Sources

    1. Microsoft Agent Framework Version 1.0 GAMicrosoft Agent Framework Team · Microsoft“MAF 1.0 GA shipped April 3, 2026 with stable APIs, long-term support commitments, and parity between .NET and Python runtimes.”(accessed 2026-08-02)
    2. Introducing Microsoft Agent FrameworkMicrosoft Azure Team · Microsoft“MAF was announced as public preview at Microsoft Build 2026, with the stated goal of enterprise-grade multi-agent orchestration, multi-provider model support, and cross-runtime interoperability via A2A and MCP.”(accessed 2026-08-02)
    3. Migrate from Semantic Kernel to MAFMicrosoft Learn Documentation · Microsoft“MAF collapses Semantic Kernel's ChatCompletionAgent, AzureAIAgent, and OpenAIAssistantAgent types into a single AIAgent base and provides a formal migration path with eleven concrete API changes.”(accessed 2026-08-02)
    4. Foundry Agent Service GA — BUILD 2026Microsoft Foundry Team · Microsoft“Azure AI Foundry Agent Service reached GA on June 2, 2026 as a framework-agnostic runtime hosting MAF, GitHub Copilot SDK, and LangGraph agents identically, with Entra Agent ID and Microsoft 365 publishing.”(accessed 2026-08-02)
    5. MAF Orchestration Patterns Reach 1.0Microsoft Agent Framework Team · Microsoft“All five orchestration patterns — Sequential, Concurrent, Handoff, Group Chat, and Magentic — reached 1.0 GA simultaneously on April 3, 2026. Magentic is a direct port of the Magentic-One design invented by AutoGen.”(accessed 2026-08-02)
    6. MAF A2A IntegrationsMicrosoft Learn Documentation · Microsoft“A2A v1 ships in Microsoft.Agents.AI.Hosting.A2A and .AspNetCore for .NET and as agent-framework-a2a for Python, with AgentCard-based capability discovery and context_id session mapping.”(accessed 2026-08-02)
    7. MAF Workflows DocumentationMicrosoft Learn Documentation · Microsoft“MAF workflows are directed graphs of executors connected by type-validated edges. The superstep execution model provides deterministic parallel fan-out and fan-in with checkpoints at each boundary.”(accessed 2026-08-02)
    8. microsoft/agent-framework on GitHubMicrosoft Agent Framework Team · Microsoft“MAF is MIT-licensed and developed in the open. Package identity is Microsoft.Agents.AI on NuGet and agent-framework on PyPI, with provider-specific sub-packages under agent_framework.*.”(accessed 2026-08-02)
    9. Enterprise AI Agent Implementation DataAlice Labs · Alice Labs“Alice Labs, a Stockholm-headquartered Anthropic Partner, has delivered 100+ production AI implementations since 2023, including .NET and Azure Foundry rollouts across Nordic banking, industrial, and public-sector environments with Semantic Kernel to MAF 1.0 migrations since Q1 2026.”(accessed 2026-08-02)

    Next scheduled review:

    Ready to accelerate your AI journey?

    Book a free 30-minute consultation with our AI strategists.

    Book Consultation
    Share

    Get in Touch!

    The lab usually responds within 24 hours.

    Need help with AI?Get in touch