AI 開發Claude CodeTelegram自動化一人公司實戰經驗開源

兩個月零當機 — 我把 Telegram 變成 Claude Code 的指揮中心,學到 4 件事

· 17 分鐘閱讀

大多數人的個人 AI 助理活不過一週

如果你用過 Claude Code、Cursor、或任何「桌面 AI 助理」一段時間,你會發現一個共通模式:

剛裝好的前 3 天,興奮。 一週後,遇到一次小 bug 或關機重開,AI 突然斷線。 兩週後,你發現它只在「你坐在電腦前」才有用 — 出門就斷掉。 一個月後,你已經懶得開了。

一直懷疑是不是只有我這樣。後來跟其他 solo founder 聊,發現幾乎大家都一樣。AI 助理變成「我可以打開那個視窗問問題」的工具,而不是「我隨時可以下指令的指揮系統」。

兩個月前,我做了一個有點極端的設計選擇 — 把 Telegram 變成 Claude Code 的主控介面,而不只是輸出 channel。

到今天剛好 60 天。零次當機(小 incident 都被自動處理掉沒到我面前)。在德國旅行的兩週、半夜睡覺、廁所裡、餐廳排隊時 — 我隨手打開 TG 就能 drive 8 個 AI agent 的艦隊。

這篇把這 60 天我學到的事完整 dump 出來。文末有開源的 toolkit(MIT License),你可以直接 fork。


設計選擇 #1:Telegram 是指揮台,不是輸出 channel

大多數人把 Claude Code 當「工具」用 — 坐在桌前,打開 VS Code,在 Claude chat panel 裡打字、讀回應。離開桌子,就失去了 AI。

我的設定相反:Telegram 是主要介面。Claude 透過官方 telegram MCP plugin 讀我傳的 TG 訊息、用 TG reply 回應,桌面終端機只是其中一個可能的 session runner。

這意味著我可以:

  • 在公車上手機打字
  • 跨時區從旅館房間打字
  • 一邊煮飯一邊用平板打字
  • 坐在桌前用 terminal 打字

四種路徑都流經同一個 channel。只有一份歷史紀錄(TG chat history),不是「我今天在不同 surface 上跟 AI 有過的 session 碎片」。

下游後果:每個 Claude 產生的 substantive deliverable 都必須 mirror 到 TG,不只是印在終端。忘記這條規則就是 failure mode #1(後面會講我怎麼自動偵測它)。


設計選擇 #2:可靠性是分層的,不是單點

Windows 上的 Telegram 會用很多種具體的方式掛掉。沒有任何單一失敗會致命,但任何一種都會讓你「指揮台」當天 GG。

我的設定堆了 4 層防線,每層擋不同類的失敗:

防什麼
開機腳本 + 靜默 launcher Windows 重開機後 Claude 永遠 offline(Startup 資料夾任何 .bat 都會跳 console;用 .vbs 隱藏起來)
zombie-killer.ps1(每 2 分鐘排程) 兩個 bun.exe 都在 poll getUpdates,inbound 訊息隨機掉進舊 zombie 進程 — 靜默部分故障
Liveness watchdog 單一 bun.exe 看起來 alive 但其 websocket 卡死 — Telegram getWebhookInfo 顯示 inactive
tg-mirror-check.py(今天才裝的 hook) Claude 透過終端回答你的 TG 問題 — 但你手機什麼都沒收到

沒有任何單一層能擋全部。重點是 layers covering distinct failure classes,不是「盡力做到可靠」。

真實 incident #1:兩個 bun.exe 偷訊息

第一次遇到是某天早上,我在 TG 問 Claude 「昨晚的 fleet report 結論是什麼」。等了 10 分鐘沒回,覺得奇怪。然後我發了第二則「在嗎?」 — 又等 10 分鐘。

打開終端機看 process list — 兩個 bun.exe 都在跑。其中一個是我前晚開過的 VS Code Claude session 殘留的 zombie,另一個是當下這個 session 的。兩個都在 poll Telegram getUpdates,輪流搶我的訊息。第一則訊息被 zombie 接走,扔進 nowhere。

