[Bug] Telegram 群聊中发给其他机器人的命令会误唤醒 AstrBot
Maintainer thường phản hồi trong vòng 1 ngày
@fzf404 đang làm issue này rồi.
Từ ngày 26/9/2026.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 76/100
Hướng nghiên cứu
Bắt đầu từ logic chuẩn hóa lệnh nhắm mục tiêu của Telegram adapter và theo dõi cách các tin nhắn đi vào event bus và giai đoạn đánh thức chung. Xác minh ba trường hợp được mô tả: các đích của bot hiện tại bị loại bỏ hậu tố, các đích của bot khác bị bỏ qua, và các lệnh không có đích vẫn giữ nguyên hành vi hiện tại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
问题描述
在 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
- 该问题不会产生异常日志
- Ngôn ngữ chính
- Python
- Star
- 41.7k
- Fork
- 3k
- Merge trung bình
- 22 giờ 53 phút
- Pull request đã merge (30 ngày)
- 138
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của AstrBotDevs/AstrBot
-
[Bug] QQ频道消息无法回复:markdown 回退顺序有误,误用主动消息导致 304049 限频Có thể đã có người làm @he-yufeng đã nhận 9 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
AstrBotDevs/AstrBot#10420 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature] 移除「切换到旧版知识库」入口Có thể đã có người làm @lingyun14beta đã nhận 6 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
AstrBotDevs/AstrBot#10340 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
AstrBotDevs/AstrBot#10322 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] WebChat 聊天偏好在刷新后重置:流式输出、显示思考内容及发送快捷键Có thể đã có người làm @C10H14N2O5 đã nhận 15 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
AstrBotDevs/AstrBot#10316 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] `<system_reminder>` 每轮写入对话历史且不被清理,导致上下文持续增长Có thể đã có người làm @iuiu-py đã nhận 25 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
AstrBotDevs/AstrBot#10033 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của AstrBotDevs/AstrBot
Issue tương tự
-
bug needs-triage priority:medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
yeongseon/azure-functions-logging-python#583 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation needs-triage priority:medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
yeongseon/azure-functions-validation-python#546 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
PHP workflow streaming requests buffer the full SSE responseCó thể đã có người làm @Winoren đã nhận hôm nay. Đang mởreview: medium
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
langgenius/dify#44270 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
P4: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
jeffknupp/association#523 ·
-
bug help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
DarkStarSystems/pcons#229 ·
Maintainer thường phản hồi trong vòng 1 ngày