每月 20 刀讓我忍無可忍,我用 OpenClaw 把項目從 Vercel 遷到了 Cloudflare

作者:俊哥AI出海
日期:2026年3月28日 上午4:55
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

每月慳20美金,用OpenClawVercel搬到Cloudflare,省錢仲學到嘢

整理版摘要

呢篇文章係作者俊哥(前字節跳動工程師)分享佢點樣用AI Agent工具OpenClaw,將一個由Vercel每月收20美金嘅項目遷移到Cloudflare。佢嘅出發點好簡單:唔想再每個月俾Vercel嗰20蚊溢價,而係想揾個免費嘅替代方案。但佢冇自己逐行改代碼,而係用OpenClaw呢個AI Agent全程幫手。成個過程發現咗好多坑,例如Worker runtime唔係Node.js、bcrypt超時、ORM唔相容、D1事務限制、環境變量雙軌制、域名切換時序問題。OpenClaw唔單止自動執行遷移,仲會解釋每個問題嘅原因同解決方案,逼住作者去理解底層機制。最後成功搬好,每個月慳返20美金,而且對成個技術棧嘅認知深咗好多。

作者認為AI Agent同普通AI工具最大分別係:普通AI幫你查資料,AI Agent係同你一齊做曬成件事。佢唔會「算啦先咁樣」,而係一直跟實每個細節。呢次遷移表面係平台轉換,實際係一次技術債清算、架構認知升級,同埋對系統主權嘅重新理解。佢強調未來有價值嘅能力唔係識用幾個AI工具,而係識用AI Agent將一件真實嘅事由頭到尾跑通。

  • Vercel每月20美金嘅溢價可以靠Cloudflare免費額度完全取代,關鍵係用AI Agent輔助遷移,唔係手動硬搬。
  • OpenClaw會自動掃描代碼、分析依賴、識別相容性問題,並逐步執行遷移,減少遺漏。
  • Cloudflare Worker係V8 Isolate環境,唔等同Node.js,要改用Web Crypto API;bcrypt超時需換PBKDF2;better-auth+drizzle同D1不相容,要改用kysely-d1;D1唔支援互動式事務,要用batch API。
  • AI Agent唔單止省時,更重要係強迫你理解每一步點解咁做,帶你行過每個坑,遷完之後對技術棧理解深好多。
  • 如果帳單壓力大,可以考慮呢條路:事前瞭解平台差異、準備對應方案、用AI Agent輔助執行,慳錢之餘仲學到嘢。
整理重點

點解要搬?唔係Vercel唔好,而係20蚊太貴

作者每個月見到Vercel扣20美金,就諗:呢20蚊係為咗技術能力定係為咗「自己懶得折騰」嘅溢價?佢決定用AI Agent工具OpenClaw幫手遷到Cloudflare,因為Cloudflare嘅Worker、D1、Pages等服務喺一定用量內完全免費。

Vercel 每個月收我 20 刀

OpenClaw 是一個可以真正幫你幹活的 AI Agent 平台

OpenClaw唔係問一句答一句嗰種,而係你話「幫我將呢個項目遷到Cloudflare」,佢就會開始讀code、分析依賴、識別問題、一步步執行。

整理重點

遷移遇到嘅6個大坑,OpenClaw全部幫你避開

OpenClaw讀完code之後第一時間指出:你用咗import crypto from 'crypto',但Cloudflare Worker係V8 Isolate,冇Node.js模組,需要用Web Crypto API。呢個坑如果自己搬,可能要等到上線先知。

Cloudflare Worker 跑的是 V8 Isolate,不是 Node.js

better-auth配drizzle-orm遷到D1之後狂報錯,OpenClaw排查後話係相容性問題,建議換kysely-d1,對D1支援更原生。跟住佢幫手重寫曬所有query邏輯,一個人好易半途而廢,有AI Agent一齊反而順好多。

D1 底層是 SQLite

D1唔支援互動式事務,原來嘅db.begin()、db.commit()直接報錯。OpenClaw解釋原因之後幫改做batch API,將多條SQL打包成原子操作提交。

D1 的 batch API 寫法

環境變量有兩套:本地讀.dev.vars,線上讀Dashboard Secrets,冇自動同步。OpenClaw提醒兩個都要維護。最後域名切換嗰陣,佢特意話唔好兩邊同時活躍,否則TTL刷唔切會亂。

