[Bug] Telegram 群聊中发给其他机器人的命令会误唤醒 AstrBot
Los mantenedores suelen responder en 1 día
@fzf404 ya está trabajando en esto.
Desde el 26/9/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Comienza en la lógica de normalización de comandos dirigidos del adaptador de Telegram y sigue cómo los mensajes entran en el bus de eventos y en la etapa de activación genérica. Verifica los tres casos descritos: los destinos del bot actual pierden el sufijo, los destinos de otros bots se ignoran y los comandos sin destino conservan su comportamiento actual.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
问题描述
在 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
- 该问题不会产生异常日志
- Lenguaje dominante
- Python
- Estrellas
- 41.4k
- Forks
- 3k
- Merge medio
- 1 d 5 h
- PR fusionados (30 d)
- 140
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de AstrBotDevs/AstrBot
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
AstrBotDevs/AstrBot#10420 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Text-to-image rendering suppresses asyncio task cancellationPosiblemente ocupada @kilisamemarisaaa la tomó hace 2 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
AstrBotDevs/AstrBot#10389 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
AstrBotDevs/AstrBot#10388 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Boxlite boot treats any HTTP response as a healthy sandboxPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
AstrBotDevs/AstrBot#10385 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
[Feature] 修改「模型提供商」入口名称Abiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
AstrBotDevs/AstrBot#10378 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de AstrBotDevs/AstrBot
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Harmony OPeNDAP SubSetter (HOSS) Geographic LARC_CLOUD PREFIRE_SAT2_AUX-SAT R01 production
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
nasa/harmony-autotester#245 ·
-
[FEATURE] - Add UTVD supportAbiertoenhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Deltares/imod-python#1928 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
feature
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100