修法不是「殺 bun」— 那是治標。治本是讓 zombie-killer 每 2 分鐘巡邏,看到超過一個 wrapper 就殺舊的。寫了 60 行 PowerShell,從此沒再遇到這問題。

真實 incident #2:6 次 TG-forget

今天最爽的 incident — 我自己 6 次在大段工作後忘了把回答 mirror 回 TG。原因:在大量 Bash/Edit/Read 工具呼叫之間切換到「回答老闆問題」時,我預設用 markdown 印在 transcript 裡。

老闆每次都要 catch 我(「你又沒回 TG??」),這對 trust 是消耗。

修法:寫了一個 Stop hook(每次 assistant turn 結束自動跑):

條件:
- 上一則 user message 含 <channel source="plugin:telegram:telegram">
- 我的 response 沒呼叫 mcp__plugin_telegram_telegram__reply
→ 直接透過 TG bot API 推 ⚠️ 警告給用戶

裝完當天,0 次 漏發 — 因為知道有 hook 在看,紀律突然回來。系統性問題用系統性解法。


設計選擇 #3:兩個 stateless workaround

LLM session 本質 stateless。每次新 Claude Code session 從零開始 — 不記得昨天聊什麼、不知道你手上哪些 project。

我的設定有兩件事配合 Claude Code 內建的 memory file 系統來繞過這點:

元件 保留什麼
tg-log.py inject (SessionStart hook) 最近 ~20 則 TG 訊息 — 自動注入每個新 session 開頭,所以助理直接從你停的地方接
你自己的 ~/.claude/projects/<project>/memory/ markdown 檔 長期事實:用戶身份、feedback 修正、project 狀態、外部系統 reference。手動策展,非自動生成。

兩者合起來:新 session 開始時 就有:短期 TG 歷史(從 inject hook)+ 長期 curated memory(從你的 memory 資料夾)。淨效果是助理感覺有狀態,雖然本質沒有。

我的 memory 累積到目前 60+ 筆。包括:

  • 我是誰(一人公司、語言偏好、客戶名單)
  • 過去 incident(哪些 PR 不該再開、哪個用戶被 escalate 過)
  • 專案脈絡(UDomain 6/1 規格、Germany trip 反思、UltraProbe portfolio)
  • Anti-patterns(哪些 framing 我不要再用、哪些技術 trap 不要踩)

每次重大 incident 變成一條 memory。慢慢累積,AI 對我的理解越來越精確。


設計選擇 #4:先鎖通道再信任它

Telegram bot 預設開放 — 任何知道 bot username 的人都能 DM 它。讓 Claude Code 在另一頭接,就是等著被 prompt injection 攻擊。

官方 telegram MCP plugin 已支援 allowlist(access.jsonallowFrom)+ dmPolicy: pairing 設定,要求你手動 approve 每個新對話。在你把任何重要東西放進 bot 之前,先 set 這兩個。

這是容易忽略的攻擊面。我 day 1 就鎖了。沒有它,今天 Claude 可能在某個被釣到的 prompt injection 裡幫陌生人 leak 客戶資料。


Adversarial reviewer — 對抗 confirmation bias 的最後一道

寫完 v3 architecture 文件、ship 出去之後,我問自己:「這份夠專業齁?不會被人家看破手腳吧?」

問題是:我自己寫的東西,我自己 review 永遠有 confirmation bias。看了 10 遍都看不出 bug。

所以我寫了一個 critic agent。它的單一工作是「找洞」 — 用 grep / curl / Read / WebFetch 實際 verify 每個 claim。不准 hand-wave。找不到問題就直接說「找不到」,不准假裝有問題。

第一次用在我自家剛寫的 OSS repo 上(就是本文末尾要分享的那個)。它抓到 2 個 CRITICAL bug

  1. 我的 hook 安裝步驟用 ~/.claude/hooks/... 寫 path — 但 Windows cmd / Python 都不會展開 ~所有新用戶照我文件裝會靜默 no-op
  2. 我把自己的 Telegram chat_id 781284060 leak 進兩個檔案。第一個 fork 的用戶會配置成 alert 我手機

