模型 / 資料集
wrtnlabs/autobe avatar
wrtnlabs/autobe

AutoBE:把編譯器當護欄的 TypeScript 後端生成代理

AI Vibe Coding Agent of TS backend server, enhanced by compiler skills, generating 100% working code

1,359 個 Star156 個 ForkTypeScriptAGPL-3.0

秒懂

它是什麼?
AutoBE 用瀑布式流程讓 LLM 依序產出需求分析、Prisma schema、OpenAPI 規格、e2e 測試與實作,每一步都由編譯器驗證後才往下走。它要解決的是生成程式碼編不過的問題,代價是你必須接受 NestJS 加 Prisma 這一套固定技術棧。
適合誰用?
AutoBE 適合已經在用 NestJS 與 Prisma、想快速把需求草稿變成可編譯後端骨架的團隊,也適合想觀察多代理協作流程的開發者。若你的後端不是這個技術棧,或需要把生成結果閉源商用,AGPL-3.0 與固定棧會直接擋住你。
可以商用嗎?
可以,但條件嚴格。AGPL-3.0 是網路 copyleft 授權:如果別人透過網路使用你修改過的版本(例如作為託管服務),你必須以同一授權向他們提供原始碼。
還在維護嗎?
有在維護。儲存庫最近一次提交在 83 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

它想解決的不是寫程式慢,而是生成程式碼編不過

多數 LLM 寫後端的流程是:貼一段需求,拿到一堆看起來合理的檔案,然後花更多時間修型別錯誤、補漏掉的關聯、對齊前後端契約。AutoBE 的切入點很明確,README 開頭就寫 generated backend application is designed to be 100% buildable by AI-friendly compilers。它把「編譯得過」當成第一順位的驗收條件,而不是事後補救。

目標讀者有兩類。一類是不熟程式但清楚自己要什麼產品的人,README 的示範對話裡就有一句「Since I'm not familiar with programming, please write a requirements analysis report as you see fit」,直接把需求分析的判斷權交給代理。另一類是資深開發者,README 說生成結果可以當成 juniors 的學習基礎,也能提升 senior 的產出速度。這兩種期待差很多,前者要的是能跑的成品,後者要的是可讀、可接手的中介產物。

它預設的產出是完整的後端規格、資料庫與 API 文件、測試覆蓋,以及實作邏輯。也就是說,AutoBE 賣的不是某個函式,而是一條從自然語言到可編譯專案的流水線。

瀑布模型加編譯器回饋:五個代理依序接手

README 的流程圖把架構講得相當清楚。最上層是一個 Facade Controller,負責調度五個功能代理:Analyze、Database、Interface、Test、Realize。它們不是平行跑,而是依序傳遞,這對應官網文件裡列的 Waterfall Model 概念。

每個代理後面都掛著一個驗證器。Database 代理產出的東西交給 Database Compiler 驗證,對應到 packages/interface/src/database/AutoBeDatabase.ts。Interface 代理負責生成 OpenAPI 規格,走的是 OpenAPI Compiler。Test 代理產出的測試由 Test Compiler 分析。Realize 代理的產出則交給圖中標示為 Hybrid Compiler 的元件編譯。

這個設計的關鍵在於回饋迴路的方向。LLM 的輸出不是直接寫進檔案就結束,而是先被當成結構化資料送進編譯器,驗證失敗就退回重做。瀑布模型在傳統軟體工程裡常被批評為缺乏彈性,但用在 LLM 生成上反而合理:每個階段的產物都有明確的 schema,錯誤可以在下一階段開始前就被攔下來,不會累積到最後才爆。

值得注意的是,編譯器在這裡扮演的是「AI 友善」的角色。README 用 AI-friendly compilers 這個說法,暗示這些驗證器是為了讓模型容易對齊而設計的,而不是直接套用既有的 tsc 或 prisma validate。實際的驗證嚴格程度,材料裡沒有說明。

啟動方式:只有一條路徑,就是在本機跑 playground

README 給的 Getting Started 只有四行,沒有 npm 全域安裝、沒有 Docker、也沒有雲端服務:

git clone https://github.com/wrtnlabs/autobe --depth=1 cd autobe pnpm install pnpm run playground

跑完之後 playground 在 http://localhost:5173,你會看到一個聊天介面,可以管理多個 session,並切換不同的 LLM provider,README 特別點名支援本地模型如 qwen3.5-397b-a17b。

互動方式是對話式推進。README 示範的腳本依序是:先要一份需求分析報告,接著「Design the database schema」,再來「Create the API interface specification」,然後「Make the e2e test functions」,最後「Implement API functions」。這五句幾乎一比一對應前面那五個代理,所以實際上使用者是在手動推進瀑布的每一層,而不是丟一句話等成品。

另外有一個 replay 功能在 http://localhost:5173/replay/index.html,README 說那裡可以看到 AutoBE 開發團隊自己測試與 benchmark 的聊天 session。這是目前唯一能直接觀察生成品質的入口,因為官方沒有把評測數據寫進 README。

技術棧是硬綁定的,這既是優點也是柵欄

官網文件的 Backend Stack 分類底下只有三項:TypeScript、Prisma ORM、NestJS Framework。這代表 AutoBE 不打算當通用後端生成器。它選擇把整條流水線壓在一個生態系上,換取編譯器驗證能做到的深度。

