Appearance
Telegram sendChatAction 瞬态错误后每 3 秒刷 ERROR 日志
问题
当 Telegram API 遇到瞬态网络错误(限速、临时连接中断等)时,OpenClaw 的 Telegram 插件会以 3 秒为间隔不断重试,并输出 ERROR 级别日志,把日志文件刷得满满当当。
日志里每隔 3 秒就来一条 telegram sendChatAction failed: ...,用龙虾话说,就是你的龙虾在不停地拼命举爪子打招呼,但对方暂时没响应——应该歇着等等,而不是每 3 秒都抡一次爪子。
解决方案
在 extensions/telegram/src/sendchataction-401-backoff.ts 中,现有代码只对 401 错误做了全局熔断处理。需要增加一条瞬态错误冷却路径,覆盖以下场景:
- 网络错误(连接超时/断开)
429限速响应5xx临时服务器错误
修复思路:
- 瞬态冷却期间,跳过
sendChatAction调用而不是重试 - 冷却状态在后续调用成功时自动清除(不影响正常 typing 功能)
- 保持原有
401的熔断机制不变
社区用户 Boulea7 提供的本地补丁已通过以下测试:
pnpm test -- extensions/telegram/src/sendchataction-401-backoff.test.ts- 现有
sends typing测试用例未回归
相关 Issue:#55811