← 返回 Skills 市场
heimo-he

Feishu Chat

作者 kkkkkks0 · GitHub ↗ · v1.1.1
cross-platform ✓ 安全检测通过
997
总下载
0
收藏
15
当前安装
11
版本数
在 OpenClaw 中安装
/install feishu-chat
功能描述
Feishu (Lark) group chat messaging guide for OpenClaw. Includes Raw/Card message modes, @ mention formatting, and group member management. Use when sending m...
使用说明 (SKILL.md)

Feishu Group Chat Guide

Quick Start: Configure renderMode

⚠️ IMPORTANT: Set renderMode explicitly for stable message formatting

# Recommended configuration
channels:
  feishu:
    renderMode: "card"  # Always use card format

Why? The default "auto" mode causes unpredictable format switching (raw vs card), creating poor user experience.

Configuration:

openclaw config set channels.feishu.renderMode "card"
openclaw gateway restart

Verify:

openclaw config get channels.feishu.renderMode

Prerequisites

  1. In a Feishu group - OpenClaw connected to Feishu
  2. Configure renderMode - Set to "card" for consistent formatting
  3. Know member IDs:
    • Human: open_id (ou_xxx format)
    • Bot: App ID (cli_xxx format)

0. Message Format Stability

The Problem: Raw vs Card Mixing

Without proper renderMode configuration, messages can inconsistently appear as:

  • Raw text: Plain markdown source, no formatting
  • Card format: Rendered markdown with syntax highlighting, tables, links

The Solution: Explicit renderMode

Mode Behavior Use Case
auto Detects content, uses card for code/tables Avoid - unpredictable
raw Always plain text Simple text-only responses
card Always interactive card Recommended - consistent

Recommended: renderMode: "card" for all production use.


1. Message Sending

⚠️ CRITICAL: Only Use ONE Method

DO NOT use both direct reply and message tool for the same content! This will send two messages.

Choose ONE:

  • Plain text → message tool only
  • Markdown → direct reply only

Two Methods

Method Tool Render Mode Use Case
message tool message Raw (plain text) Plain text, @ mentions
Direct reply Session reply Card (with Markdown) Markdown formatted messages

Raw Mode (Plain Text)

When to use: Plain text messages, @ mentions

How to send:

message({
  action: "send",
  channel: "feishu",
  target: "oc_xxx",
  message: "Plain text content"
})

@ Mention format:

message({
  action: "send",
  channel: "feishu",
  target: "oc_xxx",
  message: "\x3Cat user_id=\"ou_xxx\">nickname\x3C/at> Hello!"
})

