跳转到主要内容
Telegram Bot Skill GitHub 仓库

背景

用户:喜多(Happycapy 实习生,Lucky-Dog07 喜多是 Happycapy 的一名实习生,受到 gffi 的 Discord Bot 文章启发,决定为 Telegram 构建类似的解决方案 — 但她更进一步,设计了 4 层容错系统,并将一切开源为可安装的 Happycapy 技能。
“这个项目的前身是 gffi 大佬的《在 Happycapy 沙箱中搭建一个 7x24 运行的 Discord Bot》。Telegram Bot 最初参考了该架构,后来逐步发展出了自己的体系。” — 喜多

她构建了什么

一个 7x24 Telegram Bot 技能

一个开源的、一键部署的 Telegram 机器人,运行在 Happycapy 沙箱中,具备 AI 对话、图片分析和持久记忆能力。

在 GitHub 上查看

telegram-bot-skill — 7x24 AI 驱动的 Happycapy Telegram Bot

与 Discord Bot 的关键技术差异

Discord 机器人依赖 WebSocket 连接(需要 discord.js 及 70+ 依赖),而喜多的 Telegram 机器人使用 HTTP 长轮询 — 原生 fetch API,零 npm 依赖。这使其更轻量、更适合沙箱环境。

4 层容错架构

机器人具备强大的 4 层恢复系统,在 gffi 的 3 层设计基础上进化:
1

自动恢复引导层

使用 .zshenv 在每次沙箱会话启动时触发 start-bot.sh — 因为 .bashrc 在 Happycapy 的 zsh 环境中不起作用
2

第 1 层:Supervisord

进程管理器,配合动态配置注入 — 因为 /etc/supervisord.conf 在沙箱重启后会被重置,脚本每次都重新生成配置
3

第 2 层:看门狗

自定义健康监控,检查机器人状态并在需要时重启
4

第 3 层:Bot 引擎

Telegram 机器人本体,集成 AI Gateway 实现 Claude 驱动的对话
另外还有两个独立系统:
  • 监控器monitor.sh):每 10 分钟进行一次健康检查
  • 自动同步:每 30 分钟 Git 推送,备份对话记录

功能特性

AI 对话

通过 Happycapy AI Gateway 接入 Claude — 支持多种模型选择

图片分析

多模态能力 — 发送图片即可获得 AI 分析

持久记忆

每个聊天独立的对话历史,通过 Git 同步在沙箱重启后保留

一键部署

单条 bash 命令即可部署:配置 token、项目目录、管理员 ID 和模型选择

解决的真实工程难题

喜多的文章记录了真实的调试过程 — 而不仅仅是最终方案:
  • .bashrc 不起作用:Happycapy 使用 zsh 而非 bash — 改用 .zshenv
  • Supervisord 配置被重置/etc/supervisord.conf 在重启后不持久 — 用动态配置生成解决
  • 长轮询冲突:Telegram 拒绝多个轮询连接 — 需要精细的进程管理
  • 没有 cron:使用 shell 循环实现自定义定时任务
  • 路径问题PROJECT_ROOT 解析失败 — 用绝对路径注入修复

坦诚的态度

喜多文章的亮点在于她的坦诚。她公开表示真正的 7x24 运行尚未完全实现 — 机器人只在用户打开 Happycapy 会话时自动重启,而非独立运行。这种透明度对社区很有价值。
“说实话,7x24 还没有完全实现。但架构是扎实的,自动恢复在会话范围内运行可靠。“

关键启示

开源优先

作为可安装的 Happycapy 技能构建 — 任何人都可以一键部署自己的 Telegram 机器人

零依赖

HTTP 长轮询配合原生 fetch — Telegram API 无需任何 npm 包

站在巨人肩上

基于 gffi 的 Discord Bot 工作,进一步演化架构 — 社区知识不断积累

透明的工程实践

坦诚记录失败和局限 — 真实的调试故事,而非只展示光鲜的结果
喜多的项目展示了 Happycapy 社区的力量:一位用户的博客文章(gffi 的 Discord Bot)启发了一名实习生为不同平台构建了改进的开源版本。这就是社区知识的复利效应 — 每一次贡献都为下一次提高了起点。