首页/新闻资讯/正文详情

Microsoft Agent Framework 中 Agent 的架构形态

发布时间:2026/9/27 7:10:36 来源:云帆数科 栏目:资讯中心
Microsoft Agent Framework 中 Agent 的架构形态
目录1. 应用托管型 AgentApplication-owned Agent可用的模型提供商不同 Model Provider 面向 Microsoft Agent Framework 提供的能力.NET SDK 和 Endpoint2. 自定义实现型 AgentCustom Agent引用 Abstractions 包自定义 AIAgent3. 远程托管型 AgentRemote / Managed AgentMicrosoft FoundryGitHub CopilotCopilot StudioAnthropic ClaudeA2A总结在使用 Microsoft Agent Framework 时会接触到不同类型的 Agent。它们的创建方式、运行位置以及管理方式都有所不同。按照微软官方文档的划分可以主要从下面三类来理解应用托管型 AgentApplication-owned Agent自定义实现型 AgentCustom Agent远程托管型 AgentRemote / Managed Agent今天我们来解剖一下这三种 Agent 的类型。1. 应用托管型 AgentApplication-owned Agent我们首先来介绍第一种。微软官方的命名是 Model providersApplication-owned Agent 这个名字是我根据 Agent 的职责划分命名的一个名字你可以理解为他们两者是等同的。与此同时这也是我们用得最多的一种形态。微软官方在 Model Providers 文档中是这样描述这种职责关系的模型提供商为 Agent 提供推理客户端。你的应用负责 Agent 定义、Instructions、Tools、Middleware 和 Session Policy而 Model Provider 负责模型推理以及 Provider 托管的相关能力。简单来说Agent Runtime 运行在自己的应用中Agent 的定义和执行流程由应用控制Model Provider 主要负责提供模型推理能力。在 Agent Framework 中ChatClientAgent就是这种开发方式中非常重要的一个 Agent 实现。它的基本结构是ChatClientAgent使用IChatClient与底层模型推理服务进行交互。因此Agent 和 Model Provider 实际上是两个不同的概念ChatClientAgent负责 Agent 的执行与运行管理Model Provider负责提供模型推理客户端以及 Provider 托管的相关能力。那么问题来了ChatClientAgent可以使用哪些模型服务这里并不仅仅只有 Azure。Agent Framework 的ChatClientAgent建立在Microsoft.Extensions.AI.IChatClient抽象之上。任何能够提供Microsoft.Extensions.AI.IChatClient实现的推理服务都可以作为ChatClientAgent的后端模型服务。可用的模型提供商不同 Model Provider 面向 Microsoft Agent Framework 提供的能力不同 Model Provider 面向 Agent Framework 暴露或提供的能力并不完全相同。除了基本的模型推理能力之外一些 Provider 还可以提供 Function Tools、 Structured Outputs、Code Interpreter、File Search、MCP Tools、 Background Responses 等能力。.NET SDK 和 Endpoint针对不同的 AI 服务或模型服务Agent Framework 在 .NET 中需要使用 对应的 Client SDK、NuGet Package 以及 Endpoint。到这里第一种 Agent 的开发方式基本就清楚了……2. 自定义实现型 AgentCustom Agent大多数情况下我们可以直接使用 Agent Framework 已经提供的ChatClientAgent。但是如果ChatClientAgent的执行机制无法满足业务需求需要自己控制 Agent 的核心执行逻辑Agent Framework 还提供了更底层的扩展方式直接继承AIAgent实现自己的 Agent。Microsoft Agent Framework 支持通过继承AIAgent类并实现所需的方法来构建 Custom Agent。这里需要注意Custom Agent 并不是和 Application-owned Agent 完全独立的另一套运行模式。Custom Agent 本质上仍然可以运行在自己的应用中只不过 Agent 的核心执行逻辑由开发者自己实现。简单来说当现成的ChatClientAgent无法满足业务场景需要自己控制 Session、消息处理、执行流程或响应生成逻辑时可以考虑实现 Custom Agent。引用 Abstractions 包自定义 Agent 需要引用dotnet add package Microsoft.Agents.AI.Abstractions自定义 AIAgentCustom Agent 的核心是继承 AIAgent并实现必要的 Session 管理和 Agent 执行方法。Session 可以基于 InMemoryAgentSession 实现但并不限定只能使用这一种 Session。下面先通过一个简单骨架看看 AIAgent 的主要扩展点internal sealedclassMyAgent : AIAgent{ // 1. 创建 Session protected override ValueTaskAgentSession CreateSessionCoreAsync( CancellationToken cancellationToken default) { thrownew NotImplementedException(); } // 2. Session 序列化 protected override ValueTaskJsonElement SerializeSessionCoreAsync( AgentSession session, JsonSerializerOptions? jsonSerializerOptions null, CancellationToken cancellationToken default) { thrownew NotImplementedException(); } // 3. Session 反序列化 protected override ValueTaskAgentSession DeserializeSessionCoreAsync( JsonElement serializedState, JsonSerializerOptions? jsonSerializerOptions null, CancellationToken cancellationToken default) { thrownew NotImplementedException(); } // 4. Agent 非流式执行 protected override TaskAgentResponse RunCoreAsync( IEnumerableChatMessage messages, AgentSession? session null, AgentRunOptions? options null, CancellationToken cancellationToken default) { thrownew NotImplementedException(); } // 5. Agent 流式执行 protected override async IAsyncEnumerableAgentResponseUpdate RunCoreStreamingAsync( IEnumerableChatMessage messages, AgentSession? session null, AgentRunOptions? options null, [EnumeratorCancellation] CancellationToken cancellationToken default) { thrownew NotImplementedException();#pragma warning disable CS0162 yieldbreak;#pragma warning restore CS0162 }}从这个骨架可以看到自定义 AIAgent 主要需要处理两部分内容。第一部分是 Session 管理CreateSessionCoreAsyncSerializeSessionCoreAsyncDeserializeSessionCoreAsync第二部分是 Agent 执行RunCoreAsyncRunCoreStreamingAsync实际上Agent Framework 自带的 ChatClientAgent 本身也是 AIAgent 的一个具体实现。Microsoft 已经在其中实现了 Session 管理、非流式执行、流式执行以及与 IChatClient 交互等逻辑。因此大多数常规的模型 Agent 场景直接使用 ChatClientAgent 即可3. 远程托管型 AgentRemote / Managed Agent前面两种方式主要讨论的是 Agent Framework 应用侧的 Agent 实现。除此之外Agent Framework 还可以接入已经运行在远程服务中的 Agent。微软将这一类集成归到 Agent Services。Agent Services 提供的是远程或托管的 Agent Runtime而不仅仅是模型推理能力。远程服务可以负责 Agent Definition、Hosted Tools、Permissions、Session 或 Execution Lifecycle这也是远程托管型 AgentRemote / Managed Agent和 应用托管型 AgentApplication-owned Agent 一个很重要的区别应用托管型 AgentApplication-owned Agent 主要为应用侧 Agent 提供模型推理客户端 远程托管型 AgentRemote / Managed Agent则提供远程或托管的 Agent RuntimeMicrosoft FoundryMicrosoft Agent Framework 提供了对 Microsoft Foundry Agent Service 的集成。应用可以通过 Agent Framework 接入运行在 Microsoft Foundry 中的 Prompt Agent 或 Hosted Agent。Agent 的定义、版本、Hosted Tools、Conversation 以及服务端执行可以由 Microsoft Foundry 负责。GitHub CopilotAgent Framework 可以接入 GitHub Copilot 的 Coding Agent Runtime。Agent Runtime、Session、权限以及 Shell、File、URL 等内置能力和 MCP 连接由 GitHub Copilot 侧负责Agent Framework 则通过统一接口与这个远程 Agent Runtime 进行交互。目前该集成支持 C#、Python 和 Go。Copilot StudioAgent Framework 可以接入已经发布到 Copilot Studio 中的 Agent。Agent 的 Topics、Knowledge、Actions、Plugins 以及远程执行由 Copilot Studio 负责应用通过 Agent Framework 与这个远程 Agent 进行交互。目前该集成支持 C# 和 Python。Anthropic ClaudeAgent Framework 可以接入由 Claude Agent SDK 提供的 Agent Runtime。Agent Runtime、Session、权限、内置 Tools 和 MCP 连接由 Claude Agent SDK 侧负责。目前 Agent Framework 的这项 Agent Service 集成支持 Python。A2AAgent Framework 还可以通过 A2A 接入符合 A2A 规范的远程 Agent。远程 Agent 负责自己的 Agent Definition、Tools、Session、Task 和 ExecutionAgent Framework 通过 A2A 与其进行交互。目前该集成支持 C#、Python 和 Go。总结理解 Microsoft Agent Framework 中的 Agent可以先抓住一个关键问题Agent Runtime 到底运行在哪里谁负责 Agent 的执行如果 Agent 运行在自己的应用中通常可以直接使用 ChatClientAgent通过 IChatClient 接入不同的 Model Provider。如果现成的 ChatClientAgent 无法满足需求需要自己控制 Session、执行流程或响应生成逻辑可以继承 AIAgent 实现 Custom Agent。如果 Agent 已经运行在 Microsoft Foundry、GitHub Copilot、Copilot Studio、Claude Agent SDK 或其他支持的远程环境中则可以通过 Agent Framework 的 Agent Services 集成进行调用。把 Agent 本身、Model Provider 和 Agent Service 这三个概念分开之后Microsoft Agent Framework 的整体结构就比较容易理解了。引入地址

相关推荐

Texture 布局引擎深入解析:从 ASLayoutSpec 到 UIKit 渲染的完整流程
Texture 布局引擎深入解析:从 ASLayoutSpec 到 UIKit 渲染的完整流程

移动开发UI组件 【免费下载链接】Texture Smooth asynchronous user interfaces for iOS apps. 项目地址: https://gitcode.com/gh_mirrors/te/Texture 点击查看 免费下载 导读 本篇技术指南以 Texture(AsyncDisplayKit)官方开发文档《Layo… · 2026/9/27 7:10:36

Model-Optimizer 投机解码实战指南:用 Medusa 与 EAGLE 将 LLM 推理延迟降至最低
Model-Optimizer 投机解码实战指南:用 Medusa 与 EAGLE 将 LLM 推理延迟降至最低

人工智能大模型模型优化模型量化模型压缩 【免费下载链接】Model-Optimizer A unified library of SOTA model optimization techniques like quantization, distillation, pruning, neural architecture search, speculative decoding, etc. It compresses deep learning mode… · 2026/9/27 7:10:29

旅游网站怎么做才能被关注?附保姆级建站教程
旅游网站怎么做才能被关注?附保姆级建站教程

旅游网站怎么做才能被关注?附保姆级建站教程 找建站公司怕被坑高价?别急着下单。很多旅游同行花了几万块做的站,上线后流量惨淡,原因不在代码,而在运营逻辑。这份保姆级建站教程,不讲虚的,直接拆解如何从零搭建一个既能被搜索引擎收录,又能让用户驻足… · 2026/9/27 7:10:23

30 分钟跑通 TradingAgents-CN:多智能体金融分析框架的完整部署与验证
30 分钟跑通 TradingAgents-CN:多智能体金融分析框架的完整部署与验证

30 分钟跑通 TradingAgents-CN:多智能体金融分析框架的完整部署与验证 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 如果你希望用多… · 2026/9/27 7:55:12

Spring IoC和DI概念篇
Spring IoC和DI概念篇

目录 一、Spring、Spring MVC、Spring Boot的关系和区别 1.1Spring是什么? 1.2Spring MVC是什么? 1.3Spring Boot是什么? 1.4三者关系总结 二、IoC入门:什么是容器、IoC、DI 2.1什么是容器? 2.2什么是IoC&#… · 2026/9/27 7:55:12

jose 远程 JWKS 缓存类型 JWKSCacheInput 全解析:在无状态云运行时中持久化 JWKS 缓存
jose 远程 JWKS 缓存类型 JWKSCacheInput 全解析:在无状态云运行时中持久化 JWKS 缓存

网络安全认证鉴权后端 【免费下载链接】jose JWA, JWS, JWE, JWT, JWK, JWKS for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes 项目地址: https://gitcode.com/gh_mirrors/jo/jose 点击查看 免费下载 在 Node.js、浏览… · 2026/9/27 7:55:12

axton-obsidian-visual-skills 常见陷阱清单:文字偏移、元素重叠与中文手写字体失效的真相与解法
axton-obsidian-visual-skills 常见陷阱清单:文字偏移、元素重叠与中文手写字体失效的真相与解法

axton-obsidian-visual-skills 常见陷阱清单:文字偏移、元素重叠与中文手写字体失效的真相与解法 【免费下载链接】axton-obsidian-visual-skills Visual Skills Pack for Obsidian: generate Canvas, Excalidraw, and Mermaid diagrams from text with Claude Code… · 2026/9/27 7:55:12

nexu模型配置完全指南:Nexu Official登录即用 vs BYOK自带API Key怎么选?
nexu模型配置完全指南:Nexu Official登录即用 vs BYOK自带API Key怎么选?

nexu模型配置完全指南:Nexu Official登录即用 vs BYOK自带API Key怎么选? 【免费下载链接】nexu The simplest desktop client for OpenClaw 🦞 — bridge your Agent to WeChat, Feishu, Slack & Discord in one click. Works with Clau… · 2026/9/27 7:55:12

无需信用卡的免费LLM API清单:awesome-freellm-apis 31家提供商免费额度全盘点
无需信用卡的免费LLM API清单:awesome-freellm-apis 31家提供商免费额度全盘点

无需信用卡的免费LLM API清单:awesome-freellm-apis 31家提供商免费额度全盘点 【免费下载链接】awesome-freellm-apis 134 free LLM APIs & AI API keys from 40 providers. Google Gemini, NVIDIA NIM, Groq, OpenRouter & more. One-click setup for Cla… · 2026/9/27 7:55:06

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码