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 的核心是在消息到达时执行三项操作:
从任何发送渠道(如 Teams、网络聊天、Slack 等)接收消息,并将其标准化为称为
Activity的通用格式。将活动路由到代理代码中的相应处理程序。 例如,消息活动触发一个处理程序,一个加入会话的用户将触发另一个处理程序。
通过同一通道发送响应,并将其转换为该通道所需的格式。
开发人员为他们关心的活动类型编写处理程序。 SDK 处理其他所有内容,包括身份验证、消息格式转换和通道连接。
代理商 SDK 不包括什么
代理 SDK 不是 AI 模型、业务流程引擎或无代码生成器。 代理 SDK 不决定代理的说话内容。 开发人员连接到代理的 AI 服务或业务逻辑负责这些元素。 代理 SDK 是一种框架,可跨通道可靠地从该逻辑获取消息,并且会话状态保持不变。