Skip to content

入门基础

适用读者:有 C# 和 .NET 开发基础,想系统学习微软 AI Agent 框架的开发者 更新日期:本文基于 2026 年 4 月发布的 Microsoft Agent Framework SDK

本教程带你从零到生产,走完 Microsoft Agent Framework 的完整入门路径。


学习路径

本教程分为 7 个章节,建议按顺序阅读:

章节核心内容预计用时
Step 1:创建第一个 AgentAIProjectClient、RunAsync、流式响应20 分钟
Step 2:工具调用Function Calling、工具注册、设计原则30 分钟
Step 3:多轮对话AgentSession、序列化与恢复25 分钟
Step 4:持久化内存ChatHistoryProvider、Context Provider20 分钟
Step 5:工作流编排Executor、WorkflowBuilder、DAG30 分钟
Step 6:托管部署ASP.NET Core 集成、A2A 协议、Docker25 分钟
常见问题FAQ、最佳实践、学习资源15 分钟

前置准备

环境要求

  • .NET 8 SDK 或更高版本
  • Azure 订阅(可使用免费试用账户)
  • 已部署的 Azure OpenAI 资源(或 OpenAI API Key)
  • Visual Studio 2022 / VS Code + C# Dev Kit

官方 NuGet 包

Microsoft Agent Framework 的核心包:

包名用途
Azure.AI.ProjectsAzure AI 项目客户端,Agent 的入口点
Azure.IdentityAzure 身份认证(DefaultAzureCredential)
Microsoft.Agents.AIAgent 核心库(AIAgent 基类)
Microsoft.Agents.AI.Workflows工作流引擎(可选)
Microsoft.Agents.AI.HostingASP.NET Core 托管(可选)

MCP 开发助手

Microsoft Learn 提供了 MCP(Model Context Protocol)端点,可以让 AI 开发工具直接搜索官方文档:

yaml
# ~/.hermes/config.yaml
mcp_servers:
  microsoft-learn:
    url: "https://learn.microsoft.com/api/mcp"
    timeout: 30

配置后,AI 开发工具可以在编码过程中查询最新官方文档,覆盖日常开发中绝大部分的文档查询需求。


关于 Streamable HTTP 传输方式

Microsoft Learn 的 MCP 端点使用的是 Streamable HTTP 传输方式,而不是传统的 stdio 传输。这意味着客户端需要同时接受 application/jsontext/event-stream 两种 Content-Type。第一次 POST 请求返回的是 SSE(Server-Sent Events)格式的响应,包含 JSON-RPC 2.0 格式的消息。Hermes Agent 的内置 MCP 客户端已经支持这种传输方式,你只需要把上面的配置添加到 config.yaml 中,重启后就能自动发现可用的 MCP 工具。


了解 Microsoft Agent Framework 的架构

Microsoft Agent Framework 由多层架构组成,理解这些层有助于你快速定位所需的功能:

┌─────────────────────────────────────────────────────────┐
│                   应用层(你的 App)                       │
├─────────────────────────────────────────────────────────┤
│  ┌──────────────────┐  ┌──────────────────────────────┐  │
│  │  托管层 Hosting   │  │  协议层 A2A / OpenAI / AG-UI  │  │
│  │  (DI注册/工作流)   │  │  (对外暴露 Agent)            │  │
│  └────────┬─────────┘  └──────────────┬───────────────┘  │
├───────────┴───────────────────────────┴─────────────────┤
│  ┌────────────────────────────────────────────────────┐  │
│  │            Agent 核心层                             │  │
│  │  ChatClientAgent · AIAgent · AgentSession          │  │
│  │  工具调用 · 多轮对话 · 记忆 · 流式响应              │  │
│  └────────────────────────────────────────────────────┘  │
├─────────────────────────────────────────────────────────┤
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐  │
│  │ OpenAI   │ │ Azure    │ │ Ollama   │ │ Anthropic  │  │
│  │ IChatClient│ │ IChatClient│ │ IChatClient│ │ IChatClient│  │
│  └──────────┘ └──────────┘ └──────────┘ └────────────┘  │
├─────────────────────────────────────────────────────────┤
│  向量数据库 · 聊天历史 · Context Provider · 安全检查     │
└─────────────────────────────────────────────────────────┘

这张图展示的是 MAF 的完整技术栈,从上到下分为四个层次。最上层是应用层,即你的 ASP.NET Core 项目或 Console 应用程序。第二层是托管与协议层,由 Microsoft.Agents.AI.Hosting 提供——它负责把 Agent 注册到 ASP.NET Core 的依赖注入容器中,并通过 A2A(Agent-to-Agent)协议、OpenAI 兼容端点或 AG-UI 协议对外暴露。第三层是 Agent 核心层,包含 AIAgent 基类、ChatClientAgent 实现、AgentSession 会话管理以及工具调用和流式响应等核心能力。最底层是基础设施层,包括不同 AI 提供商的 IChatClient 实现、向量数据库集成、聊天历史存储和安全检查机制。

理解这个分层架构很重要,因为你开发 Agent 时往往不会只用到某一层。举个例子:你定义了一个 ChatClientAgent(核心层),然后在 Program.cs 中用 builder.AddAIAgent() 注册到 DI(托管层),最后通过 app.MapA2A() 以 A2A 协议对外公开(协议层)。这三层是一起工作的,缺少任何一层 Agent 都无法真正服务于用户。


快速开始

准备好了?直接跳到 创建第一个 Agent 开始编码。

学而不思则罔,思而不学则殆