适用于:SDK v4
Microsoft Bot Framework 和 Azure AI 机器人服务是库、工具和服务的集合,可用于生成、测试、部署和管理智能机器人。 Bot Framework 包含用于生成机器人和连接到 AI 服务的模块化可扩展 SDK。 借助此框架,开发人员可以创建使用语音、理解自然语言、回答问题以及具有其他功能的机器人。
重要
Bot Framework SDK 和 Bot Framework Emulator 已在 GitHub 上存档。 项目不再更新或维护。 自 2025 年 12 月 31 日起,Bot Framework SDK 的支持票证将不再提供服务。
若要使用所选的 AI 服务、业务流程和知识生成代理,请考虑使用 Microsoft 365 代理 SDK。 代理 SDK 对 C#、JavaScript 或 Python 具有语言支持。 可以在 aka.ms/agents 了解有关代理 SDK 的详细信息。 如果现有的机器人是使用 Bot Framework SDK 生成的,则可以将机器人更新到代理 SDK。 查看 Bot Framework SDK 到代理 SDK 迁移指南的核心更改和更新。
如果要构建设计为在 Microsoft Teams 中工作的协作代理,请考虑使用 Teams SDK。 它为在 Teams 环境中运行的代理提供 Teams 特定的 API、自适应卡支持和内置 AI 协同调度功能。 可以在 Teams SDK(Teams AI 库)中了解详细信息。
如果要查找基于 SaaS 的代理平台,请考虑 Microsoft Copilot Studio。
有关每个版本的历史发行说明,请参阅 C# 版本、 JavaScript 版本、 Python 版本和 Java 版本 页。
什么是机器人?
机器人提供的体验让你感觉不太像在使用计算机,而更像是在与人或者与智能机器人打交道。 可使用机器人将简单的重复性任务(例如预订晚餐或收集个人信息)转移到可能不再需要直接人工干预的自动化系统。 用户使用文本、交互卡和语音与机器人聊天。 机器人交互可以是快速的问答,也可以是以智能方式提供服务访问权限的参与式会话。
可将机器人视为具有对话接口的 Web 应用程序。 你的用户通过通道(如 Microsoft Teams)或自定义应用程序连接到你的机器人。
- 根据机器人的配置方式及其在通道中注册的方式,交互的方式可以是文本或语音,也可以是图像和视频。
- 机器人处理用户的输入,以解读用户的要求或所说的内容。
- 机器人评估输入并执行相关任务,例如让用户提供其他信息,或代表用户访问服务。
- 机器人会回复用户,告知其当前正在执行或已完成的操作。
机器人通常作为 Web 应用程序实现,托管在 Azure 中,并使用 API 发送和接收消息。 机器人中的内容差异很大,具体取决于机器人的类型和其要实现的目的。 机器人可以接收消息并将其回显给用户,几乎没有涉及代码。 更复杂的机器人可以依赖各种工具和服务在各种平台上提供更丰富的体验。
机器人可以完成其他类型的软件可以完成的任务 - 读写文件、使用数据库和 API,以及执行常规的计算任务。 使机器人不同于其他软件的是,它们使用人与人之间的通信机制。
Azure AI 机器人服务 和 Bot Framework 包括:
- 用于使用 C#、JavaScript、Python 或 Java 语言开发机器人的 Bot Framework SDK。 (Java SDK 已停用,最终长期支持于 2023 年 11 月结束。)
- 对端到端机器人开发提供帮助的 CLI 工具。
- 机器人连接器服务,该服务在机器人和通道之间中继消息和事件。
- 用于机器人管理和配置的 Azure 资源。
另外,机器人可能使用其他 Azure 服务,例如:
- 用于生成智能应用程序的 Azure AI 服务
- 用于云存储解决方案的 Azure 存储
如何生成机器人
Azure AI 机器人服务和 Microsoft Bot Framework 提供一组集成的工具和服务,可帮助你在机器人生命周期的所有阶段设计和生成机器人。 适用于 C#、Java、TypeScript 和 Python 的 SDK。 请选择最喜欢的开发环境或命令行工具以创建机器人。
计划
与任何类型的软件一样,全面了解目标、流程和用户需求对于创建成功的机器人的过程非常重要。 可以创建简单的机器人,也可以让机器人包含较复杂的功能,例如语音、自然语言理解和问题解答。
在编写代码之前,请参阅设计指导,了解最佳做法并确定机器人的需求。
构建
通常,机器人是托管在 Azure 上的 Web 服务。 在 Azure 中,可以将机器人配置为从各种通道发送和接收消息和事件。 可在任意数目的环境和语言中创建机器人。 可以创建用于本地开发的机器人。
借助 Azure AI 机器人服务和 Bot Framework,可以使用其他库和服务来扩展机器人的功能。 下表介绍了 SDK 支持的一些功能。
| 功能 | 说明 | 详细信息 |
|---|---|---|
| 内存和存储 | 保留用户和对话状态 | 管理状态 |
| 自然语言理解 | 从用户输入中解读和提取信息 | 语言理解 |
| 富卡片 | 合并文本和其他媒体,例如图像、音频、视频和按钮 | 如何添加媒体和卡片 |
命令行工具,可帮助你创建、管理和测试机器人资产。 有关详细信息,请参阅 Azure CLI 和 Bot Framework 工具。
有关完整的代码示例,请参阅 Bot Framework 示例存储库。 这些示例演示了 SDK 的许多功能。
测试
机器人是复杂的应用,有大量不同的协同工作的部件。 就像其他复杂应用一样,这可能会导致出现一些有意思的 Bug,或者使你的机器人表现得与预期不符。 发布前,请先测试机器人。 在发布机器人供用户使用之前,我们提供了多种方式来测试机器人:
使用 Bot Framework Emulator 在本地测试机器人。 Bot Framework Emulator 是独立的应用,不仅提供聊天界面,而且提供调试和询问工具来帮助理解机器人的工作方式和工作原理。 Emulator 可以在本地与正在开发的机器人应用程序一起运行。
在 Web 上测试机器人。 通过 Azure 门户进行配置以后,机器人也可通过网上聊天界面进行访问。 测试者和其他无法直接访问运行代码的人员可以通过网页聊天界面访问机器人。
使用当前 Bot Framework SDK 对机器人进行单元测试。
发布
做好在网上发布机器人的准备以后,请将机器人部署到 Azure 或你自己的 Web 服务或数据中心。 让你的机器人在你的网站上或聊天频道中启用的第一步,是拥有一个公共互联网上的地址。
连接
将机器人连接到频道,例如 Microsoft Teams。 在通过所有这些不同的平台发送和接收消息的过程中,Bot Framework 完成大多数必需的工作 - 不管连接到的通道的数目和类型如何,机器人应用程序都会收到统一且规范化的消息流。 有关添加通道的信息,请参阅 频道 文章。
评估
使用 Azure 门户中收集的数据确定改善机器人功能和性能的机会。 可以获得服务级和检测数据,如流量、延迟和集成。 此外,Analytics 还提供有关用户、消息和通道数据的聊天级报告。 有关详细信息,请参阅如何收集分析数据。