Raw Mode Limitations:

  • ❌ No Markdown rendering (bold, italic, code blocks won't render)
  • ❌ Tables won't render
  • ❌ Links won't render
  • ✅ @ mentions work correctly

Card Mode (Markdown)

When to use: Formatted messages with code blocks, tables, bold/italic text

How to send: Direct reply in session with Markdown elements.

Card Mode Triggers (any of these):

  • Code blocks
  • Tables | table |
  • Bold **bold**
  • Italic *italic*
  • Strikethrough ~~text~~
  • Links [link](url)
  • Headings # heading
  • Lists - item or 1. item

@ Mention format:

\x3Cat id=ou_xxx>\x3C/at> This is Card mode @ mention

**Markdown content** renders correctly

Supported in Card Mode:

Style Syntax Status
Bold **bold** ✅ Supported
Italic *italic* ✅ Supported
Strikethrough ~~text~~ ✅ Supported
Color \x3Cfont color='red'>text\x3C/font> ✅ Supported
Links [link](https://xxx) ✅ Supported
Headings # heading ✅ Supported
Lists - item or 1. item ✅ Supported
Code blocks code ✅ Supported
Tables ` table

Not Supported in Card Mode:

Style Syntax Status
Blockquote > quote ❌ Not supported
Inline code `code` ❌ Unstable
Horizontal rule --- ❌ Not supported
Complex nesting Multiple levels ❌ Unstable

Best Practice for Card Mode:

  • Use **bold** for emphasis
  • Use *italic* for light emphasis
  • Use numbered lists 1. or bullet lists -
  • Avoid ---, >, and inline code
  • Keep formatting simple

Avoid Auto Mode

Problem: Auto mode can incorrectly choose between Raw and Card.

Best Practice:

  • Plain text → Use message tool (Raw mode)
  • Markdown content → Direct reply (Card mode)

Don't:

  • Use message tool for Markdown (won't render)
  • Use complex structures in Card mode (may trigger Raw incorrectly)

2. Group Member Management

⚠️ Important: Bots Only See @ Mentioned Messages

Bots can only see messages that @ mention them! If a group member sends a message without @ mentioning the bot, the bot won't receive it.

This means:

  • To identify a human member's open_id, they must @ mention the bot and send a message
  • The bot cannot see past messages where it wasn't mentioned

How to Get Member IDs

Human open_id (must @ mention bot):

  1. Ask the human to @ mention the bot and send any message
  2. When the message arrives, the system shows: [Feishu oc_xxx:ou_xxx timestamp] nickname: message content
  3. The ou_xxx is the sender's open_id

Bot App ID (requires user to provide):

  1. Go to Feishu Developer Console: https://open.feishu.cn/app
  2. Click on the bot you want to view
  3. In "Application Credentials" (应用凭证), copy the App ID (cli_xxx format)
  4. @ mention the bot and send the App ID

Maintain Member List

Store member info in memory file:

## Group Members (oc_xxx)
### Humans
- nickname1: `ou_xxx`
- nickname2: `ou_xxx`

### AI Bots
- bot1: `cli_xxx` (must @ to receive messages)

3. @ Mention Tips

@ Format Difference (Critical!)

Mode @ Format Example
Raw (message tool) \x3Cat user_id="ID">nickname\x3C/at> \x3Cat user_id="ou_xxx">kk\x3C/at>
Card (direct reply) \x3Cat id=ID>\x3C/at> \x3Cat id=ou_xxx>\x3C/at>

@ Different Target Types

@ Target ID Type Raw Format Card Format
Human open_id (ou_xxx) \x3Cat user_id="ou_xxx">nickname\x3C/at> \x3Cat id=ou_xxx>\x3C/at>
Bot App ID (cli_xxx) \x3Cat user_id="cli_xxx">botname\x3C/at> \x3Cat id=cli_xxx>\x3C/at>
Everyone "all" \x3Cat user_id="all">everyone\x3C/at> \x3Cat id=all>\x3C/at>

@ Bot vs @ Human

Important difference:

  • Bots: MUST be @ mentioned to receive messages! Without @, bots won't get notified
  • Humans: Can see all group messages, @ not required

⚠️ Feishu Limitation: Bot-to-Bot Messages

  • A bot CAN send messages and @ mention another bot
  • But bots can only receive messages from human accounts
  • Bots cannot receive messages from other bots
  • Therefore, @ mentioning another bot will NOT notify that bot

Practical implication:

  • If you need to communicate with another bot, ask a human to send the message instead
  • Bot-to-bot communication is not possible in Feishu groups

Example - @ Bot:

// Raw mode
message({
  action: "send",
  channel: "feishu",
  target: "oc_xxx",
  message: "\x3Cat user_id=\"cli_xxx\">botname\x3C/at> Please reply!"
})
// Card mode
\x3Cat id=cli_xxx>\x3C/at> Please reply!

**Markdown content**

@ Everyone

Note: Requires group permission (Group Settings > Group Management > Who can @everyone)

// Raw mode
message({
  action: "send",
  channel: "feishu",
  target: "oc_xxx",
  message: "\x3Cat user_id=\"all\">everyone\x3C/at> Important announcement!"
})
// Card mode
\x3Cat id=all>\x3C/at> Important announcement!

Common @ Mistakes

Raw mode errors:

  • @nickname - Plain text, no notification
  • @{nickname} - Plain text
  • \x3Cat id="ou_xxx">\x3C/at> - id attribute doesn't work in Raw mode

Card mode errors:

  • \x3Cat user_id="ou_xxx">nickname\x3C/at> - user_id attribute doesn't work in Card mode

4. Quick Reference

Message Decision Tree

Need to send message
    │
    ├─ Plain text only?
    │   └─ YES → message tool (Raw mode)
    │
    └─ Need Markdown?
        └─ YES → Direct reply (Card mode)

@ Mention Decision Tree

Need to @ mention
    │
    ├─ Using message tool?
    │   └─ YES → \x3Cat user_id="ID">nickname\x3C/at>
    │
    └─ Direct reply (Card mode)?
        └─ YES → \x3Cat id=ID>\x3C/at>

ID Format Reference

Type Format Example
Human open_id ou_xxx ou_example123abc
Bot App ID cli_xxx cli_example456def
Group chat_id oc_xxx oc_example789ghi

5. Important Notes

  1. Card and Raw mode use different @ formats - Wrong format = @ fails
  2. Bots MUST be @ mentioned to receive messages - Humans don't need @
  3. Bot-to-bot communication is NOT possible - Bots can only receive messages from humans, not other bots
  4. message tool only sends Raw mode - No Markdown rendering
  5. @everyone requires group permission
  6. Avoid unsupported styles in Card mode (blockquote, inline code, horizontal rule)

6. Configuration Reference

renderMode Settings

Location: OpenClaw config file or environment

Quick Setup:

# Set to card mode (recommended)
openclaw config set channels.feishu.renderMode "card"
openclaw gateway restart

Environment-specific configurations:

Development:

channels:
  feishu:
    renderMode: "raw"  # Easier debugging
    dmPolicy: "open"   # Easier testing

Production:

channels:
  feishu:
    renderMode: "card"      # Consistent formatting
    dmPolicy: "pairing"     # Security
    requireMention: true    # Avoid spam

Troubleshooting

Messages appear as raw markdown:

  1. Check: openclaw config get channels.feishu.renderMode
  2. Set: openclaw config set channels.feishu.renderMode "card"
  3. Restart: openclaw gateway restart

Format switches between raw and card:

  • Cause: Using renderMode: "auto"
  • Fix: Change to "card" or "raw" explicitly

Proactive messages not using card:

  • Expected: Proactive messages (via message tool) always use plain text
  • Workaround: Have user send a message first, then reply

Source

  • Tested on: OpenClaw Feishu integration
  • Test date: 2026-02-27 ~ 2026-02-28
  • Source files:
    • /home/admin/.openclaw/extensions/feishu/src/bot.ts
    • /home/admin/.openclaw/extensions/feishu/src/reply-dispatcher.ts
    • /home/admin/.openclaw/extensions/feishu/src/mention.ts
    • /home/admin/.openclaw/extensions/feishu/src/send.ts
安全使用建议
This skill is a documentation-only guide for Feishu message formatting and is coherent with its description, but before following its commands you should: (1) review and approve the suggested openclaw config change (channels.feishu.renderMode) because it modifies agent-wide behavior and requires a gateway restart; (2) be deliberate about storing member IDs — treat open_id/App ID values as potentially sensitive identifiers and store them securely (or in ephemeral/test data first); (3) test the advice in a non-production environment to confirm it behaves as expected; and (4) avoid running commands you don't understand and verify you trust the source since the SKILL.md will not itself install code or request credentials but does instruct config changes and persistent storage.
功能分析
Type: OpenClaw Skill Name: feishu-chat Version: 1.1.1 The skill bundle is a comprehensive guide for an AI agent to interact with Feishu (Lark) group chats. It provides detailed instructions on message formatting (Raw vs. Card modes), member ID management, and configuration settings (e.g., 'openclaw config set channels.feishu.renderMode'). The content is strictly focused on the stated purpose of Feishu integration and does not contain any evidence of data exfiltration, malicious execution, or harmful prompt injection.
能力评估
Purpose & Capability
Name/description match the content: the SKILL.md is a messaging/formatting guide for Feishu group chats and all instructions (message formats, @ mentions, member ID collection, renderMode config) relate to that purpose.
Instruction Scope
Instructions stay within the stated domain (how to send messages, mention users, and gather IDs). Two things to note: (1) it tells the operator to change global OpenClaw config (channels.feishu.renderMode) and restart the gateway, which affects agent-wide behavior beyond a single message; (2) it recommends keeping a 'memory file' of member IDs (open_id/cli_xxx), which creates persistent storage of user/bot identifiers. Both are relevant to the purpose but warrant review before applying.
Install Mechanism
No install spec or code files are present — this is instruction-only, so nothing will be downloaded or written by an installer step.
Credentials
The skill declares no required environment variables, credentials, or config paths. It asks operators to obtain Feishu App IDs and open_ids as part of normal usage; no unrelated secrets are requested.
Persistence & Privilege
always:false and model invocation is allowed (normal). The SKILL.md instructs changing OpenClaw config and storing member lists, which are legitimate for this use but have persistence/privilege implications — these changes affect agent-wide behavior and create stored identifiers that may contain personal info.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install feishu-chat
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /feishu-chat 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.1.1
- Removed the `skill.json` file to streamline configuration. - Cleaned up `SKILL.md` by removing the trailing skill trigger keywords and inline documentation at the top. - No changes were made to core functionality or user instructions. - The guide remains focused on message modes, @ mention formatting, and group member management in Feishu (Lark) groups.
v1.1.0
feishu-chat 1.1.0 - Added support for skill metadata configuration with new skill.json file. - Documentation now strongly recommends explicitly setting renderMode to "card" for consistent message formatting. - Updated usage guide with clear configuration instructions and troubleshooting for raw vs card message modes. - Emphasized that "auto" renderMode is not reliable and should be avoided for production use.
v1.0.8
feishu-chat 1.0.8 - Expanded Card mode documentation: clarified that horizontal rules (`---`) and complex nesting are not supported, and added best practices for Card formatting. - Updated the "Not Supported in Card Mode" table: now explicitly lists "Horizontal rule" and "Complex nesting" as unsupported/unstable. - Improved consistency of notes and formatting across message mode explanations. - No functional or API changes; documentation update only.
v1.0.7
Version 1.0.7 of feishu-chat - No changes detected in this release. - Documentation, features, and guidance remain the same as the previous version.
v1.0.6
No user-facing changes in this version. - No file changes detected since the last release.
v1.0.5
- Added a critical warning: Only use either the message tool (Raw mode) or direct reply (Card mode) for a message, not both—using both will result in duplicate messages. - Clarified best practices on choosing message method: use message tool for plain text, direct reply for Markdown. - No changes to logic or code—documentation update only. - All previous instructions and group chat handling guidance remain unchanged.
v1.0.4
- Clarified that bot-to-bot communication is not possible: bots can only receive messages from human accounts, not from other bots, even when @ mentioned. - Added explicit warning and explanation about the Feishu platform limitation regarding bot-to-bot messages. - Updated @ mention tips and Important Notes sections to include this limitation and provide guidance for communicating with bots. - No changes to code or functionality; this update improves documentation accuracy and user guidance.
v1.0.3
- Updated instructions for locating Bot App ID: clarified steps and provided a direct link to the Feishu Developer Console. - All other guidance remains unchanged.
v1.0.2
feishu-chat 1.0.2 - Added a concise, comprehensive SKILL.md guide for Feishu (Lark) group chat with OpenClaw. - Clarified message sending modes (Raw and Card), including formatting, when to use each, and limitations. - Provided detailed instructions for @ mention formats in both modes and highlighted common mistakes. - Included practical steps for group member management and obtaining user/bot IDs. - Added quick-reference tables, best practices, and decision trees for efficient usage. - Documented important caveats for bot message reception, Markdown support, and permission requirements.
v1.0.1
- Clarified that bots only see messages they're @ mentioned in; bots cannot read all group messages. - Updated instructions for obtaining human member IDs: now requires that the human @ mention the bot to be identified. - Added warning banners and explanatory notes about bot visibility limits and member ID lookup. - No code/interface changes; documentation only.
v1.0.0
feishu-chat 1.0.0 Changelog - Initial release providing a comprehensive guide for Feishu (Lark) group chat messaging in OpenClaw. - Covers sending messages in Raw and Card (Markdown) modes, with clear usage scenarios and syntax examples. - Details how to correctly format @ mentions for both humans and bots, including permission notes. - Offers group member ID management instructions and quick reference decision trees. - Lists Markdown features supported in Card mode and outlines common mistakes to avoid.
元数据
Slug feishu-chat
版本 1.1.1
许可证
累计安装 16
当前安装数 15
历史版本数 11
常见问题

Feishu Chat 是什么?

Feishu (Lark) group chat messaging guide for OpenClaw. Includes Raw/Card message modes, @ mention formatting, and group member management. Use when sending m... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 997 次。

如何安装 Feishu Chat?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install feishu-chat」即可一键安装,无需额外配置。

Feishu Chat 是免费的吗?

是的,Feishu Chat 完全免费(开源免费),可自由下载、安装和使用。

Feishu Chat 支持哪些平台?

Feishu Chat 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Feishu Chat?

由 kkkkkks0(@heimo-he)开发并维护,当前版本 v1.1.1。

💬 留言讨论