LangBot 为插件提供了一系列 API ,用于操作 LangBot 各个模块、控制消息上下文等。
请求 API
操作当前正在处理的用户请求(消息)。仅在EventListener和Command组件中可用。访问方式如下:
EventListener 的各个事件处理器方法中:event_context: context.EventContext对象内部方法
Command 的各个子命令处理器方法中:context: ExecuteContext对象内部方法
直接回复消息
直接回复一个消息链到当前请求所在会话。
消息链构造方式请参考消息平台实体。
获取机器人 UUID
获取当前请求来源机器人 UUID。
设置请求变量
单次请求中某些信息会被存储到请求变量中,在使用 Dify 等外部 Agent 平台时,这些变量会显式传入 Agent 平台。
获取请求变量
获取单个请求变量。
获取所有请求变量
获取当前流水线配置的知识库列表
获取当前请求所使用流水线中配置的知识库列表。
仅返回当前请求对应流水线在 Local Agent 配置中绑定的知识库。若当前流水线未配置知识库,或未使用 Local Agent,则返回空列表。
LangBot API
这些 API 可在插件任何组件中调用。访问方式如下:
- 插件根目录
main.py中:self 对象内部方法,这些 API 均由插件类父类 BasePlugin 提供。
- 插件任何组件类中:
self.plugin 对象内部方法。
获取插件配置信息
插件配置格式可在manifest.yaml中编写,用户需要在 LangBot 的插件管理中按照插件配置格式填写。之后插件代码可以调用此 API 获取插件配置信息。
获取 LangBot 版本
获取 LangBot 版本号,返回格式为字符串v<major>.<minor>.<patch>。
获取已配置的机器人列表
返回由所有机器人 UUID 组成的列表。
获取机器人信息
获取机器人信息。
发送主动消息
通过机器人 UUID 和目标会话 ID 发送主动消息。
消息链构造方式请参考消息平台实体。
获取已配置的 LLM 模型列表
返回由所有已配置的 LLM 模型 UUID 组成的列表。
调用 LLM 模型
调用 LLM 模型,返回 LLM 消息。非流式。
列出可用解析器
列出宿主当前可用的 Parser 插件,可按 MIME 类型过滤。
获取所有可用工具
列出当前 LangBot 实例中所有可用的工具(包括插件工具和 MCP 工具)。
获取工具详情
获取特定工具的详细信息。
调用工具
调用指定的工具。
工具名称使用 metadata.name(如 echo_tool、get_weather_alerts),不需要包含作者或插件名前缀。
设置插件持久化数据
持久化存储插件数据。通过这个接口存储的数据,仅可被该插件访问。值需要自行转换为字节。
获取插件持久化数据
获取插件所有持久化数据键
删除插件持久化数据
获取工作空间持久化数据
通过这个接口存储的数据,可被所有插件访问。值需要自行转换为字节。
获取工作空间持久化数据
获取工作空间所有持久化数据键
删除工作空间持久化数据
获取插件配置项文件数据
请结合 file 或 array[file] 类型配置项使用。
知识库 API
这些 API 可在任意组件中通过 self.plugin 访问,用于列出和检索 LangBot 实例中的所有知识库,不受流水线配置限制。
列出所有知识库
列出 LangBot 实例中所有可用的知识库。
检索知识库
从任意知识库中检索相关文档。
这些 API 不需要 query_id,可以在任何组件中使用(包括 Tool 组件),且可以访问所有知识库,不受当前流水线配置限制。
RAG API
这些 API 供 KnowledgeEngine 组件调用,用于访问 LangBot 宿主的嵌入模型、向量数据库和文件存储。访问方式:
- 在
KnowledgeEngine 组件类中:self.plugin 对象内部方法。
调用嵌入模型
调用宿主已配置的嵌入模型生成文本向量。
向量写入
将向量写入宿主的向量数据库。
向量搜索
在宿主的向量数据库中搜索相似向量。
vector_search 返回的每个结果为 dict,包含 id(向量 ID)、score(距离分数)和 metadata(写入时附带的元数据)三个字段。如果需要在检索结果中返回文本内容,请在摄取阶段将文本存入 metadata 中。
向量删除
从宿主的向量数据库中删除向量。
filters 参数支持 Chroma 风格的 where 语法进行元数据过滤。多个顶层键之间为 AND 关系。支持的运算符:$eq、$ne、$gt、$gte、$lt、$lte、$in、$nin。注意: Chroma、Qdrant 和 SeekDB 存储完整的元数据,可以对任意字段进行过滤。Milvus 和 pgvector 仅存储 text、file_id 和 chunk_uuid,对其他字段的过滤将被静默忽略。
从宿主存储中获取上传文件的内容。