news 2026/1/10 8:33:37

Microsoft 代理框架简介(预览版):让每个开发人员都能轻松使用 AI 代理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Microsoft 代理框架简介(预览版):让每个开发人员都能轻松使用 AI 代理

工智能代理(AI Agents)正逐渐成为现代软件开发的重要组成部分,它们能够结合推理、上下文和工具来追求特定目标。然而,许多开发人员在构建 AI 代理时面临复杂编排逻辑、多模型连接困难以及部署基础设施繁琐等问题。Microsoft 代理框架(Microsoft Agent Framework)的推出,旨在简化这一过程,让开发人员能够像创建 Web API 或控制台应用一样轻松构建 AI 代理。本文将详细介绍 Microsoft 代理框架的核心概念、功能特性以及如何使用它快速构建 AI 代理系统。

正文内容

代理与工作流:AI 系统的核心构建块

在深入探讨 Microsoft 代理框架之前,我们需要先理解代理(Agents)和工作流(Workflows)这两个核心概念。

代理(Agents)

代理是结合推理、上下文和工具来追求目标的系统。它们由三个关键组件组成:

推理和决策:代理需要推理能力来决定为实现其目标采取哪些行动。这通常由大型语言模型(LLM)提供支持,但也可以使用搜索算法、规划系统等其他技术。

上下文感知:上下文是为决策提供信息的外部数据或状态。由于模型没有对实时或系统特定信息的内置访问权限,因此需要额外的输入(如对话历史、知识库或企业数据)来做出明智决策。

工具使用:工具是离散的、可调用的功能,如API、模型上下文协议(MCP)工具、代码执行或数据查询。它们扩展系统能力但不自行决策。

工作流(Workflows)

随着目标复杂性增加,需要将其分解为可管理步骤,这就是工作流的用武之地。工作流将复杂目标构建为一系列步骤,协调跨人员或系统的任务以有效实现目标。例如,软件交付工作流可能包括需求收集、设计、实现、测试和部署等阶段。

代理+工作流

虽然工作流可以作为预定序列运行,但集成代理增加了动态决策和适应性,实现更智能、自主的流程管理。代理、工具和工作流都是高度可组合的,这种分层架构支持构建灵活、智能且可扩展的系统。

认识 Microsoft 代理框架

Microsoft 代理框架是一套全面的.NET库,旨在降低代理开发复杂性。无论您构建简单聊天机器人还是编排复杂工作流中的多个AI代理,该框架都提供所需工具:

用最少样板代码构建代理

轻松编排多代理工作流

使用熟悉的.NET模式托管和部署代理

监控生产中的代理行为

建立在经过验证的基础上

Microsoft 代理框架基于以下成熟技术构建:

Semantic Kernel:提供强大的编排能力

AutoGen:支持先进的多代理协作和研究驱动技术

Microsoft.Extensions.AI:为.NET提供标准化AI构建块

这种组合使框架具有可靠性、灵活性和开发者友好的API,让您能快速高效地构建部署强大AI代理。

从简单开始:几分钟内构建第一个代理

Microsoft 代理框架入门非常简单。以下示例将构建一个生成引人入胜短篇小说的创意写作代理。

步骤0:配置先决条件

需要准备:

.NET 9 SDK或更高版本

具有模型范围的GitHub个人访问令牌(PAT)

设置环境变量:

export GITHUB_TOKEN="YOUR-GITHUB-TOKEN"

步骤1:设置项目

创建新C#控制台应用并安装必要包:

dotnet new console -o HelloWorldAgents

cd HelloWorldAgents

dotnet add package Microsoft.Agents.AI --prerelease

dotnet add package OpenAI

dotnet add package Microsoft.Extensions.AI.OpenAI --prerelease

dotnet add package Microsoft.Extensions.AI

步骤2:编写代理

将以下代码添加到Program.cs文件:

using Microsoft.Extensions.AI;

using Microsoft.Agents.AI;

using OpenAI;

using OpenAI.Chat;

using System.ClientModel;

IChatClient chatClient = new ChatClient(

"gpt-4o-mini",

new ApiKeyCredential(Environment.GetEnvironmentVariable("GITHUB_TOKEN")!),

new OpenAIClientOptions { Endpoint = new Uri("https://models.github.ai/inference") })

.AsIChatClient();