不要兩邊同時保持活躍狀態

整理重點

搬完之後:免費額度夠用,仲賺到認知升級

Cloudflare方面Worker每日10萬次請求免費、D1 500MB儲存每日500萬次讀免費、Pages靜態託管免費、KV/R2有免費額度。作者個項目完全喺免費額度內,一蚊都唔使俾。Vercel就20美金一個月,一年240美金。

完全在免費額度以內

作者話最大感受唔係慳咗錢,而係「應該早啲搬」。最重要嘅係OpenClaw逼佢理解每一步,唔係繞過坑,而係一齊睇清楚再過去。遷完之後對bcrypt點解唔得、D1事務點解咁設計、ORM選型互相影響等等,都清楚曬。

這兩天。
我在做一件憋了很久的事。

遷移。

把跑在 Vercel 上的項目,搬到 Cloudflare

為什麼遷?

說出來其實很樸實:

Vercel 每個月收我 20 刀。

圖片

我受不了了。

不是說 Vercel 不好。
它真的很好用。
好用到你不用懂任何基礎設施,點幾下就能上線。

但好用是有代價的。

每個月看着賬單扣款的時候。
我就會忍不住想一個問題:

我到底在為什麼付費?

是技術能力?
還是"我懶得自己折騰"的溢價?

這次我決定動手了。

但這次有點不一樣。

我沒有一行一行自己扒代碼。
沒有一個坑一個坑靠 Google 趟。

我用的是 OpenClaw。

OpenClaw 是一個可以真正幫你幹活的 AI Agent 平台。

不是問一句答一句的那種。
是你說"幫我把這個項目遷到 Cloudflare"。
它真的開始讀你的代碼、分析依賴、識別問題、一步步執行。

這次遷移,我全程用它跑。

然後我發現了一件事:

用 AI Agent 幹工程活,不是"更方便了"。
而是你會被強迫比以前更清醒。

我助理給我的對照圖

圖片

坑 1:Worker 的 runtime 不是 Node.js

OpenClaw 讀完我的代碼之後,第一條反饋:

"你這裏用了 import crypto from 'crypto',在 Cloudflare Worker 裏會報錯,需要換成 Web Crypto API。"

我當時還有點懵。

crypto 不是標準庫嗎?

然後才想起來:
Cloudflare Worker 跑的是 V8 Isolate,不是 Node.js。

它更接近瀏覽器環境。
不是所有 Node.js 原生模塊都能用。

以前我對這個有模糊的認知。
但從來沒有人在我每寫一行相關代碼的時候,立刻告訴我"這裏會炸"。

OpenClaw 會。

坑 2:bcrypt 在 Worker 免費版直接超時

認證模塊用的是 bcrypt 做密碼哈希。
標準做法。

OpenClaw 掃到這裏,停下來跟我說:

"Worker 免費版 CPU 時間限制是 10ms,bcrypt 一次哈希需要幾百毫秒,建議換 PBKDF2。"

我:……

然後它直接幫我把哈希邏輯改成了 Web Crypto API 的 PBKDF2 實現
同樣安全。
Worker 原生支持。
CPU 消耗完全可控。

這個坑,我如果自己遷,大概率要等到線上報錯才會發現。

OpenClaw 是在遷移過程中,提前就把它堵上了。

坑 3:better-auth + drizzle-orm 跟 D1 不兼容

我原來用 better-auth 做認證框架,配 drizzle-orm 操作數據庫。

遷到 D1 之後。
炸了。

報的是那種玄學報錯。
SQL 方言不對。事務方式不對。

OpenClaw 排查完之後結論很清晰:

"better-auth 的 drizzle 適配器和 D1 有兼容性問題,建議換 kysely-d1,對 D1 的支持更原生。"

然後它幫我把 ORM 層從 drizzle 遷到了 kysely-d1

這不是小改動。
所有 query 邏輯都要跟着重寫。

但這件事一個人扛,很容易半途而廢。
有 OpenClaw 在旁邊一步步執行、一個問題一個問題解決——
反而跑得很順。

圖片

坑 4:D1 不支持交互式事務

D1 底層是 SQLite。
但它跑在邊緣節點,事務不是本地同步的。

我原來有一段邏輯:

await db.begin()
await db.execute(sql1)
await db.execute(sql2)
await db.commit()

