架构原理

整套方案的核心是 Anthropic 官方的 Claude Agent SDK。这个 SDK 并非云服务,而是一个本地 npm 库。它通过 spawn 调用本机已登录的 claude CLI,复用现有的认证信息。本质上,就是给 Claude Code 加了一个 Telegram 前端。

完整链路如下:

Telegram Bot → daemon 进程 → Claude Agent SDK → spawn 本地 claude CLI → Anthropic API → 原路返回

全程没有额外的"服务",所有环节都是本地进程间的通信。

通信机制:不需要公网 IP

这是整个方案中最反直觉的部分。实现"在外面发消息、家里电脑执行"这件事,并不需要公网 IP、端口映射或 NAT 穿透。

它采用的是**长轮询(Long Polling)**机制——你的电脑主动向 Telegram 服务器询问"有没有新消息",有就拉回来处理,没有就挂起等待,过几十秒再问一次。所有连接都是从本机向外发起的,和用浏览器上网没有区别。不需要公网 IP,不需要开端口,在 NAT 后面也完全没问题。

仔细想想,微信、邮箱客户端、手机推送通知,底层都是同一个原理——不是别人来找你,而是你一直在主动问别人。

运行条件与限制

因为所有逻辑都跑在本机,所以有几个前提:

  • 电脑必须保持开机且联网
  • 如果需要代理才能访问 Telegram,代理必须保持开启
  • 电脑关机或休眠,Bot 就无法响应

好消息是,daemon 进程由 macOS 的 launchd 托管,崩溃后会自动重启,稳定性有保障。如果想彻底脱离本机限制,可以把整套方案部署到云服务器上。

实操启发

这个案例打破了一个常见的认知障碍:做远程控制类的工具,不一定要先搞定公网、NAT、服务器这些基础设施。单向发起连接 + 长轮询,就足以覆盖大量场景。对于独立开发者而言,把 Claude Code 挂在一台常开的机器上,配合 Telegram Bot,就能实现一个随身携带的 AI 开发助手——成本几乎为零,架构也足够简单。