功能说明
FeishuChannelExtension 把飞书机器人的入站消息桥接到 VeADK Runner。
本页是把飞书作为入站消息渠道:飞书用户发来的消息会触发智能体运行。若需让智能体主动调用飞书能力,请参见飞书工具。
Runner 的用户标识,以消息所在的话题作为会话标识;话题不存在时,回退到当前群聊或单聊作为会话标识。1.0.5 支持提取文本消息、互动卡片与合并转发消息中的文本内容,并兼容同步 Channel SDK 生命周期。
收到话题消息或回复消息时,扩展会自动获取话题历史或被引用的父消息,并将这些上下文拼接到用户消息前再转发给智能体,使智能体能够参考完整对话上下文。详见话题历史与引用消息。
环境变量与前提
安装:TOOL_FEISHU_CHANNEL_APP_IDTOOL_FEISHU_CHANNEL_APP_SECRETTOOL_FEISHU_CHANNEL_TRANSPORT:默认wsTOOL_FEISHU_CHANNEL_STREAMING:是否开启流式输出,默认falseTOOL_FEISHU_CHANNEL_REACTIONS:是否在收到消息时回复“收到”表情,默认false
config.yaml 中配置:
config.yaml
使用方法
examples/channel/feishu_bot.py
参数
话题历史与引用消息
当消息来自飞书话题(thread)或是一条回复消息时,扩展会在把消息转发给智能体之前,自动获取相关上下文并拼接到用户消息文本之前:- 话题历史:消息属于话题时,扩展获取该话题内按时间正序排列的历史消息(最多
thread_history_limit条,不包含当前消息),将其作为话题上下文拼接到用户消息前。 - 引用消息:消息是一条回复但未归属话题时,扩展获取被引用的父消息;若父消息无法获取,则回退获取该回复链的根消息,将其作为引用上下文拼接到用户消息前。
获取话题历史与引用消息需要通过飞书 OpenAPI 调用消息接口,因此必须配置
app_id 与 app_secret(构造参数,或 TOOL_FEISHU_CHANNEL_APP_ID / TOOL_FEISHU_CHANNEL_APP_SECRET 环境变量,回退到 TOOL_LARK_ENDPOINT / TOOL_LARK_API_KEY)。未配置凭证时该能力会被跳过,不会报错。使用示例
先保存并配置上方的feishu_bot.py,再在同一目录创建以下文件:
examples/channel/feishu_bot_thread.py
examples/channel/feishu_bot_plain.py
额外说明
- 默认使用飞书的 WebSocket 长连接模式,因此只要机器人已订阅消息事件,即可直接启动连接。
- 默认以回复原消息的形式发送,使 VeADK 的输出挂在当前飞书消息线程下。
- 可以通过
session_id_factory与user_id_factory覆盖默认的身份映射逻辑。 connect()与disconnect()同时兼容异步客户端和提供start()/stop()的同步 Channel SDK。