[Bug] Telegram 群聊中发给其他机器人的命令会误唤醒 AstrBot
维护者通常 1 天内回复
评估
调研方向
从 Telegram 适配器的目标命令规范化逻辑开始,跟踪消息如何进入事件总线和通用唤醒阶段。验证所述的三个情况:当前 bot 的目标会去掉后缀,其他 bot 的目标会被忽略,而不带目标的命令保留其现有行为。
由索引模型根据 Issue 内容生成。
描述
问题描述
在 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
- 该问题不会产生异常日志
- 主要语言
- Python
- 星标
- 45.3k
- 派生
- 3.3k
- 平均合并
- 1 天 4 小时
- 30 天内合并 PR
- 136
环境准备
- 提供 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
AstrBotDevs/AstrBot 的其他 Issue
-
[Bug] OpenAI-compatible Gemini 工具 schema const 导致 400可能已有人在做 @arccat-114 于 10 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 77/100
AstrBotDevs/AstrBot#10720 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug] Discord slash command sync aborts with KeyError when a plugin handler is defined in a submodule可能已有人在做 @yuexia5 于 15 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 77/100
AstrBotDevs/AstrBot#10626 · 1 条评论 ·
维护者通常 1 天内回复
-
[Bug] QQ频道消息无法回复:markdown 回退顺序有误,误用主动消息导致 304049 限频可能已有人在做 @he-yufeng 于 26 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
AstrBotDevs/AstrBot#10420 · 4 条评论 ·
维护者通常 1 天内回复
-
[Feature] 移除「切换到旧版知识库」入口可能已有人在做 @lingyun14beta 于 23 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
AstrBotDevs/AstrBot#10340 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Bug] 知识库 API 全部返回 403:路由要求的 scope `kb` 不在 ALL_OPEN_API_SCOPES 白名单内可能已有人在做 @MindOfqc 于 7 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
AstrBotDevs/AstrBot#10322 · 1 条评论 ·
维护者通常 1 天内回复
查看 AstrBotDevs/AstrBot 的全部 Issue
相似的 Issue
-
cost:cheap practicality:seen-in-the-wild severity:medium
难度 2/5 1-3 小时 新手友好度 72/100
fairagro/m4.2_advanced_middleware_api#620 ·
维护者通常 1 天内回复
-
area:security effort:S priority:P2 provider:local-libvirt status:ready type:docs
难度 2/5 1-3 小时 新手友好度 75/100
randomparity/kdive#3495 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 82/100
microsoft/markitdown#2820 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 2 天内回复