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

Abierto
#10,954 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
22/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
backend

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

问题描述

使用 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 的具体版本也尚未记录。
  • 现阶段确认的是引用回复选项与手机端重复显示之间的关联,具体根因仍需结合客户端版本和发送载荷进一步确认。
  • 原始诊断包包含凭据及无关聊天记录,未公开上传;以上仅保留与问题相关的配置和脱敏日志。
Lenguaje dominante
Python
Estrellas
46.4k
Forks
3.4k
Merge medio
1 d 11 h
PR fusionados (30 d)
120

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de AstrBotDevs/AstrBot

Todos los issues de AstrBotDevs/AstrBot

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.