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 提供商,当选择发生变更时,开发人员将被迫重写大量代码。
SDK 的设计与 AI 无关。 它提供用于接收消息、管理状态和路由事件的基架,但对生成响应的内容没有假设。 开发人员插入他们喜欢的任何 AI 服务或编排库。 SDK 不会妨碍该选择。
处理聊天状态很难。 对话不是无状态性的。 用户可能会提出一个后续的问题,或提到两轮前所说的内容,或者中断对话,稍后继续。 管理该上下文,包括跟踪所发生的情况、存储位置以及消息之间流动的方式,这个过程从头开始生成繁琐且容易出错。
SDK 提供内置状态和存储管理。 它引入了轮次的概念(对话中的单个工作单元),在多个轮次中自动跟踪状态,而无需开发人员配置自己的持久性层。 这意味着样本代码更少,聊天流逻辑中的 bug 更少。
如何衔接和运作
SDK 的核心是在消息到达时执行三项操作:
从任何发送渠道(如 Teams、网络聊天、Slack 等)接收消息,并将其标准化为称为
Activity的通用格式。将活动路由到代理代码中的相应处理程序。 例如,消息活动触发一个处理程序,一个加入会话的用户将触发另一个处理程序。
通过同一通道发送响应,并将您的响应转换回该通道所期望的格式。
开发人员为他们关心的活动类型编写处理程序。 SDK 处理其他所有内容,包括身份验证、消息格式转换和通道连接。
Agents SDK 并非
代理 SDK 不是 AI 模型、业务流程引擎或无代码生成器。 Agents SDK 不决定智能体说什么。 这些元素取决于开发人员接入智能体的 AI 服务或业务逻辑。 代理 SDK 是一种框架,可跨通道可靠地从该逻辑获取消息,并且会话状态保持不变。