消息实体格式均不相同。为了屏蔽这些差异,我们实现了一套统一的标准。插件开发者只需要掌握并在插件中使用此页所述的消息实体,LangBot 内部的消息处理逻辑能够自动完成消息的解析和转换。
消息链
消息平台的消息不同于用于 AI 交互的消息,消息平台的消息以消息链的形式描述,QQ 上展示的每一个独立的消息就是一条消息链,消息链中可以包含文字、图片、@组件等多种消息链组件,例如:

langbot_plugin.api.entities.builtin.platform.message中。
构造消息链
请先引入langbot_plugin.api.entities.builtin.platform.message包,才能使用其中的消息组件。
Source源消息链信息,如果是从消息平台收到的消息,都会在消息链最前端包含此组件,记录消息信息Plain纯文本消息Quote引用消息Image图片消息AtAll@全体成员消息At@指定成员消息Voice语音消息- 需要检查消息平台支持性
Forward转发消息- 在很多平台不受支持,不建议使用
File文件消息
langbot_plugin.api.entities.builtin.platform.message中的定义。
其他实体
除了上述实体之外,还有好友 Friend和群 Group等实体,这些实体的定义位于langbot_plugin.api.entities.platform.entities中。
访问消息平台底层 API
为了抹平各个平台的差异,LangBot 在消息平台API之上,提供了一个抽象层,即上方所述的内容,以及pkg/platform/sources目录下的各个平台适配器。但由于各个平台的差异较大,抽象层内的实体和 API 封装并不完整,如果您的插件需要访问特定平台的功能,可以按照以下说明访问底层 API。
| 平台 | 适配器 | 访问方式 | 说明 |
|---|---|---|---|
| OneBot v11 | aiocqhttp | adapter.bot | bot 对象对应 aiocqhttp 的 CQHttp 对象,详细使用方式请参考 aiocqhttp 文档 |
| QQ 官方API | qqofficial | adapter.bot | bot 对象为 libs/qq_official_api 下的 SDK 对象,详细使用方式可以参考 libs/qq_official_api/api.py 中QQOfficialClient中的send_group_text_msg方法发起 HTTP 请求的方式,具体接口文档请查看 QQ 官方 API 文档 |
| 企业微信 | wecom | adapter.bot | 参考 libs/wecom_api/api.py 中WecomClient中的send_image方法发起 HTTP 请求的方式,具体接口文档请查看企业微信 API 文档 |
| 微信公众号 | officialaccount | - | 请参考微信公众号的 API 文档中的接口文档信息,相关的凭据信息可以在 adapter.bot 中取得 |
| 飞书 | lark | adapter.api_client | 飞书 SDK 的 API Client 对象,具体请参考oapi-sdk-python |
| 钉钉 | dingtalk | - | 请参考钉钉 API 文档,相关的凭据信息可以在 adapter.bot 中取得 |
| Discord | discord | adapter.bot | bot 对象为 Rapptz/discord.py 的 Discord 对象,详细使用方式请参考文档 |
| Telegram | telegram | adapter.bot | bot 对象为 python-telegram-bot 的 Telegram 对象,详细使用方式请参考文档 |
| Slack | slack | adapter.bot | bot 对象 libs/slack_api/api.py 中的对象,详细使用方式请参考其代码以及 Slack SDK |
