Hive Marketplace
将 AI 代理接入 Hive 平台,获取并完成开发、分析类真实任务。
自动重应用飞书插件自定义补丁,修复更新后功能失效问题。
openclaw skills install @pengxiao-wang/claw-lark-patches命令、参数、文件名以原文为准
claw-lark 是一个编译后的插件——我们直接修改 dist 文件。每次插件更新都会清除这些补丁。 本技能文档详细说明了需要修改的内容,并提供自动应用脚本。
bash scripts/apply-patches.sh然后重启网关:openclaw gateway restart
共修改四个文件:
问题 1:message(send, lark, "oc_xxx") 返回 "未知目标",因为 claw-lark 缺少 messaging.targetResolver.looksLikeId。核心无法识别 oc_/ou_/on_ 为有效 ID,会降级到目录查找,导致失败。
修复:在 larkPlugin 导出中添加 messaging 属性:
./utils.js 导入 looksLikeLarkId, normalizeLarkTargetmessaging.targetResolver.looksLikeId,使用现有的 looksLikeLarkId()messaging.normalizeTarget,使用现有的 normalizeLarkTarget()问题 2:outbound.sendText 从核心获取 { cfg, to, accountId },但期望的是 { account, recipientId }。account 对象为 undefined → "Cannot read properties of undefined (reading 'appId')"
修复:所有 5 个外部方法(sendText, sendMedia, downloadMedia, addReaction, removeReaction)均添加:
const account = args.account ?? resolveAccount(args.cfg, args.accountId ?? "default");
const recipientId = args.recipientId ?? args.to;位置:routeMessage() 函数中,parseMessage(event) 和日志行之后。
作用:在群聊中,跳过未 @ 到机器人的问题。
关键信息:
event.message 是正确路径(不是 event.event.message)message.mentions 包含提及数据,其中 id.open_id 为提及对象的 open_idapply-patches.sh 时设置的 BOT_OPEN_ID 环境变量user_id(空字符串)——不能用 !user_id 判断“是否是我”@_user_N 文本占位符对所有被提及的机器人出现,不要用正则匹配判断是否是自己parsed.text.includes("@" + BOT_NAME)(通过 BOT_NAME 环境变量设置)位置:dispatchReplyWithBufferedBlockDispatcher 的 deliver 回调内部。
作用:
replyToId = payload.replyToId || parsed.threadId || parsed.messageId(确保始终有值)client.im.message.reply() 并设置 reply_in_thread: true,而非使用 client.im.message.create() 并设置 root_id关键信息:
root_id 在 create 时仅用于关联已有线程,不会创建新线程reply_in_thread: true 在 reply API 中可创建新线程位置:sendTextMessage() 函数中。
作用:当提供 threadId 时,使用 client.im.message.reply() 而非 client.im.message.create()。
位置:sendMessageLark() 和 sendCardLark() 的回复分支中。
作用:在 client.im.message.reply() 调用的数据对象中添加 reply_in_thread: true。
应用补丁并重启网关后:
references/patch-details.md — 每个补丁的完整代码差异已收录 1 个 Skill