Part 1 of the Microsoft Agent Framework Series
Over the past year, I’ve watched the AI landscape transform from simple chatbots to something far more ambitious: autonomous AI agents that reason about goals, call tools and APIs, collaborate with other agents, and adapt dynamically to solve complex problems. But here’s what I’ve learned from deploying agents in production: the gap between “demo-ready” and “enterprise-ready” is enormous.
That’s why I was genuinely excited when Microsoft announced the Microsoft Agent Framework (MAF) — a unified, open-source SDK that finally brings together the innovation of research-driven multi-agent systems with the enterprise-grade stability that production environments demand.
In this 10-part series, I’ll take you from zero to production-ready with Microsoft Agent Framework. Whether you’re a .NET developer, Python enthusiast, or solution architect evaluating agentic AI platforms, this series will give you the practical knowledge to build, deploy, and scale AI agents in real-world enterprise environments.
The Series Roadmap
Architecture Overview
The following C4-style diagram illustrates the high-level architecture of Microsoft Agent Framework:
C4Context
title Microsoft Agent Framework - System Context Diagram
Person(user, "User", "Developer or End User interacting with AI Agent")
System_Boundary(maf, "Microsoft Agent Framework") {
System(agent, "AI Agent", "Processes requests, reasons, and orchestrates tools")
System(tools, "Tools Layer", "Function calling, MCP integration, external APIs")
System(threads, "Thread Manager", "Multi-turn conversation context")
System(workflows, "Workflow Engine", "Graph-based agent orchestration")
}
System_Ext(llm, "Azure OpenAI / OpenAI", "GPT-4o, Claude, or other LLMs")
System_Ext(mcp_servers, "MCP Servers", "External tool providers via Model Context Protocol")
System_Ext(external, "External Systems", "CRM, Databases, APIs, M365")
Rel(user, agent, "Sends requests", "HTTP/gRPC")
Rel(agent, llm, "Reasoning & generation", "API")
Rel(agent, tools, "Executes functions", "Internal")
Rel(agent, threads, "Manages context", "Internal")
Rel(agent, workflows, "Orchestrates agents", "Internal")
Rel(tools, mcp_servers, "Discovers & calls tools", "MCP Protocol")
Rel(tools, external, "Integrates with", "REST/GraphQL")
Figure 1: C4 Context Diagram showing MAF’s position in the enterprise architecture
Component Architecture
flowchart TB
subgraph Client["Client Layer"]
WebApp["Web Application"]
API["REST API"]
CLI["CLI Tool"]
end
subgraph Core["Agent Framework Core"]
direction TB
AgentClient["Agent Client
(Python/C#)"]
ToolRegistry["Tool Registry
(@ai_function)"]
ThreadMgr["Thread Manager"]
WorkflowEngine["Workflow Engine"]
end
subgraph LLM["LLM Providers"]
AzureOAI["Azure OpenAI"]
OpenAI["OpenAI"]
Claude["Anthropic Claude"]
end
subgraph Tools["Tool Ecosystem"]
MCPClient["MCP Client"]
BuiltIn["Built-in Tools
(Code Interpreter, File Search)"]
Custom["Custom Tools
(@ai_function decorated)"]
end
subgraph External["External Services"]
MCPServers["MCP Servers
(GitHub, Slack, DB)"]
APIs["REST APIs
(CRM, ERP)"]
M365["Microsoft 365
(SharePoint, Teams)"]
end
Client --> Core
Core --> LLM
Core --> Tools
Tools --> External
style Core fill:#0066cc,color:#fff
style LLM fill:#10a37f,color:#fff
style Tools fill:#7c3aed,color:#fff
style External fill:#6b7280,color:#fff
Figure 2: Component architecture showing the layered design of Microsoft Agent Framework
Before we dive in, here’s what’s coming in this comprehensive series:
| Part | Title | Focus |
|---|---|---|
| 1 | Introduction to Microsoft Agent Framework (This Article) | Foundation |
| 2 | Building Your First AI Agent with MAF (.NET) | .NET |
| 3 | Building Your First AI Agent with MAF (Python) | Python |
| 4 | Tools & Function Calling Deep Dive | Core Concepts |
| 5 | Multi-Turn Conversations & Agent Threads | Core Concepts |
| 6 | Workflows: Graph-Based Agent Orchestration | Advanced |
| 7 | Multi-Agent Patterns: Sequential, Concurrent & Handoff | Advanced |
| 8 | Production-Ready Agents: Observability & Security | Enterprise |
| 9 | MCP Integration & External Tool Connectivity | Integration |
| 10 | Migration Guide: From Semantic Kernel & AutoGen | Migration |
Why Agents — and Why Now?
AI agents are not just chatbots or copilots — they are autonomous software components that can:
- Reason about goals: Understand complex objectives and break them down into actionable steps
- Call tools and APIs: Execute real-world actions through integrations with external systems
- Collaborate with other agents: Work together in multi-agent systems for complex workflows
- Adapt dynamically: Learn from context and adjust behavior based on feedback
Whether it’s a retrieval agent for research, a coding agent embedded in a dev workflow, or a compliance agent ensuring policy enforcement, agents are becoming the next layer of application logic.
The path from prototype to production has been fraught with obstacles. Many popular frameworks are fragmented, local development rarely maps cleanly to cloud deployments, and enterprise readiness — observability, compliance, security, durability — is often missing.
Introducing Microsoft Agent Framework
Microsoft Agent Framework is an open-source SDK and runtime designed to let developers build, deploy, and manage sophisticated multi-agent systems with ease. It unifies the enterprise-ready foundations of Semantic Kernel with the innovative orchestration of AutoGen, so teams no longer have to choose between experimentation and production.
Built by the same teams that created Semantic Kernel and AutoGen, Agent Framework is not a replacement — it’s the natural evolution that unites innovation and stability.
The Four Pillars of Agent Framework
1. Open Standards & Interoperability
Agents don’t exist in isolation. Microsoft Agent Framework was built with open standards at its core:
- MCP (Model Context Protocol): Dynamically discover and invoke external tools or data servers. Connect to a growing ecosystem of MCP-compliant services without custom glue code.
- Agent-to-Agent (A2A): Protocol-driven messaging allows agents to collaborate across runtimes and frameworks.
- OpenAPI-first design: Any REST API with an OpenAPI spec can be imported as a callable tool instantly.
- Cloud-agnostic runtime: Run agents in containers, on-premises, or across multiple clouds.
2. Research to Production Pipeline
Many of the most exciting breakthroughs in multi-agent orchestration come from Microsoft Research. The framework supports:
- Sequential orchestration: Step-by-step workflows
- Concurrent orchestration: Agents working in parallel
- Group chat orchestration: Collaborative agent brainstorming
- Handoff orchestration: Responsibility transfer between agents
- Magentic orchestration: Manager agent coordinating specialized agents
3. Extensible by Design & Community-Driven
Microsoft Agent Framework is 100% open source with a modular design:
- Enterprise connectors: Azure AI Foundry, Microsoft Graph, Fabric, SharePoint, Oracle, Amazon Bedrock, MongoDB, and more
- Pluggable memory: Redis, Pinecone, Qdrant, Weaviate, Elasticsearch, Postgres — you choose the backend
- Declarative agents: YAML or JSON definitions for version-controlled, templatized agent configurations
4. Enterprise Readiness
Production-grade features that enterprises actually need:
- Observability: Built-in OpenTelemetry for distributed tracing, monitoring, and debugging through Azure AI Foundry dashboards
- Security: Role-based access, private data handling, and built-in content safety
- Durability: Agent threads and workflows can pause, resume, and recover from errors
- Control: Human-in-the-loop workflows with approval gates
Core Architecture
Microsoft Agent Framework offers two primary categories of capabilities:
AI Agents
Individual agents that use LLMs to process user inputs, call tools and MCP servers to perform actions, and generate responses. Agents support model providers including Azure OpenAI, OpenAI, and Azure AI.
When to use AI Agents:
- Autonomous decision-making scenarios
- Ad hoc planning and trial-and-error exploration
- Conversation-based user interactions
- Tasks where the exact sequence isn’t known in advance
When NOT to use AI Agents:
- Highly structured tasks with predefined rules
- Well-defined sequences that can be written as simple functions
- Complex tasks requiring >20 tools (use Workflows instead)
If you can write a function to handle the task, do that instead of using an AI agent. You can use AI to help you write that function. Agents introduce uncertainty, latency, and cost — use them where their flexibility genuinely adds value.
Workflows
Graph-based workflows that connect multiple agents and functions to perform complex, multi-step tasks. Workflows support:
- Type-based routing: Messages flow correctly between components with comprehensive validation
- Nesting: Workflows can contain other workflows
- Checkpointing: Save and resume long-running processes
- Request/response patterns: Human-in-the-loop integration
Getting Started: Installation
Python Installation
# Install the full package
pip install agent-framework --pre
# Or install specific components
pip install agent-framework-azure-ai --pre
pip install agent-framework-redis --pre
.NET Installation
dotnet add package Microsoft.Agents.AI --prerelease
dotnet add package Microsoft.Agents.AI.OpenAI --prerelease
Your First Agent: Hello World
Let’s create a simple agent in both Python and .NET to see the framework in action.
Python Example
import asyncio
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
async def main():
# Create an agent with Azure OpenAI
agent = AzureOpenAIResponsesClient(
credential=AzureCliCredential()
).create_agent(
name="EnterpriseAssistant",
instructions="You are a helpful enterprise AI assistant specialized in technology guidance."
)
# Run the agent
result = await agent.run("What are the key considerations for adopting AI agents in enterprise?")
print(result.text)
if __name__ == "__main__":
asyncio.run(main())
.NET Example
using System;
using OpenAI;
using Azure.Identity;
// Create an agent with Azure OpenAI
var agent = new AzureOpenAIClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")!),
new DefaultAzureCredential())
.GetOpenAIResponseClient("gpt-4o")
.CreateAIAgent(
name: "EnterpriseAssistant",
instructions: "You are a helpful enterprise AI assistant specialized in technology guidance.");
// Run the agent
Console.WriteLine(await agent.RunAsync("What are the key considerations for adopting AI agents in enterprise?"));
Notice how clean and minimal the code is. No complex kernel setup, no boilerplate — just create an agent and run it.
The Evolution: From Semantic Kernel & AutoGen to MAF
Understanding where Microsoft Agent Framework came from helps explain its design decisions:
| Aspect | Semantic Kernel | AutoGen | Agent Framework |
|---|---|---|---|
| Primary Focus | Enterprise SDK with connectors | Research-driven multi-agent | Unified production + research |
| Agent Creation | Kernel + Plugin pattern | AssistantAgent | Direct from provider |
| Tool Registration | Plugins to Kernel | FunctionTool wrapper | @ai_function decorator |
| Multi-Agent | Limited | Teams/GroupChat | Workflows (graph-based) |
| State Management | Manual | Manual | Native threads |
| Observability | Telemetry | Limited | OpenTelemetry built-in |
Key migrations:
- SK users: Replace Kernel → Agent client; Plugins → Tools
- AutoGen users: Teams → Workflows; FunctionTool → @ai_function
Both Semantic Kernel and AutoGen will remain supported, but most investment is now focused on Microsoft Agent Framework.
MAF vs Competitors
| Feature | MAF | LangChain | LlamaIndex | CrewAI |
|---|---|---|---|---|
| Language Support | .NET + Python | Python + JS | Python | Python |
| Enterprise Connectors | Excellent (M365, Azure) | Good | Good | Limited |
| Multi-Agent | Yes (Workflows) | Limited | Limited | Yes |
| Observability | OpenTelemetry native | LangSmith | Limited | Limited |
| Checkpointing | Yes | Limited | No | No |
| MCP Support | Yes | Yes | No | No |
| Cloud Deployment | Azure AI Foundry | LangServe | LlamaCloud | Manual |
Prerequisites for This Series
To follow along with the hands-on examples in this series, you’ll need:
For .NET Developers
- .NET 8.0 SDK or later
- Visual Studio 2022 or VS Code with C# extension
- Azure subscription with Azure OpenAI access
- Azure CLI for authentication
For Python Developers
- Python 3.10+
- VS Code with Python extension
- Azure subscription with Azure OpenAI access
- Azure CLI for authentication
What’s Next
In Part 2, we’ll dive deep into building your first production-ready AI agent with .NET — including project setup, NuGet packages, tool integration, and error handling patterns that you can use in real enterprise applications.
In Part 3, Python developers will get the same comprehensive treatment with async patterns, decorators, and production considerations.
This series is designed to take you from understanding the fundamentals to deploying sophisticated multi-agent systems in production. Each article builds on the previous ones, so I recommend following along in order.
Microsoft Agent Framework is currently in public preview. Please submit any feedback or issues on the GitHub repository.
Key Takeaways
- Microsoft Agent Framework unifies Semantic Kernel’s enterprise features with AutoGen’s multi-agent innovation
- It supports both .NET and Python with consistent APIs
- Two primary capabilities: AI Agents (individual autonomous agents) and Workflows (graph-based multi-agent orchestration)
- Built-in support for MCP, A2A, OpenAPI, and enterprise connectors
- Production-ready with OpenTelemetry, checkpointing, and human-in-the-loop support
References
Official Resources:
- Microsoft Agent Framework GitHub Repository
- Microsoft Learn Documentation
- Introducing Microsoft Agent Framework (Official Blog)
- AI Agents for Beginners – MAF Chapter
Migration Guides:
Community:
Stay tuned for Part 2: Building Your First AI Agent with MAF (.NET), coming next week!
📦 Source Code
All code examples from this article series are available on GitHub:
👉 https://github.com/nithinmohantk/microsoft-agent-framework-series-examples
Clone the repository to follow along:
git clone https://github.com/nithinmohantk/microsoft-agent-framework-series-examples.git
cd microsoft-agent-framework-series-examples
Discover more from C4: Container, Code, Cloud & Context
Subscribe to get the latest posts sent to your email.