Channel Setup - Feishu / Lark
Official Linksβ
Credential Provisioningβ
- Create custom app.
- Copy
App IDandApp Secret. - Add permissions/scopes needed for bot messaging.
- Configure event mode:
- local/dev: Long Connection (websocket)
- public endpoint: Webhook
- Add receive-message event subscriptions.
- Publish and approve app per org policy.
Account-based Setupβ
Use one or more app credentials as accounts:
channels:
feishu:
enabled: true
default_account: "main"
accounts:
main:
enabled: true
app_id: "cli_xxx"
app_secret: "xxx"
domain: "feishu"
topic_mode: true # optional; reply in thread for this bot
intl:
enabled: true
app_id: "cli_yyy"
app_secret: "yyy"
domain: "lark"
topic_mode: true # optional; reply in thread for this bot
# Optional per-account chat filter
# allowed_chats: ["oc_xxx"]
Notes:
- For international tenants, set
domain: "lark". topic_modeis bot/account-level (accounts.<id>.topic_mode), not channel-level.topic_modeis only supported when accountdomainisfeishuorlark.- Webhook mode needs public ingress; websocket mode does not.
- Emoji reaction reply is supported:
- If the model final response is a single emoji/emoji token (for example
π,:thumbsdown:,TearsofJoy), MicroClaw sends Feishu reaction on the original message. - Supports direct
emoji_typevalues and common aliases/emoji characters (including Chinese aliases likeηΉθ΅). - For finer control, model output can use:
reaction-only: <emoji-or-token>for reaction only.reaction: <emoji-or-token>+ newline + reply text for reaction + text.[reaction: <emoji-or-token>] <reply text>as inline form.
- If reaction send fails:
- implicit single-token reaction output falls back to plain text.
- explicit
reaction-only:keeps silent text-wise (no forced text reply).
- If the model final response is a single emoji/emoji token (for example
Emoji Type List & Meaning Guideβ
- Full supported
emoji_typeset is maintained in code:src/channels/feishu.rs(FEISHU_EMOJI_TYPES). - Current built-in list size: 254 emoji types.
- The bot can choose any supported
emoji_typedirectly (for exampleTHUMBSUP,PARTY,ROCKET). - No fixed meaning mapping is enforced.
- To reduce unsupported selections, prompt guidance constrains model selection to a supported whitelist (for example:
THUMBSUP,THUMBSDOWN,CLAP,THANKS,HEART,BROKENHEART,Fire,PARTY,SMILE,TearsofJoy,SOB,RAGE,FISTBUMP,ROCKET,100,LetMeSee,OK,LOVE,HAPPY,WINK,YEAH,STRONG,TOP,NO1).
Verifyβ
microclaw start- DM each bot
/skills - Confirm replies in intended chats.