Pupilcc's Blog

Back

用 AI 过滤 Telegram 私聊垃圾消息:Telegram Watchdog

#Vibe Coding#
Posted at 09, May, 2026

前言

Telegram 是我最喜欢的社交工具,但 Telegram 的广告号太多了,在一些公开群里就会被私聊骚扰发广告,后来开了会员从设置里面关了私信,为了方便别人正常私聊,都会给自己加一个 私聊 bot,但是广告号也变聪明了,会给你的私聊 bot 发广告,深受其扰。

所以我 Vibe Coding 做了一个小项目:Telegram Watchdog

项目地址:https://github.com/pupilcc/telegram-watchdog

Telegram Watchdog 是什么

Telegram Watchdog 是一个可部署在 Cloudflare Workers 或者 Docker 自托管的 Telegram Bot,用来帮你过滤 Telegram 里的垃圾信息。

它的核心思路很简单:当用户给 Bot 发消息时,先交给 LLM 判断这条消息是不是广告、诈骗、垃圾推广等不良内容。如果判断为垃圾信息,就把它拦下来,并把分析结果转发到管理群组;如果判断为正常消息,再继续转发给管理员。

换句话说,它不是一个复杂的后台系统,而是一个更像 “门卫” 的 Bot。

普通用户发来的消息,会先经过它;可疑内容被挡在外面,正常内容才给你推送。

核心功能

Telegram Watchdog 主要做了四件事

AI 垃圾信息检测

每条非命令消息都会先进入检测流程。项目通过 OpenAI SDK 调用 OpenAI 或兼容的 LLM API,让模型判断消息是正常内容,还是广告、诈骗、垃圾推广。如果是垃圾信息,Bot 会阻止它继续转发,并把原因发送到管理群组。

管理员消息中继

如果用户私聊 Bot,正常消息会被转发给管理员。管理员可以直接回复这条转发消息,Bot 会把回复再发回原始用户。这样你不需要把自己的 Telegram 账号暴露给所有人,也能完成基本的双向沟通。

智能白名单

如果一个用户连续通过 3 次 AI 检测,并且从未被标记为垃圾信息,系统会自动把他加入白名单。加入白名单后,这个用户后续消息会直接转发,不再每次都消耗 LLM API。

这个设计很重要。因为真实用户不应该每次发消息都被重复审查,而 AI 调用也有成本。白名单让系统更像一个逐渐建立信任的机制:新用户先检查,可信用户少打扰。

管理员手动管理

管理员可以在转发消息下回复 /trust,把用户立即加入白名单;也可以回复 /untrust,把用户移出白名单,让他的后续消息重新进入检测流程。

这让系统不会完全依赖模型判断。AI 负责处理大量重复判断,人负责处理边界情况和最终取舍。

为什么放在 Cloudflare Workers 上

这个项目可部署在 Cloudflare Workers 上,后端使用 Hono,Telegram Bot 框架使用 Grammy,数据存储用 Cloudflare D1。

我选择这个组合,是因为它很适合这种轻量 Bot:

从使用者角度看,你不用关心太多基础设施。只要 Worker 能接收 Telegram Webhook,请求进来后就能完成检测、转发、回复和记录。

从开发者角度看,这也是一个很适合 Vibe Coding 的项目:需求边界清楚,功能模块不大,但又覆盖了真实产品里常见的几个环节,包括外部 API、Webhook、数据库、权限判断和管理员工作流。

怎么开始用

如果你想自己部署一套 Telegram Watchdog,项目 README 里已经写了更完整的部署步骤,按文档配置就可以。

我为什么觉得它值得做

Telegram Watchdog 不是一个宏大的产品,它更像是一个非常具体的小工具:当 Telegram 开始变成你的公开入口时,它能帮你阻挡一部分骚扰。

这类项目对我来说很有意思。它不需要先想一个巨大的商业故事,也不需要一开始就做复杂后台。它从一个很明确的问题出发:我不想每天被广告和诈骗消息打断。

然后用现成的基础设施把它拼起来:

这就是我喜欢的 Vibe Coding 项目形态:问题足够小,反馈足够快,最后又真的能改善一点自己的日常工作流。

如果你也在用 Telegram Bot 接收私聊消息,可以试试 Telegram Watchdog

Last modified at 09, May, 2026