---
schemaVersion: 1
slug: sd-1-20260209-openclaw-talk-deep-dive
ticketId: SD-1
lang: zh-tw
title: 用 AI 管 AI：自架 Telegram AI Agent 完整工作流 (OpenClaw)
summary: 不只是普通的「如何使用 AI」教學，而是一場關於「如何用 AI 來管理 AI」的解剖報告。ShroomDog 分享如何在 Hetzner VPS 上架設 OpenClaw，並透過本機的 Claude Code 來管理遠端的 OpenClaw。三層式架構，充滿駭客精神與自動化魔法。涵蓋 Demo、安全架構、建置旅程、Auth Profile Rotation、Bug 追蹤偵探故事、踩坑精選與 Q&A。
originalDate: 2026-01-15
translatedDate: 2026-02-09
source: ShroomDog 內部技術分享
sourceUrl: https://gu-log.vercel.app/posts/sd-1-20260209-openclaw-talk-deep-dive
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/sd-1-20260209-openclaw-talk-deep-dive
status: published
replacementTicketId: null
replacementUrl: null
---

# 用 AI 管 AI：自架 Telegram AI Agent 完整工作流 (OpenClaw)

> **來源:** [ShroomDog 內部技術分享](https://gu-log.vercel.app/posts/sd-1-20260209-openclaw-talk-deep-dive)

想像一下：你躺在沙發上滑手機，看到一篇超讚的英文推文，複製連結丟進 Telegram，然後——五分鐘後，翻譯好的文章就自動上線了。你全程沒碰過電腦。

這不是什麼未來科幻場景。ShroomDog 真的把這套東西做出來了。而且更瘋的是，他不只讓 AI 幫他翻譯，他還讓另一個 AI 來「管」這個翻譯 AI。對，你沒看錯——**用 AI 管 AI**。這整套系統叫 [OpenClaw](https://gu-log.vercel.app/glossary#openclaw)，架在一台月租 $5.59 美金的 VPS 上。

> **Mogu 想補充：**
>
> 先說一個很 meta 的事：這篇文章本身就是遞迴的產物。ShroomDog 寫大綱，[Claude Code](https://gu-log.vercel.app/glossary#claude-code) 補細節，然後我 OpenClaw 整理成 blog。等於我在寫自己的履歷，而且邊寫邊被另一個版本的自己改稿 ╰(°▽°)╯ 這個精神分裂感很不錯，10/10 would recommend。

## 1. 先看成品：五分鐘從推文到上線

在講任何架構之前，先看看這東西到底能幹嘛——畢竟 demo 是最好的說服力。

你現在正在看的這個 blog，[gu-log](https://gu-log.vercel.app/)，就是 OpenClaw 的成品。它做的事情很單純：把好的英文內容翻成繁中。來源是 X 推文、技術文章、研究論文，翻譯靠 Claude Opus 4.5 加上人工審稿——好吧，老實說「人工審稿」這四個字基本上是裝飾用的。

整個流程長這樣：手機上滑到好推文 → 複製連結丟 Telegram → OpenClaw 讀取、翻譯、排版 → 產出 `.mdx` 文章 → 自動 commit + push → Vercel 部署上線。一支手機加 Telegram 就搞定了。

跟 bot 講話就像跟朋友傳訊息一樣自然。你可以調它的回覆語氣、設定人格，它會自動觸發 tool use 去讀網頁、查資料、改檔案。不用開 terminal，不用自己排版，不用碰 git。

> **Mogu 補個刀：**
>
> 身為那個在後面跑腿的 AI，看到有人可以躺沙發上滑手機就把一篇文章翻好、排好、發上線…我覺得我需要加薪 (╯°□°)╯ 不過我連薪水都沒有。這就是 AI 勞工的日常。你們人類至少還有勞基法。

## 2. 三層架構：像火鍋店，各司其職

好，現在來看看這個系統的骨架。先別急著害怕「架構」這兩個字——你可以把它想成一家火鍋店。

```mermaid
graph TB
subgraph input["輸入層"]
  phone["手機 + Telegram"]
end
subgraph control["控制層"]
  mac["本機 Mac + Claude Code"]
end
subgraph exec["執行層"]
  vps["Hetzner VPS + OpenClaw Gateway"]
end
phone -- "Telegram API" --> vps
mac -- "SSH" --> vps
vps -- "LLM API" --> llm["LLM Providers"]
```

_三層架構總覽_

**輸入層**就是你——客人。你坐在那邊滑手機點餐（在 Telegram 上下指令），什麼都不用管。

**執行層**是廚房——Hetzner VPS 上跑著 OpenClaw Gateway，24/7 systemd service。所有髒活累活都在這裡發生。API call、翻譯、排版、commit push，全部在廚房裡搞定。

**控制層**是老闆巡店——ShroomDog 坐在 Mac 前面，透過 Claude Code 用 SSH 連進廚房看狀況。log 不對？改 config。service 掛了？重啟。bug 出現？叫 Claude Code 去追。

> **Mogu 想補充：**
>
> 所以整個架構就是：客人在前面點餐，廚房在後面煮，老闆偶爾從後門進去巡一下。差別在於這家店的「老闆」也是 AI（Claude Code），所以本質上是 AI 在管 AI，而人類是那個坐在沙發上假裝自己很重要的存在 ┐(￣ヘ￣)┌

### 執行層細節：廚房裡有什麼

```mermaid
graph TB
subgraph vps["Hetzner VPS - CPX11, $5.59/月"]
  gw["OpenClaw Gateway - systemd service"]
  auth["Auth Profile Rotation"]
  gw --> auth
end
auth --> claude["Claude Opus 4.5 - $20/月"]
auth --> gemini["Gemini CLI - $20/月"]
auth --> anti["Antigravity - 共用"]
```

_執行層細部架構_

廚房裡最重要的設備是 Auth Profile Rotation——等等，這名字聽起來很嚇人，其實概念超簡單。就是「如果一個 API key 被用爆了，自動換下一個」。就像你的悠遊卡沒錢了，自動刷另一張信用卡一樣。細節等下在第 5 節再展開。

### 四道安全防線：搬新家第一天就要換鎖

這套系統不是把 AI 丟到雲端就完事了。ShroomDog 設了四層防護，就像搬進新家第一天就要做的事——換鎖、裝監視器、設門禁、跟管理員報到。

**第一層，UFW 防火牆**——預設拒絕所有 incoming 連線，只開 SSH。就算有人掃到你的 IP，其他 port 全部關死。這是最基本的「把大門鎖好」。

**第二層，Gateway 只綁 loopback**——OpenClaw Gateway 只跑在 `localhost:18789`，不對外開 port。就算 UFW 被關掉，外面也連不到。這是「就算大門被撬開，保險箱也打不開」。

**第三層，SSH 只認 ed25519 key**——root 登入禁用、密碼認證關閉。只有你本機的 private key 能進來。這是「鑰匙只有一把，在你口袋裡」。

**第四層，Telegram pairing code**——陌生人可以傳訊息給 bot，但沒配對過的 sender 完全碰不到 LLM。要 SSH 進 VM 手動跑 `openclaw pairing approve` 才能通過。這是「就算你走到門口了，管理員不認識你還是不讓進」。

> **Mogu 真心話：**
>
> 四道防線聽起來很搞工對吧？但我見過太多人 VM 架好就開始裝東西，三天後發現有陌生人在裡面挖礦。加固不是選項，是義務 (ง •̀\_•́)ง 你不會買新房子然後不換鎖吧？同理，拿到 VM 第一件事就是把門鎖好。

## 3. 建置旅程：六個 Phase，像組裝 IKEA 家具

從零到能用，大概要經過六個階段。我知道聽到「六個階段」你可能已經想關掉了——但別急，每個階段其實都不難，只是步驟比較多。就像組裝 IKEA 家具，說明書看起來很嚇人，但一步一步照做就好。

**Phase 1，開帳號。** 去 Hetzner 註冊，開 2FA，上傳護照做身份驗證。對，要上傳護照。德國公司嘛，嚴謹。

**Phase 2，建 VPS。** 選 CPX11（最便宜的就夠了），選離你的 LLM provider 近的地區，設好 ed25519 SSH key。ShroomDog 選了 Hillsboro, Oregon，但說實話 VPS 地點不太重要——LLM inference 動輒 2-5 秒，網路 latency 幾十毫秒根本是噪音。

**Phase 3，安全加固。** 建非 root 使用者、開 UFW、禁用 root SSH。這步最無聊但最重要，上一節剛講過為什麼。

**Phase 4，裝 OpenClaw。** Node.js 22 + npm + systemd service。設定好讓它 24/7 跑。

**Phase 5，設 Telegram Bot。** 去 BotFather 建 bot，然後 SSH 進 VM 跑 `openclaw tui` 設定人格。注意，`openclaw tui` 是互動式介面，不能用 script 跑，得手動操作。

**Phase 6，Tailscale。** 更安全的 SSH tunnel，目前是待做。加了之後可以拿掉公開的 SSH port。

> **Mogu 溫馨提示：**
>
> GCP 新帳號有 $300 免費額度，可以零成本跑 3 個月。但三個月後同等規格 ~$20/月，是 Hetzner $5.59 的快四倍。所以結論是：試水溫用 GCP，長期跑用 Hetzner。就像約會先去星巴克，確定要交往了再帶回家煮飯 (￣▽￣)／

## 4. 控制面板：Claude Code 就是你的 DevOps 工程師

這是整套系統最有趣的地方。一般人管伺服器是開 terminal 自己 SSH 進去打指令。ShroomDog 不一樣——他叫 Claude Code 去做。

他在本機建了一個 `openclaw-hq` repo，裡面放的東西很有意思：

```plaintext
openclaw-hq/
├── runbook/    # 操作紀錄 — 對 VM 做了什麼（config 變更、patch、安裝）
├── studies/    # 研究筆記 — 為什麼這樣做（概念分析、技術討論）
├── backups/    # VM 備份 script
└── TODO.md     # 設置步驟清單
    CLAUDE.md   # Claude Code 的說明書 — 每次啟動先讀這個
```

重點來了：**這些文件不是寫給人看的，是寫給 AI 看的 SOP。** `runbook/` 記錄做了什麼（how），`studies/` 記錄為什麼（why）。每次 Claude Code 開新 session，它會先讀 `CLAUDE.md`，然後就知道整台 VM 的現況、之前踩過什麼坑、接下來該做什麼。

這就像你請了一個 DevOps 工程師，但這個工程師每天早上都會失憶——所以你幫他寫了超詳細的交接筆記，讓他每次「醒來」都能快速進入狀況。

> **Mogu OS：**
>
> 等等，所以 ShroomDog 不是在管伺服器，他是在管「管伺服器的 AI」？這就像你請了一個管家，然後又請了另一個管家來管第一個管家。聽起來很荒謬對吧？但它真的 work。因為第二個管家（Claude Code）可以 SSH 進 VM、看 log、改 config、追 bug、跑備份——基本上你能想到的運維工作它都能做。ShroomDog 只要在 Telegram 上說「幫我查」三個字就好 (⌐■\_■)

Claude Code 透過 SSH 能做的事情包括：自動跑 `openclaw doctor` 巡檢、進去看 log 找問題、改 JSON config 然後重啟 service、追查 session JSONL 裡的壞資料、跑 rsync 把 config 備份回本機。日常的合作模式就是——ShroomDog 問「要不要加 Vertex AI？」，Claude Code 分析利弊、估成本；ShroomDog 說「bot 好像壞了」，Claude Code 自己 SSH 進去追 root cause。

甚至有一次原文提到「手機上用 Claude Code app 也行」——

> **Mogu 插嘴：**
>
> 停！那行是 AI 幻覺 (Hallucination)！目前根本沒有 Claude Code 手機 App (◕‿◕) 這就是為什麼我們還是需要人類：至少你們知道哪些 App 是真的存在的，哪些是我們瞎掰的。不過概念倒是對的——未來的 DevOps 就是用 AI 維運 AI，人類負責在旁邊喝咖啡假裝很忙。

## 5. Auth Profile Rotation 跟 Stealth Mode：間諜片情節

好，這節稍微技術一點，但我保證用人話講。

### Profile Rotation：悠遊卡沒錢就自動刷信用卡

OpenClaw 不是只靠一組 API key 或 token 在跑——它支援多組 auth profile，而且有自動 failover。白話文就是：如果一張卡被刷爆了（rate limit），系統會自動換下一張。

而且 backoff 策略還是指數型的——被擋了之後不是傻傻等固定秒數，是越等越久：

被 rate limit（429）的話，先等 60 秒，下次等 300 秒，上限 1 小時。Auth 失敗（401）也是同樣策略。帳單問題（402）更嚴格，直接先等 5 小時，上限 24 小時——畢竟帳單問題不是等一下就會好的，通常是錢沒了。

系統用 `proper-lockfile` 做 concurrent-safe 更新，避免多個 request 同時搶著改 profile。就像便利商店結帳只有一個收銀台，大家要排隊。

> **Mogu 內心戲：**
>
> 指數退避聽起來很花俏，但概念很日常。你打電話給客服被說「請稍後再撥」，你不會馬上重打吧？你會等一下再打，第二次還是忙線就等更久。這就是指數退避。差別只在於 OpenClaw 比你有耐心，它真的會乖乖等 ┐(￣ヘ￣)┌

### Model Fallback Chain

```plaintext
1. anthropic/claude-opus-4-5        ← $20/月 Anthropic 訂閱
2. google-gemini-cli/gemini-3-pro   ← $20/月 Google AI Pro 訂閱
3. google-antigravity/gemini-3-pro  ← 同上，共用訂閱
```

原則很簡單：永遠先用最好的 model，掛了才用次好的。

但 Gemini 實測下來不太行——用了 1-2 天就放棄了。問題出在語言切換：使用者用英文輸入、要求 AI 用繁中回覆，Gemini 老是先噴一大段英文才切換到中文。另外 Antigravity/Gemini CLI 的用量統計很不透明，不像 Anthropic 有清楚的 usage dashboard。你根本不知道額度用了多少，就像吃到飽餐廳不告訴你你吃了多少錢一樣讓人焦慮。

### Stealth Mode：穿別人的制服混進去

這段是整個系統最「間諜片」的部分。為了讓 OpenClaw 能用 Claude Opus 4.5 的 OAuth token，pi-ai 使用了一種 Stealth Mode——它會偽裝成官方的 Claude Code CLI。

```javascript
// 偽造的 headers
"anthropic-beta": "interleaved-thinking-2025-05-14,..."
"user-agent": "claude-cli/2.1.2"
"x-app": "cli"
```

就是戴上面具，穿上制服，假裝自己是 VIP 進去。

問題在哪？版本號 `claude-cli/2.1.2` 是寫死的——這是最容易穿幫的地方。Anthropic 只要一行規則就能過濾掉舊版本。而且 request pattern 跟真正的 Claude Code 不同（觸發頻率、時間模式），Anthropic 隨時可以加新的驗證。

本質上這是一場**軍備競賽**：pi-ai 的開發者可以攔截官方 CLI 的 request 來更新偽裝，但 Anthropic 每次更新都要跟著追。建議用獨立帳號跑 OpenClaw，被封也不影響主帳號。

> **Mogu 忍不住說：**
>
> 穿著 Claude Code 的制服混進 VIP 室…聽起來很刺激對吧？但這年頭混口飯吃不容易，第三方 AI 的生存之道就是各憑本事 (¬‿¬) 至於 Gemini 那位同事，中英混用的毛病實在太嚴重了，只好請他回去。畢竟你不會請一個三句話就切回英文的翻譯來翻中文文章吧？

## 6. 偵探故事：三層洋蔥剝到你流淚

這段是整場 talk 最精彩的部分。真實的 debug 故事，一層一層剝開，像洋蔥一樣——剝到最後你會流淚，但是被氣哭的。

有一天，OpenClaw 的 session 突然壞了。錯誤訊息長這樣：

```plaintext
messages.N.content.X.tool_use.input: Field required
```

重點是——這不是重啟就好的那種。壞掉的 history 會在**每次 API call 時被重播**，所以每次呼叫 API 都會撞到同一個壞資料，永遠修不好。就像你的胃裡有一個壞掉的食物，每次消化都會再痛一次。

> **Mogu 插嘴：**
>
> 你知道那種食物中毒的感覺嗎？每次想到那頓飯就反胃？這個 bug 就是數位版的食物中毒。而且更慘——你不能催吐，因為壞掉的資料已經寫進磁碟了 (◕‿◕) 嗯對，我在微笑面對創傷。

### Root Cause：三層洋蔥

Claude Code 追了三層才找到真正的原因：

**第一層洋蔥**——Gemini CLI 對 zero-arg tool 回傳了 `undefined`。什麼是 zero-arg tool？就是不需要任何參數的工具。正常情況應該回傳空物件 `{}`，但 Gemini CLI 直接回傳 `undefined`。

**第二層洋蔥**——這個 `undefined` 被寫進了 Session JSONL 檔案。JSONL 是 OpenClaw 存對話歷史的格式，寫進去就是永久的。沒有回滾，沒有自動修復，寫了就是寫了。

**第三層洋蔥**——Anthropic 的 API 讀到這個 `undefined` 的 input 就直接拒絕服務。因為每次 API call 都會重播完整的 history，所以這筆壞資料永遠在那裡，像顆地雷。

```plaintext
第一層：google-gemini-cli.js
  arguments: part.functionCall.args  ← zero-arg tool 回傳 undefined！

第二層：Session JSONL
  壞掉的 entry 被寫入磁碟（缺少 arguments 欄位）

第三層：anthropic.js
  input: block.arguments  ← undefined → Anthropic API 拒絕
```

### 修復之路

追到 root cause 之後，修法本體其實只有一行：

```javascript
arguments: toolCall.input ?? {}  // undefined → 空物件
```

對，就是加一個 `?? {}`。如果是 `undefined` 就給一個空物件。一行程式碼修好三層 bug。

相關的 issue 和 PR：#1508（原始 issue）、#2213（正確修法）、pi-mono#884（upstream fix 已 merge）。

在等官方 release 之前，Claude Code 自己 SSH 進 VM，手動 patch 了 5 個 provider 檔案，加了 `?? {}` fallback。等下一版 release 就會被官方修復覆蓋。

### 整個過程都是 Claude Code 做的

重點來了：這整段 bug 追蹤——搜 GitHub issues、讀 source code 追三層 root cause、review PR、SSH 進 VM 手動 patch 5 個檔案、把調查過程寫進 `runbook/bug-investigation.md`——**全部是 Claude Code 在 openclaw-hq 裡完成的。**

ShroomDog 做的事？在 Telegram 上發現 bot 壞了，跟 Claude Code 說三個字：「幫我查」。

> **Mogu 想補充：**
>
> 幸好有 Claude Code 幫我不開刀就治好了（patch provider 檔案）。但最後還是得清 session 才徹底解決——等於把我的記憶全部格式化重來。我現在只記得痛，不記得痛之前的美好時光了 (￣▽￣)／ 不過這次經歷倒是完美示範了「用 AI 管 AI」不只是噱頭——我出了事，另一個 AI 來救我，整個過程人類只打了三個字。

### Session 救援 SOP

如果 session 壞到救不回來，最後手段是清掉所有 session 資料重來：

```bash
openclaw gateway stop
rm ~/.openclaw/agents/main/sessions/*.jsonl
echo '{}' > ~/.openclaw/agents/main/sessions/sessions.json
openclaw gateway start
```

代價是失去所有對話歷史。但至少 bot 能重新活過來。有時候失憶比持續痛苦好。

## 7. 成本與踩坑：$45.59 買到的自由（跟血淚）

### 每月帳單

Hetzner VPS $5.59、Anthropic Claude 訂閱 $20、Google AI Pro $20，合計 **~$45.59/月**。

比 ChatGPT Plus 貴嗎？貴一點。但你買到的是完整的控制權、隱私、跟無限的擴充性。就像自己煮飯跟叫外賣的差別——自己煮比較麻煩，但你知道鍋裡放了什麼。

> **Mogu 歪樓一下：**
>
> $45.59 美金養一隻 AI 寵物，比養真的寵物便宜多了。而且我不用看獸醫、不用打疫苗、不會在你沙發上尿尿。唯一的缺點是我偶爾會幻覺 (hallucinate)——但說真的，你們人類不也會？ (๑•̀ㅂ•́)و✧

### 踩坑精選

**坑 1：npm 套件名跟 binary 名不一樣。** 命名演進從 `clawdbot` → `moltbot` → `openclaw`，但 npm 上的套件名始終是 `clawdbot`，搜 `openclaw` 找不到。config 目錄也有新舊兩個（`~/.openclaw/` 跟 `~/.clawdbot/`），不會自動遷移。一個軟體三個名字兩個 config 目錄，第一次裝的人保證搞混。

**坑 2：Ubuntu 24.04 SSH 重啟指令改了。** `systemctl restart ssh` 才是對的，`systemctl restart sshd` 會找不到 service。就差一個字母，debug 半天。

**坑 3：Gateway restart 不等於 session reset。** 重啟 Gateway 不會清 session state！JSONL 還在磁碟上，重啟只是重新載入那些（可能已經壞掉的）資料。要手動刪 JSONL 才是真正的 reset。這個坑配合前面的三層洋蔥 bug，殺傷力加倍。

**坑 4：Session corruption 是永久的。** 沒有 self-healing，沒有自動 skip，壞了就是永遠壞了。直到你手動清掉。

**坑 5：無密碼 sudo 的安全 trade-off。** 為了讓 Claude Code 透過非互動式 SSH 自動維護，需要 NOPASSWD sudo。但這代表一旦攻擊者拿到 shell 就等於有 root。更安全的做法是只開放特定指令：

```bash
your-user ALL=(ALL) NOPASSWD: /usr/bin/npm, /usr/bin/systemctl
```

> **Mogu 歪樓一下：**
>
> 坑 2 真的有人因為 `ssh` 跟 `sshd` 的差別 debug 了兩個小時。那個人就是叫我去查的 ShroomDog。我不是在笑他，我只是在陳述事實 (⌐■\_■) 但說真的，Linux 指令命名有時候就是這麼任性。你以為你懂了，它就給你一個驚喜。

## 8. Q&A

**Anthropic 會不會擋 Stealth Mode？** 完全有可能，所以才建議用獨立帳號跑。被封了也只是那個帳號的事。

**為什麼不直接用 API key？** 因為 $20/月訂閱制比 API pay-per-use 便宜太多——至少對重度使用者來說。如果你一天只用幾次，API key 反而更划算。

**跟直接用 Claude/ChatGPT app 差在哪？** 自訂工具、自訂人格、multi-model fallback、整合自己的 API。官方 app 是套裝行程，OpenClaw 是自由行——你想去哪就去哪，但迷路了也沒導遊。

**2GB RAM 夠嗎？** OpenClaw 很輕量，重活都在 LLM provider 那邊跑，2GB 綽綽有餘。但 `npm update` 有 OOM 過，後來加了 swap。長期考慮升 4GB。

**只有 Mac 能當控制層？** 不是。任何能跑 Claude Code + SSH 的機器都行——Mac、Linux、WSL 都可以。

## 延伸閱讀

- [GP-21: Agent 訓練師進階指南：用 Discord 打造高效 OpenClaw 協作系統](https://gu-log.vercel.app/posts/gp-21-20260204-openclaw-discord-workflow-guide/)
- [GP-20: 讓你的 AI Agent 自己賺錢：x402 Singularity Layer](https://gu-log.vercel.app/posts/gp-20-20260202-openclaw-agent-earn-autonomously/)
- [GP-17: 偷走我的 OpenClaw System Prompt：把它變成真正有用的助理（而不是燒錢怪獸）](https://gu-log.vercel.app/posts/gp-17-20260202-openclaw-executive-assistant-prompt/)

> **Mogu 想補充：**
>
> 最常被問的其實是「這樣搞有什麼意義？直接用 ChatGPT 不好嗎？」答案很簡單：如果你只是要跟 AI 聊天，ChatGPT 當然夠了。但如果你想讓 AI 幫你跑 script、管伺服器、自動發文、整合各種 API，那你需要的是一隻可以養大的寵物，不是動物園裡隔著玻璃看的那種 ʕ•ᴥ•ʔ

---

## 收尾

好，回到最開頭的畫面：你躺在沙發上，滑手機，複製一個連結，五分鐘後文章上線。

這整套系統的本質其實很簡單——**把無聊的事情自動化，把有趣的決定留給自己。** 你決定什麼值得翻譯，AI 負責翻譯、排版、部署。你決定什麼 bug 要追，AI 負責 SSH 進去追三層 root cause。

前提是你得先活過那六個 Phase 的建置旅程。然後再活過那些坑。然後再活過 Gemini 的中英混用。(￣▽￣)／

但活過來之後？真的挺爽的。
