Files
mimiclaw/main/channels/feishu
titor 6983a1f1ba feat: 添加编译时模块开关配置
通过 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 秒轮询警告日志
2026-04-03 20:15:26 +08:00
..

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

  1. Copy the secrets template:
cp main/mimi_secrets.h.example main/mimi_secrets.h
  1. Edit main/mimi_secrets.h:
#define MIMI_SECRET_FEISHU_APP_ID     "cli_xxxxxxxxxxxxxx"
#define MIMI_SECRET_FEISHU_APP_SECRET "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  1. Rebuild:
idf.py fullclean && idf.py build

Option 2: Runtime Configuration (CLI)

mimi> set_feishu_creds cli_xxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Feishu App Setup

  1. Go to Feishu Open Platform
  2. Create an app and get App ID / App Secret
  3. Enable permissions:
    • im:message - Send and receive messages
    • im:message:send_as_bot - Send messages as bot
  4. Configure Event Subscription:
    • Set subscription mode to Persistent connection (长连接)
    • Subscribe to: im.message.receive_v1
  5. 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

References