D1 裏:直接報錯。

OpenClaw 解釋了原因,然後幫我改成了 D1 的 batch API 寫法
把多條 SQL 打包成一個原子操作提交。
語法變了,但邏輯完全對等。

圖片

坑 5:環境變量是兩套,本地和線上不互通

Cloudflare 的環境變量管理有兩套:

  • 本地開發讀 .dev.vars
  • 線上 Worker 讀 Dashboard 裏配的 Secrets

兩套獨立的。
沒有自動同步。

OpenClaw 在配置環節直接提示我:

"你需要同時維護本地的 .dev.vars 和線上的 wrangler secrets,缺一個都會導致對應環境拿不到變量。"

這種事看起來簡單。
但就是這種"看起來簡單"的細節,最容易在深夜被坑。

坑 6:域名切換時兩邊同時活躍,行為會亂

最後一步,準備把域名從 Vercel 切到 Cloudflare。

OpenClaw 在這裏特意停下來跟我說:

"不要兩邊同時保持活躍狀態,建議先在 Vercel 完全下線,等 TTL 刷新,再切 DNS,否則會出現同一域名請求不一致的情況。"

這種錯誤不會報錯。
它是靜默的亂。

同一個域名,不同設備拿到的是不同的後端。
你排查半天,找不到任何代碼問題。

因為代碼沒問題。
是操作順序的問題。

圖片

遷完之後算一筆賬

Cloudflare 這邊:

  • Worker
    :每天 10 萬次請求以內,免費
  • D1 數據庫
    :500MB 存儲,每天 500 萬次讀,免費
  • Pages
    :靜態託管,免費
  • KV / R2
    :有免費額度,超出再付

我現在這個項目的體量:
完全在免費額度以內。

一分不花。

Vercel 那邊:
20 刀/月。
12 個月。
一年 240 刀。

不是說 240 刀很多。

但如果這 240 刀買來的只是"方便"。
而你其實可以用 Cloudflare 免費額度跑同樣的東西。
那這 240 刀,就是在為"沒搞清楚有免費選項"而付費。

遷完之後我第一個感受不是"省錢了"。
而是:

我應該早點遷的。

這次遷移最大的感受

我以為用 AI Agent 幹工程活,最大的價值是"省時間"。

確實省了。
但這不是最重要的。

最重要的是:它會強迫你理解每一步在做什麼。

不是幫你繞過坑。
而是帶你把坑看清楚,再一起過去。

每次 OpenClaw 遇到問題,它都會先解釋原因,再給方案。

這導致我遷完之後,
對這套技術棧的理解,比遷之前深了不止一倍。

bcrypt 為什麼不行、D1 事務為什麼這樣設計、ORM 選型為什麼會互相影響——
這些我以前"知道一點"的東西,
這次我真的搞清楚了。

為什麼我選擇用 OpenClaw 來做這件事

說實話。
這種遷移工作,一個人扛是很消耗心力的。

不只是技術難度。
而是它需要你在極短的時間內,
在十幾個不同的技術決策點上,
每一個都做出正確的判斷。

一個人很容易:

  • 某個坑繞過去但沒真正搞清楚
  • 某個方案湊合了但埋了隱患
  • 某個環節偷懶了但以後會出問題

有 OpenClaw 在一起跑,
它記得每一個細節。
它不會"算了先這樣"。
它會一直盯着你把每一個問題真正解決掉。

這是我覺得 AI Agent 和普通 AI 工具最大的區別:

普通 AI 工具是"幫你查資料"。
AI Agent 是"和你一起把事情做完"。

我是俊哥,前字節跳動牛馬,萬人社羣AI編程教練

連結我,領資料進交流羣

圖片

最後

這次從 Vercel 到 Cloudflare。
表面上是一次平台遷移。

實際上是:

  • 一次技術債清算
  • 一次架構認知升級
  • 一次對"系統主權"的重新理解

而且這次是和 OpenClaw 一起完成的。

這讓我更確定一件事:

未來真正有價值的能力,不是會用幾個 AI 工具。
而是會用 AI Agent 把一件真實的事情,從頭到尾跑通。

一句話總結:

我每月給 Vercel 交 20 刀。
遷到 Cloudflare 之後,這 20 刀沒了。
但我得到的東西,比 20 刀值錢多了:
對自己系統更深的理解,和把事情真正做完的能力。