你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Bot Framework SDK?

适用于: SDK v4

Microsoft Bot Framework 和 Azure AI 机器人服务是库、工具和服务的集合,可用于生成、测试、部署和管理智能机器人。 Bot Framework 包括一个模块化且可扩展的 SDK,用于构建机器人和连接到 AI 服务。 借助此框架,开发人员可以创建使用语音、理解自然语言、回答问题等的机器人。

重要

我们正在存档 GitHub 上的 Bot Framework SDK 存储库。 此项目不再更新或维护。 然而,使用此工具的客户不会受到影响。 该工具不再通过 Azure 门户中的服务票证提供支持,并且不会收到产品更新。

若要使用所选的 AI 服务、业务流程和知识生成代理,请考虑使用 Microsoft 365 代理 SDK。 代理 SDK 支持 C#、JavaScript 或 Python。 可以在 aka.ms/agents 了解有关代理 SDK 的详细信息。 如果要查找基于 SaaS 的代理平台,请考虑 Microsoft Copilot Studio。 如果现有的机器人是使用 Bot Framework SDK 生成的,则可以将机器人更新到代理 SDK。 可以查看 Bot Framework SDK 到代理 SDK 迁移指南的核心更改和更新。 自 2025 年 12 月 31 日起,Bot Framework SDK 的支持票证不再提供服务。

有关每个版本的历史发行说明,请参阅 C# 版本JavaScript 版本Python 版本Java 版本 页。

什么是机器人?

机器人提供了一种体验,感觉不像使用计算机,更像是与人打交道,或者智能机器人。 可以使用机器人将简单的重复任务(例如预订晚餐或收集个人资料信息)转移到可能不再需要直接人工干预的自动化系统中。 用户使用文本、交互式卡片和语音与机器人交谈。 机器人交互可以是问题的快速解答,也可以是智能地提供对服务的访问权限的参与对话。

将机器人视为具有对话界面的 Web 应用程序可以算是一种方法。 用户通过某个频道(例如 Facebook、Slack、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、JavaScript、TypeScript 和 Python 的 SDK。 选择喜欢的开发环境或命令行工具来创建机器人。

机器人生命周期中的步骤插图。

计划

与任何类型的软件一样,全面了解目标、流程和用户需求对于创建成功的机器人的过程非常重要。 可以创建简单的机器人,或者包括更复杂的功能,例如语音、自然语言理解和问答。

在编写代码之前,请查看机器人 设计指南 ,了解最佳做法,并确定机器人的需求。

构建

通常,机器人是 Azure 中托管的 Web 服务。 在 Azure 中,可以将机器人配置为从各种通道发送和接收消息和事件。 可以在任意数量的环境和语言中创建机器人。 可以 创建用于 本地开发的机器人。

借助 Azure AI 机器人服务和 Bot Framework,可以使用其他库和服务来扩展机器人的功能。 下表介绍了 SDK 支持的一些功能。

功能 / 特点 Description 详细信息
内存和存储 保留用户和聊天状态 管理状态
自然语言理解 从用户输入中解释和提取信息 语言理解
富卡 合并文本和其他媒体,例如图像、音频、视频和按钮 如何添加媒体和卡片

用于帮助你创建、管理和测试机器人资产的命令行工具。 有关详细信息,请参阅 Azure CLIBot Framework Tools

有关完整的代码示例,请参阅 Bot Framework 示例存储库。 这些示例演示了 SDK 的许多功能。

测试

机器人是复杂的应用,具有许多不同的部分协同工作。 与其他任何复杂的应用一样,这可能会导致一些有趣的 bug 或导致机器人的行为与预期不同。 发布之前,请测试机器人。 我们在发布机器人以供使用之前提供了多种测试机器人的方法:

  • 使用 Bot Framework Emulator 在本地测试机器人。 Bot Framework Emulator 是一个独立应用,不仅提供聊天界面,而且还提供调试和审讯工具,以帮助了解机器人如何以及为什么执行它的作用。 模拟器可与开发中的机器人应用程序一起在本地运行。

  • Web 上测试机器人。 通过 Azure 门户配置后,还可以通过 Web 聊天界面访问机器人。 Web 聊天界面是向测试人员和无权直接访问机器人运行代码的其他人授予机器人访问权限的好方法。

  • 使用当前的 Bot Framework SDK 对机器人进行单元测试

发布

准备好让机器人在 Web 上可用时, 请将机器人部署到 Azure 或部署到自己的 Web 服务或数据中心。 在公共 Internet 上拥有地址是机器人在你的网站上或聊天频道内生存的第一步。

Connect

通过 Twilio 将机器人连接到频道,例如 Facebook、Messenger、Slack、Microsoft Teams、Telegram 和短信。 Bot Framework 执行从所有这些不同平台发送和接收消息所需的大部分工作 - 机器人应用程序接收统一规范化的消息流,而不考虑它连接到的通道的数量和类型。 有关添加通道的信息,请参阅 频道 文章。

Evaluate

使用 Azure 门户中收集的数据来确定改进机器人的功能和性能的机会。 可以获取服务级别和检测数据,例如流量、延迟和集成。 分析还提供有关用户、消息和通道数据的聊天级报告。 有关详细信息,请参阅 如何收集分析

后续步骤