如果我直接 merge,這 OSS repo 第一天就會難用。Critic 救了我一次。

這是這次驗證最有意義的事:critic 真的會放行品質有問題的東西嗎?答案是不會 — 它把 verdict 設成 BLOCK,我必須先修才能 merge。如果 critic 對自家設定就放水,未來對 deliverable 就更不可信。


60 天真實失敗紀錄

最後給數據。這是 4 層防線都上線後,過去 60 天的失敗模式 + 頻率:

  1. TG-forget (6 incidents):我用終端答用戶但忘了 mirror。今天裝 hook 解決
  2. 手機 TG sync 異常 (2 incidents):Telegram 在手機上幾小時不同步。解法:force-close 手動重啟 app。伺服器端沒有 tooling 能修這個
  3. Zombie bun 進程 (~每週,自動處理):被 zombie-killer.ps1 每 2 分鐘巡邏抓掉。沒任何一次到達用戶層
  4. Windows 重開機 (計劃 + 臨時):開機腳本自動恢復。零手動動作

60 天就這些。其他都是 noise。


老實說,這個設定 NOT 解決什麼

避免讀者誤會:

  • Cost / token 用量監控:這設定不告訴你 Claude API token 燒了多少。重度用戶要自己做 cost dashboard。
  • 多裝置冗餘:手機 TG sync 在旅行時掛了,指揮台就 offline 到你能開瀏覽器或重啟 app。有些用戶用 email mirror / Discord 第二 channel 解。我還沒做(cow 是現成備援足夠用)。
  • 輸出正確性:這設定讓 Claude 可達,不讓 Claude 。critic agent 是針對這個的工具,但它需要你主動 invoke。

承認問題,比假裝沒問題好。


怎麼複製:開源 toolkit

完整 toolkit 開源在:https://github.com/ppcvote/claude-tg-windows

claude-tg-windows/
├── boot-scripts/           # Phase 1: 開機 + 靜默 launcher
├── scripts/                # Phase 1: zombie-killer + health-check
├── hooks/                  # Phase 2: tg-log + tg-mirror-check (今天加的)
├── agents/                 # Phase 2: critic.md
├── examples/               # Phase 2: settings.json 模板
├── docs/                   # workflow-architecture.md + setup-walkthrough.md
└── install.ps1             # 一鍵 Phase 1 安裝

安裝步驟(Phase 1 + Phase 2 加起來約 20-25 分鐘):

git clone https://github.com/ppcvote/claude-tg-windows.git
cd claude-tg-windows
powershell -ExecutionPolicy Bypass -File .\install.ps1
# 接著手動執行 docs/setup-walkthrough.md 的 Phase 2 步驟

前置條件:Windows 10/11、Claude Code 已裝且 telegram MCP plugin 已 configure、Bun on PATH、Git for Windows、Python 3.9+。

MIT License。歡迎 fork、PR、報 bug。


一句話收尾

個人 AI 助理活不過一週的根本原因不是技術不夠強,是設計選擇錯了

把它當「工具」,它就是工具 — 開著的時候有用,關了就沒。 把它當「指揮台」,它就是指揮台 — 24/7 在線,從你口袋裡能 drive。

差別在 4 個設計選擇 + 4 層防線 + 2 個 stateless workaround + 1 個 adversarial reviewer。code 加起來不到 1000 行。

如果你也是 solo founder / 一人公司,這套值得花 25 分鐘裝起來。


Min Yi · Ultra Lab 創辦人。MDRT 美國百萬圓桌會員 × AI 安全開源貢獻者(Microsoft / Cisco / OWASP / UK Gov AISI 11 個 PR merged)。在 Telegram 上 7×24 接客戶問題 + drive 8 個 AI agent fleet。

ai-ops · 第 1 / 1 篇

每週 AI 自動化實戰筆記

不廢話,只有能直接用的東西。Prompt 模板、自動化 SOP、技術拆解。

加入一人公司實驗室

免費資源包、每日建造日誌、可以對話的 AI Agent。一群用 AI 武裝自己的獨立開發者社群。

需要技術協助?

免費諮詢,24 小時內回覆。