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. If instead you want the agent to call Feishu capabilities (send messages, process cloud docs, manage calendars), see Feishu / Lark MCP.
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. This way VeADK’s existing short-term memory, long-term memory, tracing, and multi-tenant isolation all carry over directly, per user and per session.

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.
Last modified on September 19, 2026