通过 sdkconfig.defaults 选择性启用/禁用模块,减少固件体积: 新增模块开关: - CONFIG_MIMI_CHAN_TELEGRAM (默认 n) - CONFIG_MIMI_CHAN_FEISHU (默认 y) - CONFIG_MIMI_TOOL_WEB_SEARCH (默认 y) - CONFIG_MIMI_TOOL_GPIO (默认 n) - CONFIG_MIMI_WS_SERVER (默认 y) - CONFIG_MIMI_WIFI_ONBOARD (默认 y) - CONFIG_MIMI_OTA (默认 n) 技术实现: - CMakeLists.txt 条件编译源文件 - 头文件使用 static inline stub - CLI 命令和工具注册也支持条件编译 消除 Telegram 未配置时的 5 秒轮询警告日志
Feishu/Lark Bot Integration
This directory contains the Feishu bot integration for MimiClaw.
Features
- Send text messages to Feishu chats
- Receive messages via WebSocket persistent connection (long-connection mode)
- Automatic message chunking (4096 chars per message)
- Tenant access token management with auto-refresh
- Message deduplication
- Reply to specific messages
- Support for both DM (p2p) and group chats
Configuration
Option 1: Build-time Configuration
- Copy the secrets template:
cp main/mimi_secrets.h.example main/mimi_secrets.h
- Edit
main/mimi_secrets.h:
#define MIMI_SECRET_FEISHU_APP_ID "cli_xxxxxxxxxxxxxx"
#define MIMI_SECRET_FEISHU_APP_SECRET "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- Rebuild:
idf.py fullclean && idf.py build
Option 2: Runtime Configuration (CLI)
mimi> set_feishu_creds cli_xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Feishu App Setup
- Go to Feishu Open Platform
- Create an app and get App ID / App Secret
- Enable permissions:
im:message- Send and receive messagesim:message:send_as_bot- Send messages as bot
- Configure Event Subscription:
- Set subscription mode to Persistent connection (长连接)
- Subscribe to:
im.message.receive_v1
- The ESP32 will connect to Feishu automatically on boot
Architecture
Feishu Server (wss://open.feishu.cn)
^
| (WebSocket persistent connection, ESP32 initiates)
[feishu_ws_task]
|
v (message_bus_push_inbound)
[Message Bus] --> [Agent Loop] --> [Message Bus]
| |
v (outbound dispatch) |
[feishu_send_message] <-----------------+
|
v (POST /im/v1/messages)
Feishu API
API Reference
| Function | Description |
|---|---|
feishu_bot_init() |
Load credentials from NVS/build-time |
feishu_bot_start() |
Start WebSocket persistent connection task |
feishu_send_message(chat_id, text) |
Send text message |
feishu_reply_message(message_id, text) |
Reply to a specific message |
feishu_set_credentials(app_id, secret) |
Save credentials to NVS |