[Bug] Telegram 群聊中发给其他机器人的命令会误唤醒 AstrBot
I maintainer di solito rispondono entro 1 giorno
@fzf404 ci sta già lavorando.
Dal 26/9/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
Direzione di ricerca
Inizia nella logica di normalizzazione dei comandi indirizzati dell’adapter Telegram e traccia il percorso dei messaggi nel bus degli eventi e nella fase di risveglio generica. Verifica i tre casi descritti: i target del bot corrente perdono il suffisso, i target di altri bot vengono ignorati e i comandi senza target mantengono il comportamento esistente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
问题描述
在 Telegram 群聊中,当 AstrBot 收到形如 /help@OtherBot 的命令时,Telegram 适配器只会对发给当前机器人的命令移除 @bot_username,但会将发给其他机器人的命令原样传入事件总线。
AstrBot 的通用唤醒阶段会先根据 / 前缀判断消息是否唤醒,再匹配具体命令。因此 /help@OtherBot 虽然并非发给当前机器人,仍可能唤醒 AstrBot 并进入后续 LLM 处理。
如何复现
- 在同一个 Telegram 群聊中加入 AstrBot 和另一个机器人,并确保 AstrBot 能收到普通群消息。
- 向另一个机器人发送命令,例如
/help@OtherBot。 - 观察 AstrBot 也收到该消息,并可能进入唤醒或 LLM 回复流程。
预期行为
/help@CurrentBot:由当前 AstrBot 接收,并规范为/help。/help@OtherBot:在 Telegram 适配层忽略,不进入 AstrBot 事件总线。/help:保持现有行为,由 AstrBot 的唤醒和命令配置决定是否处理。
实际行为
发给其他机器人的定向命令会保留 / 前缀进入 AstrBot 通用唤醒流程,可能错误唤醒当前机器人。
修复建议
在 Telegram 适配器现有的定向命令规范化逻辑中:
- 使用大小写不敏感的方式比较命令目标与当前 Bot 用户名;
- 目标为当前 Bot 时移除用户名后缀;
- 目标为其他 Bot 时停止转换该消息;
- 不改变无目标裸命令的现有行为。
该问题与 #10232 的共同点是都需要在 Telegram 适配层正确表达消息归属,但一个处理命令目标,另一个处理被回复消息的发送者标识,建议分别修复和审核。
环境
- AstrBot:当前
master - 平台:Telegram
- 部署方式:Docker Compose
- 该问题不会产生异常日志
- Lingua principale
- Python
- Stelle
- 41.4k
- Fork
- 3k
- Merge medio
- 1g 14m
- PR unite (30g)
- 135
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di AstrBotDevs/AstrBot
-
Text-to-image rendering suppresses asyncio task cancellationForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
AstrBotDevs/AstrBot#10389 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
AstrBotDevs/AstrBot#10388 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Boxlite boot treats any HTTP response as a healthy sandboxForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
AstrBotDevs/AstrBot#10385 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature] 修改「模型提供商」入口名称Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
AstrBotDevs/AstrBot#10378 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature] 移除「切换到旧版知识库」入口Forse già presa @silvaling l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
AstrBotDevs/AstrBot#10340 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di AstrBotDevs/AstrBot
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
modelcontextprotocol/python-sdk#3648 ·
I maintainer di solito rispondono entro 1 giorno
-
docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
VenetoStato/giorgio#6 ·
-
Claiming namespace ddalusAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
EclipseFdn/open-vsx.org#13831 ·
I maintainer di solito rispondono entro 1 giorno
-
feature request
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni