什么是 Microsoft 365 智能体 SDK

Microsoft 365 智能体 SDK是用于生成聊天代理的开发框架。 对话代理是可从用户接收消息、处理消息和响应的软件。 可以将它看作是一个管道层,位于用户发送消息(无论是在 Teams、网站、Slack 还是其他地方)和你为响应这些消息而构建的业务逻辑之间。

SDK 处理跨不同图面接收和发送消息的机制,因此开发人员可以专注于代理实际执行的操作,而不是低级别通信协议。

支持的语言

智能体 SDK 支持:

  • 使用 .NET 8.0 SDK 的 C#
  • 使用 Node.js 版本 18 及更高版本的 JavaScript
  • 使用版本 3.9 到 3.11 的 Python

代理 SDK 解决的三个问题

  • 代理需要在多个位置工作。 用户并不是都通过同一通道进行通信。 一些使用Microsoft Teams,一些使用智能 Microsoft 365 Copilot 副驾驶®,一些使用公司网站,一些使用非Microsoft工具,如 Slack 或 Facebook Messenger。 如果没有框架,开发人员需要为每个图面编写单独的集成代码,每个图面都有其自己的消息格式、身份验证方案和连接协议。

    SDK 提供通道抽象层。 你只需编写一次代理逻辑,而 SDK 会将传入和传出消息转换为每个通道所需的格式。 添加新通道不需要重写代理的核心行为。

  • 你不想被锁定到一个 AI 服务中。 选择为代理提供支持的 AI 服务,无论是 Azure AI Foundry、OpenAI、语义内核 或其他服务,都会随着技术领域的发展和不同用例的出现而频繁变化。 在集成了特定 AI 提供商的代理框架中,当开发人员需要更换该 AI 选择时,他们被迫重写代码中的大部分内容。

    SDK 的设计与 AI 无关。 它提供用于接收消息、管理状态和路由事件的基架,但对生成响应的内容没有假设。 开发人员插入他们喜欢的任何 AI 服务或编排库。 SDK 不会妨碍该选择。

  • 处理聊天状态很难。 对话不是无状态性的。 用户可能会提出一个后续的问题,或提到两轮前所说的内容,或者中断对话,稍后继续。 管理该上下文,包括跟踪所发生的情况、存储位置以及消息之间流动的方式,这个过程从头开始生成繁琐且容易出错。

    SDK 提供内置状态和存储管理。 它引入了轮次的概念(对话中的单个工作单元),在多个轮次中自动跟踪状态,而无需开发人员配置自己的持久性层。 这意味着样本代码更少,聊天流逻辑中的 bug 更少。

如何衔接和运作

SDK 的核心是在消息到达时执行三项操作:

  1. 从任何发送渠道(如 Teams、网络聊天、Slack 等)接收消息,并将其标准化为称为Activity的通用格式。

  2. 将活动路由到代理代码中的相应处理程序。 例如,消息活动触发一个处理程序,一个加入会话的用户将触发另一个处理程序。

  3. 通过同一通道发送响应,并将其转换为该通道所需的格式。

开发人员为他们关心的活动类型编写处理程序。 SDK 处理其他所有内容,包括身份验证、消息格式转换和通道连接。

代理商 SDK 不包括什么

代理 SDK 不是 AI 模型、业务流程引擎或无代码生成器。 代理 SDK 不决定代理的说话内容。 开发人员连接到代理的 AI 服务或业务逻辑负责这些元素。 代理 SDK 是一种框架,可跨通道可靠地从该逻辑获取消息,并且会话状态保持不变。

后续步骤