-
-
Notifications
You must be signed in to change notification settings - Fork 69.1k
飞书扩展无法解析富文本中的代码块和合并转发消息 #28578
Copy link
Copy link
Closed
Description
问题描述
背景
OpenClaw 的飞书扩展在处理特定消息类型时存在解析缺失,导致用户发送的内容无法被 Agent 正确接收。
具体问题
1. Markdown 代码块(富文本)无法解析
复现步骤:
- 在飞书私聊或群聊中发送包含 Markdown 代码块的消息(使用 ``` 包裹)
- Agent 收到的消息中代码块内容完全丢失
根因分析:
在 /extensions/feishu/src/bot.ts 的 parsePostContent 函数(第 262-308 行)中,只处理了以下 tag:
text- 普通文本a- 链接at- @提及img- 图片
缺少对以下 tag 的处理:
code_block- 代码块pre- 预格式化文本
建议修复:
在 parsePostContent 函数的 element 处理循环中添加:
else if (element.tag === "code_block" || element.tag === "pre") {
const lang = element.language || "";
const code = element.text || element.content || "";
textContent += `\n\`\`\`${lang}\n${code}\n\`\`\`\n`;
}2. 合并转发消息(share_chat)无法解析
复现步骤:
- 在飞书中将多条聊天记录合并转发给机器人
- Agent 只收到提示文字 "Merged and Forwarded Message"
- 无法获取合并转发内的实际聊天内容
实际现象:
用户发送:合并转发包含 5 条消息的聊天记录
Agent 收到:{"body": "Merged and Forwarded Message"}
根因分析:
飞书消息类型 share_chat 未被 OpenClaw 处理。
影响范围
| 场景 | 影响 |
|---|---|
| 用户发送代码示例 | 代码内容丢失,Agent 无法理解 |
| 用户转发聊天记录 | 无法查看上下文,需要用户手动复制粘贴 |
| 群聊中的富文本消息 | 部分格式内容丢失 |
临时解决方案
- 避免直接发送代码块:将代码内容复制为普通纯文本发送
- 合并转发消息先展开:在飞书中点开合并转发,复制内容后以文本形式重新发送
- 使用普通消息格式:不使用富文本编辑器,直接发送纯文本
优先级建议
| 问题 | 优先级 |
|---|---|
| 代码块解析 | P1 |
| 合并转发 | P2 |
相关文件
/extensions/feishu/src/bot.ts-parsePostContent函数/extensions/feishu/src/channel.ts- 消息处理主入口
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.