Page 1 of 1

客座博客:使用 Microsoft 365 Agents SDK 和 Semantic Kernel 实现现代 AI 飞跃

Posted: Sat Jan 25, 2025 9:26 am
by jrineakter
今天,我们邀请了一位客座作者 Arafat Tehsin,他是微软人工智能领域最有价值专家 (MVP)。他写了一篇我们在下面分享的文章,重点介绍了如何使用 Microsoft 365 Agents SDK 和 Semantic Kernel 实现现代人工智能的飞跃。我们将交给 Arafat 分享更多内容!

飞溅代理-sdk-sk
新年快乐。我知道你很期待看到这个。它是真实的,它正在发生,但你知道吗?它仍处于预览阶段,事情会发生变化。所以,做好准备吧。如果你想知道这个 SDK 到底是什么,那么尽管我在这篇文章中对它进行了很少的介绍,但你可能还想阅读微软团队为你快速整理的官方文档。这篇文章的目的是向你展示如何将 语义内核的代理框架 与 Microsoft 365 Agents SDK 一起使用,以及为什么这是一件大事。

我已经多次提到过 Bot Framework , 它是所有团队为对话式 AI 制作的最佳框架之一,但具体次数不详(大概 100 次左右)。我还记得, 它发展成为一款出色的产品,不仅面向代码优先的开发人员,还面向那些可以利用 Composer 客户端创造卓越 对话体验的人。然而,随着时间的推移和战略的变化,Copilot Studio 开始 发布那些 对当今对话式体验至关重要的酷炫功能。

在平行世界中,考虑到 Microsoft AI 的多个重点领域,已经在使用 Bot Framework SDK 的企业对其未来有些担心。为什么?因为他们没有看到任何与其他产品(例如 .NET AI Extensions、 Semantic Kernel、 Microsoft Copilot Studio 等)类似的速度的进步。我认为今天他们以 Microsoft Agents 365 SDK 的形式给出了答案(好吧,公平地说,这是一个早期的答案)。

Microsoft 365 Agents SDK(预览版)代表了构建企业级、可扩展、多渠道代理的重大进步。它使开发人员能够创建集成他们选择的 AI 服务(例如 Azure AI Foundry)并与 Semantic Kernel 等编排层连接的代理。这些代理可以部署在各种渠道上,包括通过 Direct Line、Microsoft Teams、Microsoft 365 Copilot 等进行部署。

换句话说,这个 SDK 弥补了 Bot Framework 奠定的坚实基础与现代 AI 驱动的对话体验所需的尖端功能之间的差距。您可以将其视为 Bot Framework 的自然演变,而不是替代品,因为实际上,它并不是 Bot Framework 的唯一替代品。

🚀语义内核提升 10 倍
Semantic Kernel 是一个企业级框架,用于 构建 投资者电子邮件列表 您的 AI 优先应用程序。每当我们看到生成式 AI 领域的任何进步时,无论是并行函数调用、向量存储、小型语言模型等等,我们都会看到这些功能正在快速推出。同样,他们 ChatCompletion 从第一天起就具备了这些功能,现在随着 Agentic AI 的进步,我们也拥有了一个代理框架。

然而,由于框架的轻量级特性,Semantic Kernel 依赖于开发人员构建自己的对话体验。例如对话事件处理(即当有人加入聊天时)、有效的中间件路由以及与外部渠道(如 Direct Line、Telephony、Microsoft Teams、Facebook、Slack 等)的集成。现在可以通过 Microsoft 365 Agent SDK、Azure Bot 和 Semantic Kernel 一起解锁这些功能。

具有语义内核的 Microsoft 365 Agent SDK 代理的序列图

目前,除了一个非常基本的用例外,该功能没有太多功能,该用例涉及从 Azure OpenAI 服务获取航班状态(模拟),并使用自适应卡作为响应。我将在后续文章中改进用例。

我们现在将探讨如何将 Semantic Kernel 的 Agent Framework 与 Microsoft 365 Agent SDK 代理集成,并通过 Azure Bot 将其展示到多个渠道。与 Bot Framework SDK 不同,您没有任何 Visual Studio 入门模板,因此您需要一个空的 ASP.NET Core 项目。获得该项目后,您所需要的只是一组 nuget 包,如下所示。

M365 代理 SDK 和语义内核的 NuGet 包

之后,你可以创建一个与我类似的文件夹结构,我会逐一解释。它看起来就是这样的。

M365 代理 SDK 和语义内核的解决方案结构

完整的工作示例现已成为 我的 repo 的一部分 ,您可以访问。如果您喜欢它,请给它一个星星,因为它也会帮助其他人。

免责声明:以下代码描述由 o1-preview 生成。

程序.cs
这是应用程序的入口点。它设置 Web 应用程序、配置服务并启动 Web 服务器。



TokenValidation:包含令牌验证的受众设置。
连接:包含机器人服务连接的设置,包括客户端 ID、客户端密钥和范围。
ConnectionsMap:将服务 URL 映射到连接。
日志记录:配置不同组件的日志记录级别
旅行代理.cs
该文件定义了 TravelAgent 类,它充当航班跟踪的虚拟助手。

构造函数:初始化内核、 ChatHistory和 ChatCompletionAgent。将添加 TimePlugin 到代理的内核。
InvokeAgentAsync:接受用户输入,将其添加到聊天历史记录中,调用代理,并确保响应采用正确的格式。
航班响应.cs
此文件定义了 FlightResponse 类,它表示预期的响应格式 TravelAgent

属性:具有适当的 JSON 序列化属性的 ContentType 和 Content。
时间插件.cs

如果您以前使用过 Bot Framework SDK 和 Azure Bot,那么流程仍然相同就不足为奇了。但是,如果您是新手,那么您可能需要先了解它。下面的屏幕截图是我为此演示创建的,然后我已将 Azure Bot 配置为使用我的 Web 应用程序。

Azure 资源管理

请注意,我有一个 Azure OpenAI 服务订阅,位于此资源组之外,因此您可以自行决定是否将其保留在内部或使用任何可用资源。您还可以从 Microsoft Learn 文档中了解如何配置 Azure Bot。我当前的设置只是将其呈现给 Microsoft Teams,而不是其他任何东西。 默认情况下,嵌入式 WebChat 和 DirectLine 处于启用状态。

代理渠道

我是 Microsoft 租户中的一员,以 Guest 身份,因此没有权限在 Teams 中安装应用。但是,我可以成功测试该应用。

Microsoft-Teams-代理

Microsoft 365 Agents SDK 和 Semantic Kernel 代表了 AI 驱动解决方案领域的重大飞跃。通过利用这些强大的工具,开发人员可以创建更智能、上下文感知的应用程序,以增强用户体验并简化工作流程。

语义内核的集成可以更深入地理解用户意图,从而实现更准确、更相关的响应。随着我们继续探索这些技术的潜力,创新的可能性是无限的。我将尝试在即将发布的帖子中揭示一些高级功能。下次见。