
Microsoft Agent Framework:微软开源多语言 Agent 框架,Python 与 .NET 一套 API|部署与使用全指南
仓库:https://github.com/microsoft/agent-framework 语言:Python(PyPI
agent-framework)、.NET(NuGetMicrosoft.Agents.AI);Go SDK 在独立仓库 microsoft/agent-framework-go 形态:SDK / 框架(不是独立可运行服务),通过 pip / dotnet 引入到自己的 Agent 工程
1. 项目简介
Microsoft Agent Framework(MAF)是微软开源的、面向生产的多语言 Agent 与多 Agent 工作流框架,在 Python 与 C#/.NET 上提供一致的 API。它面向"把 Agent 从原型推向生产"的团队:提供图编排(sequential / concurrent / handoff / group collaboration)、检查点、流式、人在回路、时间旅行、OpenTelemetry 可观测、声明式 YAML Agent、Agent Skills、Foundry 托管部署等能力。底层支持 Microsoft Foundry、Azure OpenAI、OpenAI、GitHub Copilot SDK 等多家 provider。
1.1 核心信息一览
| 项目 | 说明 |
|---|---|
| 名称 | Microsoft Agent Framework(MAF) |
| 仓库 | microsoft/agent-framework |
| 定位 | 多语言生产级 Agent 与多 Agent 工作流框架 |
| 语言 / 框架 | Python、C#/.NET;Go 在独立仓库 |
| 部署方式 | pip 安装 / dotnet add package,嵌入自己的应用 |
| 默认端口 | 无(库);通过 Foundry / Azure OpenAI / OpenAI 等远端服务调用模型 |
| 系统入口 | 在自己的 Python / .NET 代码里 Agent(...) 构造并
await agent.run(...) |
1.2 适用场景
- 已经在做 Agent / 工作流,需要从原型走向生产,想要检查点、重启、可观测、人在回路。
- 需要图编排:sequential、concurrent、handoff、group collaboration 等多 Agent 模式。
- 团队既有 Python 又有 .NET 代码,想统一一套 Agent API。
- 已经在用 Azure / Foundry,希望加 Foundry Hosted Agents 直接托管。
- 从 Semantic Kernel 或 AutoGen 迁移过来的项目。
1.3 能力边界(官方口径)
- 这是框架 / 库,不是开箱即用的服务,安装后需要自己写代码构造 Agent 并接入到自己的宿主(Web 服务、CLI、任务队列等)。
- 官方 Important Notes 提醒:与第三方服务器、Agent、代码、非 Azure 模型一起使用时,风险由使用方自担;需自行负责数据合规边界、安全过滤与质量验证。
- Go SDK 与文档在独立仓库 microsoft/agent-framework-go。
2. 功能特性
- Python 与 C#/.NET 双语言:一致的 Agent API 抽象,跨语言团队共用。
- 多 Provider 支持:Microsoft Foundry、Azure OpenAI、OpenAI、GitHub Copilot SDK 等。
- 中间件系统:灵活的请求 / 响应处理、异常处理、自定义管线。
- 图编排与工作流:sequential、concurrent、handoff、group collaboration;带 checkpoint、流式、人在回路、time-travel。
- Foundry Hosted Agents:多加两行代码即可把 Agent 部署到 Foundry 托管基础设施。
- 可观测性:内置 OpenTelemetry 集成,分布式追踪、监控、调试。
- 声明式 Agent:用 YAML 定义 Agent,便于版本管理与快速搭建。
- Agent Skills:从文件、内联代码、类库构建领域知识库,供 Agent 发现与使用。
- AF Labs:实验性包,覆盖 benchmarking、强化学习、研究方向。
- DevUI:交互式开发者 UI,用于 Agent 开发、测试与调试工作流。
3. 官方界面预览
框架本身无独立 Web 界面;官方 README 提供 30 分钟介绍视频(YouTube)与 DevUI 演示视频。
4. 官方跳转链接汇总
- 仓库:https://github.com/microsoft/agent-framework
- Go SDK:https://github.com/microsoft/agent-framework-go
- 官方文档(MS Learn):https://learn.microsoft.com/en-us/agent-framework/
- 快速入门:https://learn.microsoft.com/agent-framework/tutorials/quick-start
- 博客:https://devblogs.microsoft.com/agent-framework/
- PyPI:https://pypi.org/project/agent-framework/
- NuGet:https://www.nuget.org/profiles/MicrosoftAgentFramework/
- Discord:https://discord.gg/b5zjErwbQM
- 迁移指南(Semantic Kernel):from-semantic-kernel
- 迁移指南(AutoGen):from-autogen
5. 前置要求与服务器配置
5.1 软件前提(Python)
- Python 3.9+(按 PyPI 包要求)。
- 一个可用的模型后端:Microsoft Foundry / Azure OpenAI / OpenAI / GitHub Copilot SDK。
- 若走 Azure 凭证,需要安装并登录 Azure CLI。
5.2 软件前提(.NET)
- .NET 8 SDK 或更新版本。
- 同上,需要一个模型后端与 Azure 凭证(如走 Foundry)。
5.3 硬件与系统建议
- 框架本身不跑大模型,普通开发机即可;生产部署按所选模型与宿主(Foundry / Azure Functions / 自建 Web)的要求准备。
5.4 端口分配
| 位置 | 说明 |
|---|---|
| 你的应用 | 由你自己决定(Web / CLI / 任务队列) |
| 模型后端 | 走 Foundry / Azure OpenAI / OpenAI 的公网或私有 endpoint |
6. 方式一:pip / NuGet 安装(推荐路径)
6.1 Python 安装
pip install agent-framework
# 实验模块单独装
# pip install agent-framework-lab官方提示:Windows 上首次安装可能需要一分钟。
6.2 写一个最小 Agent(Python)
# 先用 az login 完成 Azure 认证
import os, asyncio
from agent_framework import Agent
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
async def main():
agent = Agent(
client=FoundryChatClient(
credential=AzureCliCredential(),
# project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
# model=os.environ["FOUNDRY_MODEL"],
),
name="HaikuAgent",
instructions="You are an upbeat assistant that writes beautifully.",
)
print(await agent.run("Write a haiku about Microsoft Agent Framework."))
if __name__ == "__main__":
asyncio.run(main())6.3 .NET 安装
dotnet add package Microsoft.Agents.AI
# Foundry 集成相关
dotnet add package Microsoft.Agents.AI.Foundry
dotnet add package Azure.AI.Projects
dotnet add package Azure.Identity6.4 写一个最小 Agent(C#)
using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;
string endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIAgent agent =
new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
.AsAIAgent(model: deploymentName,
instructions: "You are an upbeat assistant that writes beautifully.",
name: "HaikuAgent");
Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework."));7. 方式二:源码 / 本地开发运行
git clone https://github.com/microsoft/agent-framework.git
cd agent-framework仓库结构:
python/packages/:Python 包源码python/samples/:Python 示例(01-get-started / 02-agents / 03-workflows / 04-hosting / 05-end-to-end)dotnet/src/:.NET 源码dotnet/samples/:.NET 示例declarative-agents/:YAML 声明式 Agent 示例docs/:设计文档与 ADR
Python 开发环境参考 python/DEV_SETUP.md。
8. 配置项说明
| 配置项 | 用途 | 示例 |
|---|---|---|
FOUNDRY_PROJECT_ENDPOINT |
Foundry 项目 endpoint(Python / .NET 示例) | https://...services.ai.azure.com/... |
FOUNDRY_MODEL |
部署的模型名 | gpt-5.4-mini |
Azure 凭证(AzureCliCredential /
DefaultAzureCredential /
ManagedIdentityCredential) |
与 Azure 资源交互 | 本地开发用 az login;生产建议用
ManagedIdentityCredential |
各示例目录 .env / README |
每个 sample 单独配置所需 provider 与密钥 | 见 python/samples/、dotnet/samples/ |
官方建议:
DefaultAzureCredential适合开发,生产环境应使用具体凭证(如ManagedIdentityCredential),避免回退探测带来的延迟与安全风险。
9. 常用运维命令
# Python
pip install -U agent-framework
python your_agent_app.py
# .NET
dotnet add package Microsoft.Agents.AI
dotnet build
dotnet run
# 安装 Agent Framework builder skill 给 Claude / Cursor 等编码 Agent
gh skill install microsoft/agent-framework agent-framework-builder-python@main
# 或用跨 agent skills CLI
npx skills add microsoft/agent-framework --skill agent-framework-builder-python
# 升级依赖 / 查看示例
git pull
cd python/samples && ls10. 常见故障排查
- Azure 凭证报错:先执行
az login;生产环境改用ManagedIdentityCredential。 - API Key 报错:检查密钥是否正确、是否对应该资源 / provider;不要把开发 Key 带进生产。
- 找不到
agent_framework模块:确认pip install agent-framework成功;Windows 上首次安装较慢,看是否真的完成。 - .NET 还原失败:确认 NuGet
源可访问;
dotnet restore重试。 - 多 Agent 工作流不持久化:检查是否接入了 Durable Task 扩展(Durable Agent Framework extension)。
- OpenTelemetry 没数据:确认环境变量与 exporter
配置;参考
python/samples/02-agents/observability/。 - 第三方系统数据出边界:官方明确提醒,与非 Azure 模型 / 第三方服务器集成时,数据合规与安全由使用方负责。
11. 风险与合规说明
- 许可证:以仓库根目录 LICENSE 为准(微软开源项目通常为 MIT 类宽松许可);商用前请核对最新版本。
- 框架定位:MAF 是开发框架,不是托管服务;部署形态、鉴权、限流、监控、合规由你自己负责。
- 第三方系统风险:官方 Important Notes 明确:使用第三方服务器、Agent、代码、非 Azure 模型时,"风险由使用方自担",需自行审查数据流向、留存、地域边界与合规。
- 负责任 AI:官方要求使用方自行实现 metaprompt、内容过滤、安全系统,确保应用质量、可靠性、安全与可信;参见 TRANSPARENCY_FAQ.md。
- 云成本:Foundry / Azure OpenAI / OpenAI 等模型调用均按对应平台计费;生产前先压测与设置用量告警。
- 版本演进:框架仍在快速迭代,从 Semantic Kernel / AutoGen 迁移时请按官方迁移指南逐步进行。