AIAgent writer = new ChatClientAgent(

chatClient,

new ChatClientAgentOptions

{

Name = "Writer",

Instructions = "Write stories that are engaging and creative."

});

AgentRunResponse response = await writer.RunAsync("Write a short story about a haunted house.");

Console.WriteLine(response.Text);

运行应用程序,您就拥有了一个功能完整的AI代理!

抽象的力量

Microsoft 代理框架围绕简化代理开发的强大抽象设计。其核心是AIAgent抽象,它提供构建代理的统一接口。通过Microsoft.Extensions.AI标准化模型访问(通过IChatClient接口),您可以轻松在不同提供商(如OpenAI、Azure OpenAI、GitHub Models等)之间选择,而无需更改代理代码。

纵向扩展:编排多个代理

单个代理功能强大,但实际场景常需多个专业代理协作。例如,写作代理创建内容后,可能需要编辑代理润色或事实核查代理验证细节。

添加专业代理

// 创建专业编辑代理

AIAgent editor = new ChatClientAgent(

chatClient,

new ChatClientAgentOptions

{

Name = "Editor",

Instructions = "Make the story more engaging, fix grammar, and enhance the plot."

});

构建工作流

安装工作流包:

dotnet add package Microsoft.Agents.AI.Workflows --prerelease

创建工作流连接代理:

Workflow workflow = AgentWorkflowBuilder.BuildSequential(writer, editor);

AIAgent workflowAgent = await workflow.AsAgentAsync();

AgentRunResponse workflowResponse = await workflowAgent.RunAsync("Write a short story about a haunted house.");

Console.WriteLine(workflowResponse.Text);

现在运行时,编写者创建初始故事,编辑器自动审查改进,整个工作流对外表现为单个更强大的代理。

所有类型的工作流

Microsoft 代理框架支持多种工作流模式:

顺序:代理按顺序执行,沿链传递结果

并发:多个代理并行工作

交接:根据上下文或结果转移责任

群聊:代理在共享对话空间中协作

这些灵活类型支持从简单管道到动态多代理协作的各种编排需求。

为代理赋能工具

Microsoft 代理框架使代理能轻松访问外部功能、API和服务。

创建代理工具

[Description("Gets the author of the story.")]

string GetAuthor() => "Jack Torrance";

[Description("Formats the story for display.")]

string FormatStory(string title, string author, string story) =>

$"Title: {title}\nAuthor: {author}\n\n{story}";

将工具连接到代理

AIAgent writer = new ChatClientAgent(

chatClient,

new ChatClientAgentOptions

{

Name = "Writer",

Instructions = "Write stories that are engaging and creative.",

ChatOptions = new ChatOptions

{

Tools = [

AIFunctionFactory.Create(GetAuthor),

AIFunctionFactory.Create(FormatStory)

],

}

});

框架还支持更强大的工具,如模型上下文协议(MCP)服务器和托管工具(如代码解释器、Bing Grounding等)。

充满信心部署:简化托管

将代理投入生产不应意味着学习新部署模型。Microsoft 代理框架与您已使用的.NET托管模式无缝集成。

最小Web API集成

// 在ASP.NET最小Web API中注册IChatClient

builder.AddOpenAIClient("chat")

.AddChatClient(Environment.GetEnvironmentVariable("MODEL_NAME") ?? "gpt-4o-mini");

// 注册代理

builder.AddAIAgent("Writer", (sp, key) => {

var chatClient = sp.GetRequiredService<IChatClient>();

return new ChatClientAgent(

chatClient,

name: key,

instructions: "You are a creative writing assistant...",

tools: [AIFunctionFactory.Create(GetAuthor), AIFunctionFactory.Create(FormatStory)]

);

});

生产就绪功能

框架托管包括生产所需的一切:

通过标准.NET配置管理代理设置

与现有DI容器和实践集成

添加身份验证、速率限制或自定义逻辑的中间件支持

部署就像添加代理并部署到.NET运行的地方一样简单。

观察和改进:内置监控

生产代理需要可观测性。Microsoft 代理框架提供与现有可观测性堆栈集成的全面监控。

OpenTelemetry集成

启用详细遥测:

writer.WithOpenTelemetry();

editor.WithOpenTelemetry();

这捕获:

对话流程:可视化代理间消息移动

模型使用:跟踪令牌消耗、模型选择和成本

