昨天在 reddit 的 LLM 板更新自己的 AI 知識,我有些脫節了,去看看大家現在在玩什麼。才沒看幾篇就撈到寶 – 自行架設的 AI 寫程式代理 (self-hosted AI coding agent). 就是在本機的電腦上運行阿里巴巴開放的 LLM – 千問 (qwen) coder,再使用 qwen-code 的 AI coding agent 就能叫 AI 快速生成、修改 (vibe coding) 本機的程式碼!不用付費使用諸如 Anthropic Claude Code, OpenAI Codex CLI, Google Gemini CLI 等 coding agent 服務。
我照著網友的教學,很快就在本機架好 LM Studio + Qwen 3 Coder LLM + qwen-code 的 AI coding agent,真是拜 AI 發展與開放之迅速!但…,架好這麼一個核彈級 coding 系統,我一時也不知道要寫什麼 app. 只好再上網查一下,看有什麼啟發。沒想到,讓我看到另一項很炫的技術 – spec driven development (SDD),我認為這項技術對使用 AI 輔助的快速寫程式 (vibe coding) 文化有很重要的影響。
因為 vibe coding 確實容易上手,只要使用自然語言輸入給 AI LLM,人人都會寫程式。但問題是寫出來的程式可能因缺乏規劃,有一堆問題,如規格不符、bugs 很多。而我們都知道要讓 AI 產生高品質的輸出,高品質的輸入 (prompt) 很重要。GitHub 的 SDD 工具 spec-kit 就是利用這個特性來解決問題,它先產生 spec 的樣版,並聰明的使用自然語言呼叫 LLM 去填這些樣版(比如要寫一支 web game),人們只要檢修一下生成的 spec 檔,就可以再叫 LLM 依 spec 去生成程式碼!SDD 不僅僅是依 spec 生成,還可以在實作 (implementation) 階段指定不同方式!比如同一支程式,我今天依 spec 生成 PHP 程式,我改天仍可以依 spec 生成另一個 Java 程式!SDD 實在是很高階的開發,而將 SDD 引入 vibe coding 的人真是神來之筆,SDD 與 vibe coding 真是搭配![]()
SDD + vibe coding 這麼炫的技術,我也想來試一下,證明我觀念、實作都行
我就用 spec-kit 下 spec 給 LLM 寫了一支很簡單的網頁版貪食蛇遊戲,spec & 程式碼在此:
https://github.com/MrMYHuang/sdd-snake-game.git
可用鍵盤方向鍵操控蛇行走方向。遊戲網址:
https://myhpwa.github.io/sdd-snake-game
在開發過程,我遇到一個 qwen-code bug 耽誤了我不少時間。我後來將 bug 修掉,才成功生成程式碼:
https://github.com/QwenLM/qwen-code/pull/860
在作 SDD vibe coding,我的一些心得是:目前或許是本機的 LLM 不夠聰明,並非一次就能生成可用的程式,有時會漏寫程式碼,但提示 (prompt) 它重寫就能修正。所以說,vibe coding 仍需要有些經驗的程式設計師才能改出可用的程式,我認為目前無法完全取代程式設計師,但會用 vibe coding 的程式設計師是能作到小程式的快速的開發。而 vibe coding 能取代多大型的程式開發,這就是一個很大的研究議題,一方面 LLM 的 IQ 也會進化。
我可以用 SDD 去騙吃騙喝了!?![]()