綁定的好處很實際。Prisma schema 有明確的語法與關聯規則,OpenAPI 有結構化的型別描述,NestJS 的 controller 與 provider 分層固定。這些都讓「生成後驗證」變成可執行的事情,而不是靠模型自我檢查。

代價是如果你用 Fastify、Hono、Drizzle 或 Spring Boot,AutoBE 對你沒有用。它不是那種產出框架無關程式碼再讓你手動接線的工具,它的產出直接長成 NestJS 專案的目錄結構。README 的 ERP 範例就把生成結果拆成 src/controllers、src/api/structures、src/providers、test/features/api、prisma/schema 這幾個位置,這個佈局本身就是 NestJS 慣例。

換句話說,選 AutoBE 等於先接受這個棧。如果你的團隊已經在別的地方,遷移成本可能高於自己寫。

編譯通過不等於需求正確

AutoBE 最強的主張是 100% buildable,但這句話的邊界需要講清楚。編譯器能驗證的是型別、schema 合法性、關聯是否指向存在的欄位。它驗證不了的是:這個資料模型是否真的符合商業邏輯、權限邊界是否正確、金額欄位該用整數還是浮點、刪除使用者時訂單要級聯還是保留。

換句話說,編譯器當護欄,防的是低階錯誤,不防語意錯誤。一個編譯全過的 ERP 後端,仍可能把庫存扣減寫在錯誤的交易邊界上。README 把測試列為流程中的一環(Test 代理產出 e2e 測試函式),這確實能覆蓋一部分行為,但測試是由同一個模型根據同一份規格生成的,它驗證的是「實作有沒有符合規格」,不是「規格對不對」。

還有一個現實限制:這是一整套本機執行的流程,涉及 clone 整個 monorepo 與 pnpm install。README 沒有提供套件形式的 CLI 入口,雖然徽章裡有 @autobe/agent 這個 npm 套件,但 Getting Started 並沒有教你怎麼把它嵌進既有專案。要把它接進 CI 或團隊工作流,得自己從 packages 目錄摸索,這部分材料沒有涵蓋。

跟直接叫 Claude Code 寫 NestJS 差在哪

最直覺的替代方案就是開一個 AI 程式助理,把需求貼進去,讓它自己寫 NestJS 後端。兩者的差別不在模型能力,而在流程約束。

一般助理是單一代理、多輪對話,它會邊寫邊改,中途可能重構前面的檔案,也可能在型別對不上時選擇繞過去。AutoBE 把流程切成五個有明確產物的階段,每個階段都有對應的驗證器把關,階段之間透過結構化資料傳遞。這讓錯誤被限制在單一階段內,也讓每一層的產出可以單獨檢視:需求報告、ERD、Prisma schema、OpenAPI 文件、測試、實作,各自是獨立的檔案。

README 自己承認這個分工,它說生成結果可以「maintain and extend it with AI code assistants like Claude Code」。也就是說,AutoBE 負責從零到可編譯的骨架,後續維護交給一般助理。這個定位很清楚:它不是要取代你的編輯器助理,而是取代「從空白目錄開始」那一段。

如果你的需求很單純,比如一個 CRUD 服務,直接用助理可能更快,因為你不需要走完五個階段。AutoBE 的價值隨系統複雜度上升,尤其是資料模型與 API 契約需要對齊的時候。

AGPL-3.0 與版本節奏

授權是 AGPL-3.0,這是整個評估裡最容易被忽略卻影響最大的一點。AGPL 的網路服務條款意味著,如果你把修改後的 AutoBE 以網路服務形式提供給使用者,你需要提供對應的原始碼。把它當成本機開發工具、產出的專案另外授權,與把它部署成對外的生成服務,是兩種不同的情境。這裡不提供法律意見,但這條界線在採用前必須先跟法務確認,因為它直接決定你能不能把 AutoBE 包進商業產品。

版本節奏方面,最近幾次發布是 v0.31.1(2026-04-10)、v0.31.0(2026-04-09)、v0.30.5(2026-03-31)。三個版本集中在兩週內,patch 與 minor 交錯,顯示專案還在快速迭代期。官網的 Roadmap 把 Alpha、Beta、Gamma 標為 done,Delta 標為 active,也印證它尚未進入穩定階段。

對採用者的實際意義是:升級成本要算進去。0.x 版號的專案在 minor 之間可能有破壞性變更,而 AutoBE 的產出深度依賴內部編譯器與 prompt 結構,這些正是變動最頻繁的部分。如果你打算長期使用,得先決定是鎖定某個版本,還是跟著升。材料裡沒有提供升級指南或遷移文件。

編輯結論

AutoBE 適合已經在用 NestJS 與 Prisma、想快速把需求草稿變成可編譯後端骨架的團隊,也適合想觀察多代理協作流程的開發者。若你的後端不是這個技術棧,或需要把生成結果閉源商用,AGPL-3.0 與固定棧會直接擋住你。採用前先跑一次 pnpm run playground,在 http://localhost:5173/replay/index.html 對照官方範例的編譯結果,確認它對你慣用的 LLM provider 表現符合預期,再決定要不要把流程接進正式開發。

官方來源

  1. License: AGPL-3.0
  2. Project website
  3. README
  4. Releases
  5. wrtnlabs/autobe on GitHub
社群筆記

社群筆記