Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug] Telegram 群聊中发给其他机器人的命令会误唤醒 AstrBot

Aperta Adatta ai principianti
#10,240 4 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@fzf404 ci sta già lavorando.

Dal 26/9/2026.

  • #10241 di @fzf404 — aperta
  • #10244 di @EterUltimate — chiusa senza merge

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
76/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

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 处理。

如何复现

  1. 在同一个 Telegram 群聊中加入 AstrBot 和另一个机器人,并确保 AstrBot 能收到普通群消息。
  2. 向另一个机器人发送命令,例如 /help@OtherBot。
  3. 观察 AstrBot 也收到该消息,并可能进入唤醒或 LLM 回复流程。

预期行为

  • /help@CurrentBot:由当前 AstrBot 接收,并规范为 /help。
  • /help@OtherBot:在 Telegram 适配层忽略,不进入 AstrBot 事件总线。
  • /help:保持现有行为,由 AstrBot 的唤醒和命令配置决定是否处理。

实际行为

发给其他机器人的定向命令会保留 / 前缀进入 AstrBot 通用唤醒流程,可能错误唤醒当前机器人。

修复建议

在 Telegram 适配器现有的定向命令规范化逻辑中:

  1. 使用大小写不敏感的方式比较命令目标与当前 Bot 用户名;
  2. 目标为当前 Bot 时移除用户名后缀;
  3. 目标为其他 Bot 时停止转换该消息;
  4. 不改变无目标裸命令的现有行为。

该问题与 #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

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.