# 机器人概述

机器人（Bot）是飞书开放平台应用能力之一，可通过飞书会话与用户进行消息交互。本文介绍机器人的功能、特性、类型以及开发教程，帮助你了解机器人能力。

## 什么是机器人

机器人是一种可以基于会话与用户进行交互的应用，是信息触达用户的常用渠道。飞书机器人可以与飞书日历、审批、云文档等应用，以及第三方主流业务系统、企业自建系统打通，通过向用户发送消息，在飞书中实现一站式聚合各类应用的通知，例如发送监控告警、待办事项提醒、公司活动通知、数据日报推送、库存预警等。同时，机器人可以完成创建群组、管理群组等自动化操作，协助企业成员高效处理业务需求。

## 应用场景

机器人在飞书中可实现一站式聚合各类应用的通知，为企业提供灵活的消息通知方式，同时支持自动化管理群组、监听并响应用户消息等能力。

场景图示 | 场景介绍
---|---
**会话聊天场景**  <br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/40f514e82745dfb427c5975c2d2b7749_64e0lZAwFT.png?height=1856&lazyload=true&maxWidth=280&width=2560) | 机器人与[消息开放能力](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/introduction)搭配使用，可实现自动化消息推送、与用户进行消息互动的能力。<br>- **推送消息**<br>企业业务资讯、活动通知、数据晾晒等消息，均可通过机器人推送至指定会话中。<br>- **接收并回复消息**<br>结合[事件订阅](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive)能力，机器人可以实时接收会话消息，实现及时回复用户消息的能力。<br>- **消息形式多样化展示**<br>结合[飞书卡片](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/feishu-card-overview)、[链接预览](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/development-link-preview/link-preview-development-guide)等能力，机器人消息可以包含但不限于文本、图片、链接、按钮等展示形式。
**群组管理场景**<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/58adfa89eb519b28081c8ab2aa497cd5_rGj1saKmlH.png?height=928&lazyload=true&maxWidth=280&width=1280) | 机器人与[群组开放能力](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/group/overview)搭配使用，可实现自动化群组管理的能力。<br>- **自动创建群组并拉人入群**<br>将机器人与其他业务平台关联，通过机器人实现自动拉群。例如，创建工作需求时，通过机器人自动发起群聊，并邀请需求相关的负责人入群。<br>- **管理维护群组内的各项配置**<br>由机器人管理群公告、会话标签页、群菜单等。
**AI 场景**<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/97f901f96cc7266541ae041d3887f106_MyXOJQyVVd.png?height=1856&lazyload=true&maxWidth=280&width=2560)<br>![image.png](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/a5ae9bddedd6de95f7d12603890f1b42_IBXcYlzDPI.png?height=928&lazyload=true&maxWidth=280&width=1280) | 通过飞书机器人承载 AI Bot（如[将扣子 Bot 发布至飞书](https://www.coze.cn/open/docs/guides/publish_to_feishu)）时，可结合开放平台提供的开放能力，定制 AI Bot 交互方式。例如：<br>- 订阅[用户进入与机器人的会话](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-access_event/events/bot_p2p_chat_entered)事件，使机器人可以及时感知用户与其会话，并自动推送开场白。<br>- 配置[流式消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/cardkit-v1/card-element/content)、[跟随气泡](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/push_follow_up)、[悬浮菜单](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/bot-v3/bot-customized-menu)等能力，进行多样化信息展示。

上手体验，参见[快速入门](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/develop-robots/quick-start)。

## 功能特性

- **嵌入式体验**

机器人可以通过飞书会话消息完成内容的触达、监听和响应等操作。借助机器人能力，你可以将企业系统集成进飞书，在飞书内获得一站式的系统使用体验。例如，用机器人实现自动推送消息，在会话里与用户进行简单的信息交互，以及自动化的群组管理。

- **开发成本较低**

只需进行服务端开发，就能实现内容呈现友好、可互动的机器人，并且一次开发后，可以被企业内的其他成员轻松使用。

- **支持丰富的消息类型**

机器人可以发送文本、图片、文件、视频等类型的消息，还能发送呈现样式友好、支持互动的卡片消息，使推送内容更好地触达用户。

- **支持丰富的服务端能力**

机器人可以调用丰富的服务端能力，实现各种各样的工作流自动化。例如，使用机器人在话题群中收集用户的反馈建议，一键同步到多维表格，高效完成飞书群组中零散信息的收集。

- **支持与企业外部用户交互**

已通过飞书认证的企业，可使用企业自建应用开启机器人和对外共享能力，实现企业内的机器人应用与外部用户进行消息交互。

## 机器人类型

飞书内的机器人分为 **应用机器人** 和 **自定义机器人** 两类，在使用上两者有所差异，你可通过本章节了解不同机器人类型的能力与差异。

对比项 | 应用机器人 | 自定义机器人
---|---|---
**使用场景** | 应用机器人可以结合企业业务系统使用。例如，接入企业数据监控大盘，在出现报警时，由机器人创建故障处理群，并拉取相关负责人进群，最后将报警通知以卡片形式推送至群内。后续成员完成报警处理后，可通过交互机器人推送的卡片按钮，快速响应业务系统。该场景开发教程可参考[机器人自动拉群报警](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-development-tutorial/introduction)。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/b88d1e3c8cf36e3027cd775f7726b8ee_Jp2wtLyrED.png?height=1100&lazyload=true&width=1640)<br>**注意事项**：应用机器人虽需发版审核，但可以在应用管理员授权的前提下，调用飞书丰富的开放接口，完成更多互动场景。因此如果你想将外部系统集成进飞书，让机器人能进行互动、群管理，建议你使用 **应用机器人**。 | 自定义机器人仅支持单向往群组内推送消息，不支持与用户进行消息交互，一般适用于临时性在群中推送固定内容的场景。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/0d3b961b45479547dc59d3314f111923_8BoxdZ0u3x.png?height=390&lazyload=true&width=1360)<br>**注意事项**：自定义机器人配置过程简单、但使用场景较局限，只能满足基本的群消息推送的场景需求。因此如果你只需要临时性的在群聊中完成比较固定的消息推送，建议使用简单的 **自定义机器人**。
**开发方式** | 在[开发者后台](https://open.feishu.cn/app)创建应用，并开启机器人能力，该类应用被称为应用机器人。应用配置发生变化时（如开启机器人能力、申请 API 权限、订阅事件或回调），需要发布应用并经过企业管理员审核通过，才能使配置生效。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/f08ea86f1110e6276c2ab9c1115338d1_OylI55xDIy.png?height=936&lazyload=true&width=2280) | 在飞书群组的 **群设置** 中添加自定义机器人。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/e65be4ac526166d450c7d31d2c4da606_8kecaVaKTf.png?height=1432&lazyload=true&width=2352)
**使用方式** | 支持以应用身份调用飞书开放平台的服务端 API，使用或获取企业、用户的资源。例如：<br>- 调用[发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create)接口向指定会话发送消息。<br>- 调用[获取会话历史消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/list)获取聊天记录。<br>- 订阅[接收消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive)事件接收用户发送的消息，然后调用[回复消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/reply)接口回复用户的消息，从而实现机器人与用户的交互。 | 在当前群聊中通过 webhook 地址单向推送消息。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/aff4181c987ba259d0c6baeecf116973_GxHYCtzkgj.png?height=1116&lazyload=true&width=1648)
**使用限制** | -   可以与在[应用可用范围](https://open.feishu.cn/document/home/introduction-to-scope-and-authorization/availability)内的用户直接发起单聊。<br>- 支持创建群组或被添加到指定的群组，在群组内发送消息、管理群组。<br>- 支持外部群和外部用户单聊，详情参见[机器人支持外部群和外部用户单聊](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/develop-robots/add-bot-to-external-group)。 | -   只能在被添加的群组内使用，不支持与用户单聊、不支持跨群组使用。<br>- 只能单向的往群组内推送消息，无法获取任何用户、企业的详细信息。<br>- 对飞书卡片交互模块，仅支持[配置打开链接交互](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/configuring-card-interactions#3867b9c6)。

### 能力对比

应用机器人需要经企业管理员审核，在申请 API 权限的前提下可调用飞书丰富的开放接口（服务端 API），灵活实现会话交互的能力。自定义机器人配置过程简单、无需审核，但使用场景受限，只能满足基本的群组消息推送场景需求。详细的能力对比如下表：

能力 | 应用机器人 | 自定义机器人
---|---|---
添加进外部群 | ✅ | ✅
向所在群推送消息 | ✅ | ✅
[配置打开链接交互](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/configuring-card-interactions#3867b9c6) | ✅ | ✅
[配置卡片交互](https://open.feishu.cn/document/uAjLw4CM/ukzMukzMukzM/feishu-cards/configuring-card-interactions#5746ae32) | ✅ | ❌
[响应用户@机器人的消息](https://open.feishu.cn/document/home/interactive-session-based-robot/introduction) | ✅ | ❌
[向用户发送单聊消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create) | ✅ | ❌
[创建群、管理群、获取群信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat/create) | ✅ | ❌
[访问通讯录、管理云文档等其他丰富的开放能力](https://open.feishu.cn/document/ukTMukTMukTM/uITNz4iM1MjLyUzM) | ✅ | ❌

## 基础概念

在使用机器人时可能涉及以下概念，供参考了解。

概念 | 说明
---|---
应用能力 | 应用能力包含机器人、网页应用、小组件等，应用机器人即是指开启机器人能力的应用。关于应用能力的介绍参见[应用能力简介](https://open.feishu.cn/document/home/app-types-introduction/overview)。
Webhook | Webhook 是一种通过自定义回调函数增加或更改网页表现的方法。飞书群组中自定义机器人的 Webhook 是一个接收 HTTP 请求的 URL，向该 URL 发送请求来实现自定义机器人向群组内推送消息。
服务端 API | 开放平台提供了丰富的服务端开放接口，用来管理或查看企业、用户的资源数据。应用机器人支持以应用身份调用这些服务端接口来灵活实现各类功能。例如，向用户发送消息、创建群组等。服务端开放接口参见 API 列表。
消息类型 | 在使用机器人发送消息时，消息内容包含多种类型，例如文本消息、富文本消息、图片消息、群名片消息、卡片消息等。不同类型的机器人可发送的消息类型范围不同。具体参考：<br>-   应用机器人支持的[发送消息内容结构](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)。<br>- 自定义机器人支持的[发送消息内容结构](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN#5a997364)。
机器人菜单 | 机器人菜单是应用机器人的一种能力，通过为应用机器人配置自定义菜单，可以将应用的常用入口固定在机器人的聊天输入框。用户可通过机器人菜单上的交互按钮快捷操作。更多信息参考[机器人菜单使用指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/bot-v3/bot-customized-menu)。<br>![](//sf3-cn.feishucdn.com/obj/open-platform-opendoc/19e11eeb321056159b0732c37a74da59_DI3anDaIAR.png?height=1318&lazyload=true&maxWidth=300&width=1024)

## 使用指南

- **应用机器人**：[机器人使用指南](https://open.feishu.cn/document/ukTMukTMukTM/uATM04CMxQjLwEDN)、[机器人菜单使用指南](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/bot-v3/bot-customized-menu)

- **自定义机器人**：[自定义机器人使用指南](https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN)

## 机器人 API 与事件

| **开放能力** | **文档**                                                                             | **描述**                               |
| -------- | ---------------------------------------------------------------------------------- | ------------------------------------ |
| API      | [获取机器人信息](https://open.feishu.cn/document/ukTMukTMukTM/uAjMxEjLwITMx4CMyETM) | 获取应用机器人基本信息，包括应用状态、应用名称、open_id 等信息。 |
| API      | [发送消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/create) | 机器人可调用该接口向指定会话发送消息。 |
| 事件      | [接收消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/events/receive) | 为机器人订阅该事件后，会根据已开通的权限接收不同的用户消息。通过订阅该事件并搭配消息 API（例如[回复消息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/reply)），可实现机器人自动接收并响应用户消息的能力。 |
| 事件       | [机器人自定义菜单事件](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/application-v6/bot/events/menu)  | 在飞书客户端内，用户与机器人单聊时点击机器人的自定义菜单时会触发的事件。 |

## 常见问题

机器人相关的常见问题可参见[机器人 FAQ](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/guide/faq#5995f6a6)。
