
你好,我是郑工长。
问题现象:最近在给朋友部署OpenClaw时,遇到一个奇怪的问题,飞书私聊正常,但群聊@机器人没反应,日志显示 "did not mention bot"
如果你也在使用 OpenClaw 搭建飞书机器人,遇到了群聊@mention 失效的问题,这篇文章就是为你准备的。
🔍 问题现象
症状:
- ✅ 飞书私聊机器人:正常响应
- ❌ 飞书群聊@机器人:无反应
- 📋 日志显示:
feishu[default]: message in group xxx did not mention bot
我的环境:
- OpenClaw 版本:2026.3.2
- 飞书应用:3 个机器人(郑小猪、郑小编、郑小研)
- 连接模式:WebSocket 长连接
🐛 问题根源
经过详细排查,问题出在 OpenClaw Feishu 插件的机器人名称匹配逻辑上。
代码分析
OpenClaw 在检测群聊@mention 时,会执行以下检查(文件:extensions/feishu/src/bot.ts):
function checkBotMentioned(event: FeishuMessageEvent, botOpenId?: string, botName?: string): boolean {
// ...
if (mentions.length > 0) {
return mentions.some((m) => {
if (m.id.open_id !== botOpenId) return false;
// ⚠️ 问题出在这里:要求名称完全匹配
if (botName && m.name && m.name !== botName) return false;
return true;
});
}
// ...
}
为什么会失败?
| 配置项 | 值 | 说明 |
|---|---|---|
openclaw.json 中的 botName |
郑小猪 |
用户配置 |
| 飞书实际显示名称 | 郑小猪 - 全能助手 |
飞书开发者后台显示 |
| 匹配结果 | ❌ 失败 | 郑小猪 !== 郑小猪 - 全能助手 |
根本原因:飞书机器人的显示名称可能被修改过(如在开发者后台添加了后缀),但 OpenClaw 配置文件中的 botName 没有同步更新,导致字符串完全匹配失败。
✅ 解决方案(推荐)
方案一:删除 botName 配置 ⭐(最简单)
原理:botName 是可选配置,删除后 OpenClaw 只通过 open_id 识别机器人,跳过名称匹配检查。
步骤:
- 编辑配置文件:
vim ~/.openclaw/openclaw.json
- 找到
channels.feishu.accounts部分,删除所有botName字段:
{
"channels": {
"feishu": {
"accounts": {
"default": {
"appId": "cli_xxxxxxxxxxxxx",
"appSecret": "xxxxxxxxxxxxx"
// botName 字段删除
},
"xiaobian": {
"appId": "cli_xxxxxxxxxxxxx",
"appSecret": "xxxxxxxxxxxxx"
// botName 字段删除
}
}
}
}
}
- 重启 Gateway:
openclaw gateway restart
- 测试:在飞书群聊中@机器人,应该正常响应了。
优点:
- ✅ 简单,只需修改配置文件
- ✅ 持久有效,不受 OpenClaw 升级影响
- ✅ 不需要修改源码
缺点:
- ⚠️ 无(经过测试,删除 botName 不影响任何功能)
方案二:修改源码(备选)
如果方案一无效,可以尝试修改源码。
步骤:
- 找到 Feishu 插件源码:
vim /Users/zhenghong/.nvm/versions/node/v22.22.0/lib/node_modules/openclaw/extensions/feishu/src/bot.ts
- 修改第 469 行左右的名称匹配逻辑:
// 原代码(有问题)
if (botName && m.name && m.name !== botName) return false;
// 修改为(使用包含匹配)
if (botName && m.name && !m.name.includes(botName)) return false;
- 重启 Gateway:
openclaw gateway restart
注意:此修改会在 OpenClaw 升级后被覆盖,需要重新应用。
优点:
- ✅ 保留 botName 配置
- ✅ 更宽松的匹配逻辑
缺点:
- ⚠️ 需要修改源码
- ⚠️ OpenClaw 升级后会失效
- ⚠️ TypeScript 可能需要编译
📊 两种方案对比
| 对比项 | 方案一(删除 botName) | 方案二(修改源码) |
|---|---|---|
| 难度 | ⭐ 简单 | ⭐⭐⭐ 中等 |
| 持久性 | ✅ 永久有效 | ⚠️ 升级后失效 |
| 影响范围 | 仅配置文件 | 源码文件 |
| 推荐度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
🔧 验证修复
修复后,查看日志确认:
# 查看最新日志
tail -f /tmp/openclaw/openclaw-$(date +%Y-%m-%d).log | grep feishu
成功的标志:
feishu[default]: received message from ou_xxx in oc_xxx (group)
feishu[default]: dispatching to agent (session=agent:main:feishu:group:oc_xxx)
失败的表现:
feishu[default]: message in group oc_xxx did not mention bot
💡 为什么之前正常,突然就不行了?
可能的原因:
飞书机器人名称被修改
- 在飞书开发者后台修改了应用名称
- 添加了后缀(如"- 全能助手")
OpenClaw 版本更新
- 新版本引入了更严格的名称匹配检查
- 之前的宽松匹配被修复为严格匹配
飞书 WebSocket 事件数据变化
- 飞书侧更新了事件数据结构
mentions数组中的名称字段发生变化
📝 总结
问题:飞书群聊@机器人无反应,日志显示 "did not mention bot"
原因:OpenClaw 配置中的 botName 与飞书实际显示名称不匹配
解决:删除 openclaw.json 中所有飞书账户的 botName 字段
验证:重启 Gateway 后,在群聊中@机器人测试
🔗 相关资源
- OpenClaw 官方文档:https://docs.openclaw.ai/
- OpenClaw GitHub:https://github.com/openclaw-ai/openclaw
- 飞书开发者平台:https://open.feishu.cn/
注:本文基于实际排查过程整理,已验证有效。如果你也遇到类似问题,欢迎尝试并反馈。





