Skip to main content

Overview

FeishuChannelExtension bridges inbound messages from a Feishu (Lark) bot into the VeADK Runner.
This page treats Feishu as an inbound message channel: messages from Feishu users trigger the agent. To let the agent call Feishu capabilities, see Feishu tools.
It listens for the bot’s message events and maps Feishu’s session identity onto VeADK: the message sender becomes the Runner’s user identity, and the thread the message belongs to becomes the session identity; when there is no thread, it falls back to the current group or direct chat as the session. In 1.0.5 it extracts text from plain messages, interactive cards, and merged-forward messages and supports the synchronous Channel SDK lifecycle.

Environment & prerequisites

Installation:
If you only want this capability, install it on its own:
Environment variables:
  • TOOL_FEISHU_CHANNEL_APP_ID
  • TOOL_FEISHU_CHANNEL_APP_SECRET
  • TOOL_FEISHU_CHANNEL_TRANSPORT: defaults to ws
  • TOOL_FEISHU_CHANNEL_STREAMING: whether to enable streaming output, defaults to false
  • TOOL_FEISHU_CHANNEL_REACTIONS: whether to reply with a “received” reaction on incoming messages, defaults to false
Or configure in config.yaml:
config.yaml

Usage

examples/channel/feishu_bot.py

Notes

  • The Feishu WebSocket long-connection mode is used by default, so as long as the bot has subscribed to message events, you can start the connection directly.
  • Replies are sent as replies to the original message by default, keeping VeADK output attached to the current Feishu message thread.
  • Override the default identity mapping via session_id_factory and user_id_factory.
  • connect() and disconnect() support both async clients and synchronous Channel SDK clients exposing start() / stop().
Last modified on September 19, 2026