Description / 描述
📌 背景与痛点 (Background & Problem)
AstrBot 作为一个多平台聚合框架,在处理 QQ 官方平台(qqofficial)的消息时,可能会接收到包含平台特有交互标签的文本。例如,当用户点击 QQ 原生的指令输入框时,Bot 接收到的消息原文中会包含类似如下的 XML/HTML 标签:
你好 <qqbot-cmd-input text="/快速英雄云图 " show="快速云图" reference="false" />
当前存在的问题:
- 污染 LLM 上下文:当这类消息被直接传递给大模型(LLM)时,大模型无法理解这些平台特有的 XML 标签,不仅浪费 Token,还可能导致模型产生幻觉或输出包含类似标签的奇怪回复。
- 跨平台显示异常:如果通过 AstrBot 将消息路由、转发或同步到其他非 QQ 平台(如微信、Telegram、KOOK 或 WebUI),这些标签会作为纯文本原样显示,造成严重的阅读干扰和排版混乱。
🎯 期望行为 (Expected Behavior)
希望 AstrBot 框架或 qqofficial 适配器能够在消息接收与标准化阶段,自动识别并处理这类平台特有的富文本/交互标签。
具体期望如下:
- 自动剥离/清洗:在将消息传递给 LLM 或其他平台适配器前,自动移除
<qqbot-cmd-input ... /> 等无意义的展示标签。
- 智能提取(可选优化):如果该标签代表用户的实际意图,可以尝试提取其
text 属性(如 /快速英雄云图 )作为实际消息内容,或者直接将其替换为空字符串以保持上下文纯净。
- 清洗前:
帮我查一下 <qqbot-cmd-input text="/快速英雄云图 " show="快速云图" reference="false" />
- 清洗后:
帮我查一下 /快速英雄云图 (或 帮我查一下)
🛠️ 建议的实现方案 (Proposed Solution)
-
适配器层处理:在 qqofficial 适配器的消息解析逻辑,增加针对 QQ 官方特有标签的正则清洗逻辑。
-
框架层全局配置:在 AstrBot 核心配置中提供一个“跨平台消息清洗”开关,允许开发者自定义需要全局剥离的 HTML/XML 标签正则列表,以应对未来其他平台(如飞书、钉钉)可能出现的类似特殊标签。
Use Case / 使用场景
No response
Willing to Submit PR? / 是否愿意提交PR?
Code of Conduct
Description / 描述
📌 背景与痛点 (Background & Problem)
AstrBot 作为一个多平台聚合框架,在处理 QQ 官方平台(
qqofficial)的消息时,可能会接收到包含平台特有交互标签的文本。例如,当用户点击 QQ 原生的指令输入框时,Bot 接收到的消息原文中会包含类似如下的 XML/HTML 标签:当前存在的问题:
🎯 期望行为 (Expected Behavior)
希望 AstrBot 框架或
qqofficial适配器能够在消息接收与标准化阶段,自动识别并处理这类平台特有的富文本/交互标签。具体期望如下:
<qqbot-cmd-input ... />等无意义的展示标签。text属性(如/快速英雄云图)作为实际消息内容,或者直接将其替换为空字符串以保持上下文纯净。帮我查一下 <qqbot-cmd-input text="/快速英雄云图 " show="快速云图" reference="false" />帮我查一下 /快速英雄云图(或帮我查一下)🛠️ 建议的实现方案 (Proposed Solution)
适配器层处理:在
qqofficial适配器的消息解析逻辑,增加针对 QQ 官方特有标签的正则清洗逻辑。框架层全局配置:在 AstrBot 核心配置中提供一个“跨平台消息清洗”开关,允许开发者自定义需要全局剥离的 HTML/XML 标签正则列表,以应对未来其他平台(如飞书、钉钉)可能出现的类似特殊标签。
Use Case / 使用场景
No response
Willing to Submit PR? / 是否愿意提交PR?
Code of Conduct