Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Agent Framework supports several types of agents to accommodate different use cases and requirements. Agents expose a consistent interface across languages (AIAgent in .NET, BaseAgent in Python, and *agent.Agent in Go).
Provider Comparison
| Provider | Function Tools | Structured Outputs | Code Interpreter | File Search | MCP Tools | Background Responses |
|---|---|---|---|---|---|---|
| Azure OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| OpenAI | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Microsoft Foundry | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Anthropic | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| Ollama | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Foundry Local | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| GitHub Copilot | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Copilot Studio | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Custom | Varies | Varies | Varies | Varies | Varies | Varies |
Important
If you use Microsoft Agent Framework to build applications that operate with any third-party servers, agents, code, or non-Azure Direct models ("Third-Party Systems"), you do so at your own risk. Third-Party Systems are Non-Microsoft Products under the Microsoft Product Terms and are governed by their own third-party license terms. You are responsible for any usage and associated costs.
We recommend reviewing all data being shared with and received from Third-Party Systems and being cognizant of third-party practices for handling, sharing, retention and location of data. It is your responsibility to manage whether your data will flow outside of your organization's Azure compliance and geographic boundaries and any related implications, and that appropriate permissions, boundaries and approvals are provisioned.
You are responsible for carefully reviewing and testing applications you build using Microsoft Agent Framework in the context of your specific use cases, and making all appropriate decisions and customizations. This includes implementing your own responsible AI mitigations such as metaprompt, content filters, or other safety systems, and ensuring your applications meet appropriate quality, reliability, security, and trustworthiness standards. See also: Transparency FAQ
Simple agents based on inference services
Agent Framework makes it easy to create simple agents based on many different inference services. Any inference service that provides a Microsoft.Extensions.AI.IChatClient implementation can be used to build these agents.
The following providers are available for .NET:
- Azure OpenAI — Full-featured provider with chat completion, responses API, and tool support.
- OpenAI — Direct OpenAI API access with chat completion and responses API.
- Foundry — Persistent server-side agents with managed chat history.
- Anthropic — Claude models with function tools and streaming support.
- Ollama — Run open-source models locally.
- GitHub Copilot — GitHub Copilot SDK integration with shell and file access.
- Copilot Studio — Integration with Microsoft Copilot Studio agents.
- A2A — Connect to remote agents via the Agent-to-Agent (A2A) protocol.
- Custom — Build your own provider by implementing the
AIAgentbase class.
Agent providers
Agent Framework supports many different inference services through chat clients. Each provider offers a different set of features:
- Azure OpenAI — Full-featured provider with Azure identity support.
- OpenAI — Direct OpenAI API access.
- Foundry — Microsoft Foundry project inference and service-managed agents.
- Foundry Local — Run supported Foundry models locally with
FoundryLocalClient(Python only). - Anthropic — Claude models with extended thinking and hosted tools support.
- Ollama — Run open-source models locally.
- GitHub Copilot — GitHub Copilot SDK integration.
- Copilot Studio — Integration with Microsoft Copilot Studio agents.
- A2A — Connect to remote agents via the Agent-to-Agent (A2A) protocol.
- Custom — Build your own provider by implementing the
BaseAgentclass.
Providers overview
The Go Agent Framework supports multiple LLM providers. Each provider package creates a standard *agent.Agent with a provider-specific constructor.
| Provider | Package | Import Path |
|---|---|---|
| Microsoft Foundry | foundryprovider |
github.com/microsoft/agent-framework-go/provider/foundryprovider |
| OpenAI Chat Completions | openaiprovider |
github.com/microsoft/agent-framework-go/provider/openaiprovider |
| OpenAI Responses | openaiprovider |
github.com/microsoft/agent-framework-go/provider/openaiprovider |
| Anthropic | anthropicprovider |
github.com/microsoft/agent-framework-go/provider/anthropicprovider |
| Google Gemini | geminiprovider |
github.com/microsoft/agent-framework-go/provider/geminiprovider |
| GitHub Copilot | copilotprovider |
github.com/microsoft/agent-framework-go/provider/copilotprovider |
| A2A | a2aprovider |
github.com/microsoft/agent-framework-go/provider/a2aprovider |
| AG-UI | aguiprovider |
github.com/microsoft/agent-framework-go/provider/aguiprovider |
Provider constructors are package-specific. For example, the Foundry provider creates a project-backed agent from a Foundry project endpoint, credential, and model deployment:
a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Name: "MyAgent",
},
})