工具
飞书 Channel 扩展
veadk.extensions.FeishuChannelExtension 把飞书机器人的入站消息桥接到 VeADK Runner。
本页是把飞书作为入站消息渠道:飞书用户发来的消息会触发你的 Agent 运行。如果你想反过来——让 Agent 调用飞书能力(发消息、处理云文档、管理日历),请看内置 MCP 工具中的 lark_tools。
它默认基于 lark_oapi.channel.FeishuChannel 的 message 事件工作,并按以下规则映射会话身份:
sender.union_id -> Runner.user_idconversation.thread_id -> Runner.session_id- 线程 ID 不存在时回退到
chat_id -> Runner.session_id
这样,VeADK 现有的短期记忆、长期记忆、Tracing 和多租户隔离能力都可以直接复用。
安装
pip install veadk-python[extensions]如果只想要这一项能力,也可以单独安装:
pip install lark-oapi配置
环境变量:
TOOL_FEISHU_CHANNEL_APP_IDTOOL_FEISHU_CHANNEL_APP_SECRETTOOL_FEISHU_CHANNEL_TRANSPORT:默认wsTOOL_FEISHU_CHANNEL_STREAMING:是否开启流式输出,默认falseTOOL_FEISHU_CHANNEL_REACTIONS:是否在收到消息时回复“收到”表情,默认false
或在 config.yaml 中配置:
tool:
feishu_channel:
app_id: cli_xxx
app_secret: xxx
transport: ws
streaming: true
reactions: true最小示例
import asyncio
from veadk import Agent, Runner
from veadk.extensions import FeishuChannelExtension
from veadk.memory.short_term_memory import ShortTermMemory
agent = Agent(
name="feishu_agent",
model_name="doubao-seed-1-8-251228",
instruction="你是一个通过飞书机器人与用户沟通的助手。",
)
runner = Runner(
agent=agent,
app_name="veadk_feishu_demo",
user_id="veadk_feishu_default_user",
short_term_memory=ShortTermMemory(),
)
channel = FeishuChannelExtension(
runner=runner,
channel_kwargs={"transport": "ws"},
)
async def main():
await channel.connect()
if __name__ == "__main__":
asyncio.run(main())说明
- 默认使用飞书
Channel的 WebSocket 模式,因此只要机器人已订阅消息事件,即可直接启动连接。 - 默认回复使用
reply_to=原消息 message_id,让 VeADK 的输出挂在当前飞书消息线程下。 - 你可以通过
session_id_factory与user_id_factory覆盖默认的身份映射逻辑。