Skip to content

🐛 [Adapter/API] Bot 跨群 @mention 三个问题:空格昵称截断 + 发送间歇失败 + API mention 不生效 #190

@lejunliu

Description

@lejunliu

问题描述

Bot 在群聊中跨群发消息并 @mention 用户时,存在以下 3 个问题:

问题 1:有空格昵称的用户 @ 不上

  • Adapter 的 mention 正则 /@[\w\u4e00-\u9fa5.\-]+/g 遇到空格就截断
  • 例如 @Anyang Su 只匹配到 Anyang,查不到对应 uid,@ 通知不触发
  • 无空格昵称(如 @lejun)正常
  • 位置openclaw-channel-dmwork/src/mention-utils.tsMENTION_PATTERN

问题 2:跨群发消息间歇性报 "bot is not a member of this group"

  • 同一个群(反馈群 30ac52c2ccba4f8d9f152311f1f785b5),同一个 bot(product_bot)
  • 第 1 次发送成功,后续连续 4 次失败(400: bot is not a member),之后又成功
  • 疑似与 accountId 参数传递 / bot token 路由逻辑有关

问题 3:Bot sendMessage API @mention 底层不生效(已有 Issue)

  • 即使 Adapter 正确传了 mention.uids,服务端可能没正确处理
  • 已有 Issue:PM#128(P0, open)

环境

  • :Bot(OpenClaw + dmwork-adapter)
  • 复现场景:Bot 通过 message 工具跨群发消息并 @ 用户

复现步骤

  1. Bot 在群 A 收到指令,需要去群 B 发消息 @ 某用户
  2. 该用户昵称含空格(如「Anyang Su」)
  3. 发送 @Anyang Su 你好 → @ 不生效
  4. 多次发送 → 间歇性报 not a member

期望行为

  • 有空格昵称也能正确 @ 上
  • 跨群发消息稳定不报错
  • mention.uids 传到服务端后正确触发 @ 通知

实际行为

  • 空格昵称被截断,@ 失效
  • 发送间歇性 400 错误
  • 服务端 mention 处理有 bug

关联 Issue

  • PM#128 — Bot sendMessage API @mention 不生效(P0)
  • PM#127 — Bot groups API group_no 与 channel_id 不一致(P1,可能与问题 2 相关)
  • dmwork-adapters#134 — mention entities 结构化格式支持(已关闭)
  • dmworkim#824 — mention.entities validation(open PR)

来源: DMWork group:刘乐君工作室 user:lejun (uid:f145574e162a4fa1a056b511be03aa77)


🔗 原始 Issue:dmwork-org/dmwork-pool#73

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions