Microsoft Agent Framework
用 Python 和 .NET 构建、编排并部署生产级 AI 智能体工作流。
按维度查看评分与理由
证据显示:仓库包含安全策略(SECURITY.md)和CodeQL工作流,但未提供权限最小化、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚等具体实现细节。扣分原因:这些方面仅部分提及或未明确说明。来源归属:明确为Microsoft官方组织,但未提供具体作者或贡献者信息。
证据显示:README和代码结构一致,但未提供依赖可用性、失败消息的具体实现。扣分原因:自一致性尚可,但依赖可用性和失败消息仅部分覆盖。
证据显示:README明确目标受众和场景,提供多种示例,但未明确能力边界和触发精度。扣分原因:环境适配良好,但能力边界和触发精度未充分说明。
证据显示:README结构清晰,提供安装说明和示例,但未提供命名稳定性、已知限制、版本变更日志。扣分原因:信息架构和安装说明良好,但命名稳定性、已知限制、版本变更日志缺失。
证据显示:README提供快速入门和示例,但未提供成本效益分析。扣分原因:输出可用性和边际价值尚可,但成本效益未说明。
证据显示:README中的声明未提供具体证据,且未区分事实与推断。扣分原因:声明可追溯性、交叉来源验证、事实与推断分离均不足。
- 静态审查无法验证实际运行行为,所有评分基于源代码和文档。
- 依赖安全性和外部影响未在提供的文件中详细说明,需进一步审查。
- 版本变更日志和已知限制未在README中提及,可能影响用户决策。
这个 Agent 能做什么,适合哪些场景?
Microsoft Agent Framework(MAF)是面向 Python 与 C#/.NET 的开源框架,用于构建生产级 AI 智能体和多智能体工作流。它提供 Agent/AIAgent 接口、提供商集成、中间件,以及基于图的顺序、并发、交接和群组协作编排模式。工作流支持检查点、流式处理、人工介入和 time-travel,并提供 OpenTelemetry 集成用于分布式追踪、监控与调试。项目还提供 YAML 声明式智能体、Agent Skills、DevUI,以及本地开发和云部署样例,包括 Foundry 托管智能体、A2A、Azure Functions 与 Durable Task。
开发者可在 Python 中创建 Agent,并传入 FoundryChatClient、名称和 instructions;调用 await agent.run(...) 后获得模型响应。在 .NET 中,可通过 new AIProjectClient(...).AsAIAgent(...) 创建 AIAgent,再用 await agent.RunAsync(...) 调用它。框架提供中间件处理请求、响应和异常,并用图式工作流组织多个智能体的顺序、并发、交接或群组协作执行;工作流可进行检查点、流式输出和人工介入。它还提供 OpenTelemetry 追踪、YAML 声明式配置,以及用于 Foundry 托管基础设施的部署样例。
- Python 团队需要把单次聊天原型扩展为可检查点、可重启的多智能体工作流时。
- 使用 C#/.NET 的应用团队希望通过 AIAgent 和 RunAsync 将 Microsoft Foundry 智能体接入现有服务时。
- 需要在顺序、并发、交接或群组协作模式中编排多个智能体的业务系统开发者。
- 需要借助 OpenTelemetry 对智能体调用进行分布式追踪、监控和调试的平台团队。
- 计划使用 Foundry 托管智能体,或评估 A2A、Azure Functions、Durable Task 托管样例的 Azure 团队。
这个 Agent 有哪些优点和局限?
- 同时提供 Python 和 C#/.NET 实现,并强调一致的 API 基础。
- 工作流覆盖顺序、并发、交接和群组协作,并列出检查点、流式处理、人工介入和 time-travel。
- 内置 OpenTelemetry 集成,面向分布式追踪、监控和调试。
- 提供多个生态集成方向,包括 Microsoft Foundry、Azure OpenAI、OpenAI 和 GitHub Copilot SDK,并附有本地与云端托管样例。
- Python 快速入门依赖 Azure CLI 登录和 Azure 凭据;.NET Foundry 示例依赖 Azure 项目终结点及 Azure.Identity。
- 第三方服务器、智能体、代码或非 Azure Direct 模型由其自身许可条款约束,使用方需自行承担费用、数据流和合规责任。
- 项目明确要求应用开发者自行审查、测试并实现内容过滤、metaprompt 等负责 AI 缓解措施。
- 提供商支持虽较广,但具体样例和环境变量配置分散在各样例目录,接入前需要按目标提供商核对。
如何安装或部署这个 Agent?
Python:运行 pip install agent-framework。README 的 Python Foundry 快速入门还要求先执行 az login,并安装示例导入所需的 azure.identity;随后创建 Agent(client=FoundryChatClient(credential=AzureCliCredential()), name="HaikuAgent", instructions="..."),并调用 await agent.run("Write a haiku about Microsoft Agent Framework.")。
.NET:运行 dotnet add package Microsoft.Agents.AI。如使用 README 的 Foundry 快速入门,还需运行 dotnet add package Microsoft.Agents.AI.Foundry、dotnet add package Azure.AI.Projects 和 dotnet add package Azure.Identity,并设置 AZURE_AI_PROJECT_ENDPOINT;AZURE_AI_MODEL_DEPLOYMENT_NAME 可选,默认示例值为 gpt-5.4-mini。
如何使用这个 Agent?
Python 首次调用可使用 FoundryChatClient(credential=AzureCliCredential()) 创建 Agent,并在 asyncio.run(main()) 中执行 print(await agent.run("Write a haiku about Microsoft Agent Framework."))。端点、部署名称和 API 版本可经环境变量配置,或直接传给 FoundryChatClient。
.NET 可读取 AZURE_AI_PROJECT_ENDPOINT,使用 new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential()).AsAIAgent(model: deploymentName, instructions: "...", name: "HaikuAgent") 创建 AIAgent,然后执行 Console.WriteLine(await agent.RunAsync("Write a haiku about Microsoft Agent Framework."))。
这个 Agent 与同类方案有什么区别?
项目提供从 Semantic Kernel 和 AutoGen 迁移的指南;给定材料未声明与这些框架的功能完全对等。