Build a Lark (Feishu) AI Bot with DeepSeek
Step-by-step guide to running a DeepSeek-powered AI bot on Lark (Feishu) with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
This recipe puts a DeepSeek model behind a Lark (Feishu) bot. LangBot receives messages from Lark (Feishu), runs them through a pipeline, and sends the answer back, so you do not write any platform code.
Use DeepSeek models directly with LangBot's built-in Agent: no separate agent platform needed, with optional knowledge bases, MCP tools and Skills.
What you need
- A running LangBot instance: LangBot Cloud (no server needed) or a self-hosted deployment with Docker or
uvx langbot. - A DeepSeek account or server you can call from LangBot.
- A Feishu or Lark custom app (
app_idandapp_secret). The one-click setup in LangBot can create and authorize it for you.
Networking
The default WebSocket long connection needs no public IP. Where long connection is unavailable (for example some Lark international setups), webhook mode requires a public HTTPS address; LangBot Cloud includes one.
1. Add the DeepSeek model
- Create an API key in the DeepSeek console.
- In LangBot, open Models, add an LLM model with the provider set to DeepSeek and request URL
https://api.deepseek.com, then paste the API key and the model ID. - Enable Tool Use if the model supports function calling; MCP tools, Skills and the sandbox need it.
- Typical model IDs are
deepseek-chatanddeepseek-reasoner; check DeepSeek's documentation for the current list.
2. Create a pipeline
Open Pipelines in the LangBot WebUI, create a pipeline (or edit the default one) and set AI as follows.
| Field | Value |
|---|---|
| Runner | Local Agent (built-in Agent) |
| Model | The model you just added. You can add fallback models. |
| Prompt | Instructions: who the bot is, tone, what it must not do. |
| Knowledge Bases | Optional. Attach a knowledge base so answers come from your documents. |
3. Create the Lark (Feishu) bot
- Create a bot with the Lark adapter, select the platform domain (Feishu or Lark) and use One-Click Setup, or enter
app_idandapp_secretmanually. - Add the message permissions and event subscriptions from the guide (and the card permissions if you want streaming cards), then publish an app version.
4. Bind and test
Open the bot, select the pipeline you created, save and make sure the bot is enabled.
Search for the bot in Feishu/Lark, send it a direct message, then add it to a group and mention it.
Troubleshooting
- 401 errors: the API key is wrong or has no balance in the DeepSeek console.
- No messages arrive: confirm the app version is published and the event subscription uses the same mode (long connection or webhook) as LangBot.
- Check Monitoring in the WebUI: every message, pipeline run and error is recorded there.
FAQ
Do I need a server with a public IP for Lark (Feishu)?
Not necessarily. The default WebSocket long connection needs no public IP. Where long connection is unavailable (for example some Lark international setups), webhook mode requires a public HTTPS address; LangBot Cloud includes one.
Does the Lark (Feishu) bot support streaming replies?
Yes. Enable streaming on the bot; the AI back end must also stream. See the platform feature matrix for details.
Can the same DeepSeek setup serve other platforms too?
Yes. A pipeline can be bound to many bots, so one configuration can answer on several platforms at once.
Related guides
- Full Lark (Feishu) setup guide
- Model configuration
- Other AI back ends on Lark (Feishu): Dify · n8n · Coze · Langflow · OpenAI (ChatGPT models)
- DeepSeek on other platforms: Telegram · Discord · Slack · DingTalk · WeCom (internal app) · WeCom Intelligent Bot
Build a Slack AI Bot with DeepSeek
Step-by-step guide to running a DeepSeek-powered AI bot on Slack with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
Build a DingTalk AI Bot with DeepSeek
Step-by-step guide to running a DeepSeek-powered AI bot on DingTalk with LangBot: model setup, bot credentials, networking, testing and troubleshooting.
