[Bug] QQ 官方机器人开启引用回复后,手机 QQ 在同一气泡内重复显示正文(v4.29.4)

Aperta
#10,954 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
22/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

The relevant setting is platform_settings.reply_with_quote, and the log line Prepare to send comes from the respond stage (respond.stage, around line 237). Start by checking whether the outgoing QQ official payload contains the body twice when quoting and mentioning are both enabled, and only then examine the client-side rendering. Done means you can state which layer produces the duplicate, with a trace or HTTP-level log to support it; the issue does not yet establish this, and it overlaps with #10650.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

问题描述

使用 QQ 官方机器人适配器在 QQ 群中回复消息,开启「回复时引用发送人消息」(platform_settings.reply_with_quote)后,手机 QQ 会在同一个消息气泡内重复显示一遍完整回答,电脑 QQ 查看对应消息则正常,只显示一份回答。

手机端可见的结构大致为:

[引用用户提问]
回答正文
@提问者 回答正文(相同内容再次出现)

电脑端对应消息为:

[引用用户提问]
@提问者
回答正文(仅一份)

已通过实际排查将触发条件定位到「回复时引用发送人消息」选项。希望保留引用回复时,两端均只显示一份正文。

如何复现?
  1. 在 AstrBot 中接入 QQ 官方机器人(WebSocket),并在 QQ 群中使用。
  2. 在该机器人实际使用的配置中开启「回复时引用发送人消息」(reply_with_quote: true)。本次出现问题时同时开启了 reply_with_mention: true。
  3. 在群中发送 @机器人 你能做什么,等待机器人回复。
  4. 分别使用手机 QQ 和电脑 QQ 查看对应消息:手机端同一气泡内正文重复,电脑端正常。
AstrBot 版本

4.29.4(WebUI v4.29.4)

操作系统

Linux,x86_64,内核 5.10.134-19.1.al8.x86_64。

部署方式

Docker,Python 3.12.13。

使用的消息平台适配器

QQ 官方机器人(WebSocket),qq_official。

错误日志

诊断包中未见这次回复对应的异常堆栈。以下为相关 INFO 日志节选,用户昵称和 OpenID 已替换为占位符:

[2026-11-02 17:41:54.887] [Core] [INFO] [core.core_lifecycle:167]: AstrBot v4.29.4
[2026-11-02 17:48:08.950] [Core] [INFO] [respond.stage:237]: Prepare to send - <USER>/<USER_OPENID>: [引用消息] [At:<USER_OPENID>]
我可以解答 BigBirdTouch 电脑端版与单机版的使用操作和故障排查问题,包括连接与硬件识别排查、软件及按键映射配置、投屏与光标设置、高级版激活以及常见游戏适配问题。遇到具体问题时直接发送现象或报错,我会为你提供排查步骤。

这条 Prepare to send 日志中的正文只有一份。当前日志级别为 INFO,未开启 trace,也没有最终 QQ HTTP 请求/响应记录,因此上述日志不能证明底层接口调用次数或直接确定重复发生在哪一层。

辅助信息

相关配置节选:

{
  "platform_settings": {
    "reply_with_quote": true,
    "reply_with_mention": true,
    "segmented_reply": {
      "enable": false
    }
  },
  "provider_settings": {
    "streaming_response": false
  }
}

诊断包显示加载了内置插件 astrbot、builtin_commands,以及本地插件 astrbot_plugin_bot_manager 1.0.0。尚未提供禁用全部第三方插件后的复测结果。

与已有报告的关系及尚待确认的信息
  • 与 #10650 描述的现象一致;该报告的环境为 v4.29.1,本次环境为 v4.29.4。
  • 已看到 #10650 中关于「升级手机 QQ 客户端可以解决」的反馈。本次尚未提供手机 QQ 的系统类型、具体版本,以及升级客户端后的复测结果,不能据此认定是 AstrBot 的回归问题或断言最新手机 QQ 仍然受影响。
  • 电脑 QQ 的具体版本也尚未记录。
  • 现阶段确认的是引用回复选项与手机端重复显示之间的关联,具体根因仍需结合客户端版本和发送载荷进一步确认。
  • 原始诊断包包含凭据及无关聊天记录,未公开上传;以上仅保留与问题相关的配置和脱敏日志。
Lingua principale
Python
Stelle
46.4k
Fork
3.4k
Merge medio
1g 11h
PR unite (30g)
120

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di AstrBotDevs/AstrBot

Tutte le issue di AstrBotDevs/AstrBot

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.