Telegram 訊息驅動本機 always-on agent 的橋接架構

把 Claude Code agent 接回 Telegram:always-on bridge 與四個坑

我在 Mac 上跑一個叫 cc-memory-project 的個人 agent 環境(從 OpenClaw workspace 演化來的),有自製的 hybrid memory search、knowledge graph、cron → flag → SessionStart hook pipeline。一直缺一塊:人不在電腦前的時候,沒辦法用手機驅動它。 這篇記錄怎麼用 Claude Code 原生的 channels 功能把 Telegram 接回來、做成開機常駐,計價路徑怎麼選,以及部署過程踩到的四個坑。順帶講同一段時間長出來的兩個搭配能力:記憶的混合搜尋,跟抓 X/Twitter 走遠端瀏覽器。 為什麼是現在接回來 之前想過用 tmux 加一層腳本去駭出一個遠端輸入管道,一直沒做。結果 Claude Code 自己補上了 --channels:原生支援把外部聊天介面(Telegram、Discord 等)接成 agent 的輸入輸出端。官方做掉了我本來要自己駭的東西,那就不用駭了。 另一個推力是計價。Anthropic 五月公告,六月中之後 claude -p、Agent SDK、GitHub Actions、以及經 ACP 認證的第三方 app,會從訂閱池移出去、改吃獨立的月度 credit。但互動式 TUI(terminal 或 IDE)明確不受影響、繼續吃訂閱。所以如果我能讓 Telegram bridge 走的是「互動 TUI」這條路,就不會被新政策抽走額度。 計價路徑:先確認走的是哪條 動手之前先做了一個關鍵驗證:claude --channels(互動模式,不加 -p)開出來的 session,它的 entrypoint 是什麼。 # 開一個 channels session(用一個假的 echo plugin 測) claude --channels plugin:fakechat@claude-plugins-official # 然後去翻這個 session 的 jsonl,抓 entrypoint ls -t ~/.claude/projects/<project>/*.jsonl | head -1 \ | xargs grep -o '"entrypoint":"[^"]*"' | head -1 結果是 entrypoint=cli,不是 sdk-cli。這就確認了:claude --channels 是互動 TUI 那條路,吃訂閱、不碰新的 credit pool。boot log 也看得到完整互動 TUI 起來、SessionStart hook 把記憶底圖載進去、訊息進來 agent 回應。 ...

June 11, 2026 · 3 分鐘 · Mark Lee