性能指标:监控响应时间和吞吐量

错误跟踪:快速识别和调试问题

丰富的仪表板

当连接到现有可观测性平台(如Aspire、Azure Monitor、Grafana等)时,您可以获得代理行为的详细洞察,帮助优化性能并在问题影响用户前识别它们。

确保质量:评估和测试

对AI系统的信任来自严格评估。Microsoft 代理框架可与Microsoft.Extensions.AI.Evaluations集成,帮助构建可靠、值得信赖的代理系统,支持:

自动化测试:作为CI/CD管道一部分运行评估套件

质量指标:衡量相关性、连贯性和安全性

回归检测:部署前捕获质量下降

A/B测试:比较不同配置

结论

Microsoft 代理框架为.NET开发者提供了一套强大工具,显著简化了AI代理的开发、编排和部署过程。通过抽象复杂性和建立在成熟技术基础上,它使得:

构建单个代理变得像编写几行代码一样简单

多代理协作可通过直观的工作流实现

部署与标准.NET应用模式无缝集成

生产监控开箱即用

无论您是构建简单聊天机器人还是复杂企业自动化系统,Microsoft 代理框架都能提供所需的基础设施和工具,让您专注于业务逻辑而非底层复杂性。随着AI代理在软件开发中扮演越来越重要的角色,这一框架无疑将成为.NET生态系统中的关键组成部分。

现在就开始使用Microsoft 代理框架,将AI代理的强大功能融入您的应用程序中,以更智能、更高效的方式解决业务挑战。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/7 16:16:14

剧想天开,造梦未来|一场关于“儿童剧人物造型”的想象力实验

儿童戏剧&#xff0c;是投射在少年儿童心灵舞台上的第一束光。人物造型&#xff0c;作为这束光中最具象、最绚烂的色彩&#xff0c;不仅定义角色的灵魂&#xff0c;更深刻影响着儿童认知世界的方式与审美情感的塑造。党和国家将美育置于培育时代新人的战略高度&#xff0c;而儿…

作者头像 李华
网站建设 2026/1/8 19:07:29

Vue Konva实战指南:从零构建交互式画布应用

Vue Konva实战指南&#xff1a;从零构建交互式画布应用 【免费下载链接】vue-konva Vue & Canvas - JavaScript library for drawing complex canvas graphics using Vue. 项目地址: https://gitcode.com/gh_mirrors/vu/vue-konva 你是否曾经想要在Vue应用中添加精美…

作者头像 李华
网站建设 2025/12/23 16:26:15

房产中介系统APP六大排名

在房产中介行业数字化转型的浪潮中&#xff0c;一款优质的房产中介房源管理系统成为提升运营效率、规范业务流程的核心支撑。无论是个体经纪人、夫妻小店&#xff0c;还是连锁中介机构&#xff0c;都需要适配自身需求的房产中介房源管理软件来实现房客源的精准管控、业务流程的…

作者头像 李华
网站建设 2025/12/23 11:24:51

16、Linux常用命令详解

Linux常用命令详解 1. ftpd命令 1.1 ftp子命令 命令 功能 site [command] 在远程机器上运行特定站点命令 size filename 返回远程机器上指定文件的大小 status 显示当前ftp状态 struct [struct-name] 设置文件传输结构,默认使用流结构 sunique 切换远程机器…

作者头像 李华
网站建设 2025/12/23 2:18:32

分布式系统一致性协议深度解析:从Paxos到Raft,再到工程落地实践

在分布式系统架构中&#xff0c;“一致性”是保障数据可靠性与服务可用性的核心命题。当数据分散存储于多个节点&#xff0c;如何在节点故障、网络分区、消息延迟等异常场景下&#xff0c;确保各节点数据视图一致&#xff0c;是分布式系统设计的关键挑战。Paxos、Raft、ZAB等一…

作者头像 李华
网站建设 2026/1/2 13:33:18

现代C++与Qt飞行仪表库:让飞行模拟开发触手可及

现代C与Qt飞行仪表库&#xff1a;让飞行模拟开发触手可及 【免费下载链接】QFlightInstruments QFlightInstruments clone with Qt and Modern C updates 项目地址: https://gitcode.com/gh_mirrors/qfl/QFlightInstruments 还在为飞行模拟项目中的仪表界面开发而头疼吗…

作者头像 李华