A practical comparison of SDK-based and framework-based approaches to agent development
In my recent experience as a Senior Consultant at Microsoft, I’ve been actively involved in designing and delivering AI-driven solutions, with a strong focus on building intelligent agents using modern frameworks.
Along the way, I've built agents using both Microsoft Foundry Agents SDK (hereafter "Agents SDK") and Microsoft Agent Framework (MAF)
Both approaches are powerful and capable. However, once you move beyond simple proofs of concept, the developer experience and architectural patterns start to differ significantly.
This article provides a practical comparison based on real implementation experience and aims to help developers choose the right approach.
Approach 1: Agents SDK
Agents SDK provides a straightforward way to create agents with integrated tools and models.
Example: Creating an Agent
from azure.ai.projects import AIProjectClient
from azure.ai.agents.models import AzureAISearchTool, AzureAISearchQueryType
from azure.identity import DefaultAzureCredential
client = AIProjectClient(credential=DefaultAzureCredential(), endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"))
# Configure tools
ai_search = AzureAISearchTool(
index_connection_id=conn_id,
index_name="my-index",
query_type=AzureAISearchQueryType.SEMANTIC,
)
# Create agent (persisted in Foundry portal)
agent = client.agents.create_agent(
model=os.getenv("AZURE_AI_AGENT_DEPLOYMENT_NAME"),
name="MyAgent",
instructions="You are a helpful assistant.",
tool_resources=ai_search.resources,
tools=ai_search.definitions,
)
# Run conversation
thread = client.agents.threads.create()
client.agents.messages.create(thread_id=thread.id, role="user", content="Hello")
run = client.agents.runs.create(thread_id=thread.id, agent_id=agent.id)
What this approach provides
- Native integration with Azure AI services (OpenAI, AI Search, MCP)
- Managed execution environment
- Simple and quick agent setup
Conceptually, this approach can be summarized as:
Model + Tools + Execution
Strengths
- ✅ Rapid development and onboarding
- ✅ Strong integration within the Azure ecosystem
- ✅ Well-suited for single-agent or tool-driven use cases
- ✅ Minimal infrastructure overhead
Challenges observed in practice
As the complexity of scenarios increases, certain limitations become more visible:
- Multi-agent workflows require custom orchestration logic
- Agent handoffs must be implemented manually
- Context sharing across agents requires additional design effort
While this approach offers flexibility, it shifts orchestration complexity to the developer.
Approach 2: Microsoft Agent Framework (MAF)
Microsoft Agent Framework introduces a higher-level abstraction, focused on agent orchestration and system design.
Creating an Agent
from agent_framework import Agent, WorkflowBuilder, Message
from agent_framework.foundry import FoundryChatClient
from azure.identity import DefaultAzureCredential
client = FoundryChatClient(
project_endpoint=os.getenv("FOUNDRY_PROJECT_ENDPOINT"),
model=os.getenv("FOUNDRY_MODEL_DEPLOYMENT_NAME"),
credential=DefaultAzureCredential(),
)
# Create agents (in-process only, not persisted in portal)
researcher = Agent(client, name="ResearcherAgent", instructions="Research topics thoroughly.")
writer = Agent(client, name="WriterAgent", instructions="Write concise summaries.")
# Build and run multi-agent workflow
workflow = WorkflowBuilder(start_executor=researcher).add_edge(researcher, writer).build()
async for event in workflow.run(Message("user", "Summarize migration best practices"), stream=True):
print(event.content)
What this approach provides
- Built-in orchestration capabilities
- Native support for multi-agent workflows
- Structured agent lifecycle management
- Context and memory handling
Conceptually, this can be viewed as:
Agents + Orchestration + System Design
Observations from implementation
When implementing similar use cases using MAF:
- Agent responsibilities became clearly defined
- Routing and delegation patterns were significantly simplified
- Overall system architecture became easier to maintain and scale
This approach encourages thinking in terms of agent ecosystems rather than isolated agents.
Architecture Comparison
Agents SDK
Microsoft Agent Framework (MAF)
Choosing the Right Approach
Use Agents SDK when:
- You need rapid development for a single-agent use case
- The workflow is relatively straightforward
- You prefer flexibility and lower-level control
Use Microsoft Agent Framework when:
- You are designing multi-agent systems
- Your solution requires routing, delegation, or handoffs
- Long-term scalability and maintainability are essential
Pros and Cons Summary
Agents SDK
Pros
- Easy to get started
- Strong Azure integration
- Flexible design
Cons
- Manual orchestration required
- Limited native multi-agent support
- Complexity increases as scenarios grow
Microsoft Agent Framework (MAF)
Pros
- Built-in orchestration
- Native multi-agent support
- Scalable and structured architecture
Cons
- Learning curve for new developers
- More opinionated framework design
- Reduced low-level control compared to SDK-based approach
References and Repositories
🔗 Microsoft Agent Framework (MAF)
- Microsoft Agent Framework – GitHub Repository
- Microsoft Agent Framework Samples – Tutorials & Examples
- Workflow Samples (Multi-agent patterns)
- FoundryChatClient sample (Python)
- Agent Framework demos - GitHub Source
📘 Documentation
- Microsoft Agent Framework Overview (Microsoft Learn)
- Agent Framework + Microsoft Foundry provider docs
🔗 Azure AI Projects / Agents SDK
📘 Documentation
Conclusion
Azure AI Projects and Microsoft Agent Framework both play important roles in the modern agent development landscape.
- Agents SDK enables quick and flexible agent development
- Microsoft Agent Framework enables structured, scalable agent systems
In practice, the choice depends on whether you are building a single agent feature or a multi-agent system.
Final Thought
Agents SDK helps you get started quickly.
Microsoft Agent Framework helps you scale with confidence
In a follow-up blog, I’ll dive into how the M365 Agents SDK compares with Microsoft Agent Framework, especially in the context of enterprise productivity and Copilot experiences.