超越 Vibe Coding:Agentic Engineering 的崛起
隨著 AI 助手從簡單的自動完成工具演變為自主代理,軟體開發的格局正快速變化。近期,我們在描述這一轉變時出現了張力。Andrej Karpathy 創造了「vibe coding」一詞,用以描述一種魯莽、以提示驅動的程式設計方式,開發者在未檢視差異或理解底層邏輯的情況下接受 AI 輸出。雖然此方式在快速原型開發時令人振奮,但其本質上與專業軟體開發截然不同。
隨著產業成熟,將這兩種活動——隨意的 hack 與嚴謹的工作流程——混為一談已顯露出會造成混淆並可能損害程式碼庫健康的問題。要前進,我們必須區分「vibes」與工程本身。
Vibe Coding 的吸引與危險
Vibe coding 的特徵是「提示、接受、執行」的循環。人類充當「提示 DJ」,根據錯誤訊息而非架構意圖不斷迭代。此方法在特定使用情境下極為有效:
- Greenfield MVPs 與 Hackathon:當速度是唯一指標且程式碼品質不重要時。
- 個人腳本:一次性工具,開發者是唯一使用者,若失敗可直接重新產生程式碼。
- 探索:讓新手能構建可運作的軟體並透過範例學習。
- 創意腦力激盪:在決定正式實作前,產生多種問題解決方案。
然而,vibe coding 的失敗模式是可預測的:它能夠華麗地展示 demo,卻在擴展、修改或安全稽核時失效。當沒有人了解程式碼實際運作方式時,這個過程不再是工程,而正如某位觀察者所說,變成了「抱希望」的行為。
定義 Agentic Engineering
為了描述 AI 的專業應用,出現了「Agentic Engineering」一詞。與 vibe coding 不同,agentic engineering 將 AI 視為快速但不可靠的初級開發者,需要持續且嚴格的監督。
在此範式中,人類仍是架構師與決策者,而 AI 代理負責實作。此區別對專業合法性至關重要;「vibe engineering」聽起來對 CTO 可能過於隨意,而「agentic engineering」則傳達出一種嚴謹的學科,涉及受工程嚴格規範治理的自主代理。
Agentic 工作流程實務
Agentic engineering 並未取代傳統工程實踐;它是對其的放大。此工作流程需要的紀律層級是 vibe coding 明確忽視的:
1. 規劃與規格說明
在撰寫任何提示之前,工程師會先建立設計文件或規格說明。透過將工作拆解為明確的任務並事先決定架構,工程師可防止專案偏離方向。
2. 受導向的實作與嚴格審查
任務被定義範圍並指派給 AI 代理。產出的程式碼會以同等嚴謹度審查,就如同審查人類同儕的 pull request。若人類審查者無法說明某模組的功能,則不會合併。
3. 不斷測試
測試是將不可靠的代理轉變為可靠系統的主要機制。若缺乏完整的測試套件,AI 可能宣稱任務「完成」,但程式碼仍然損壞。
正如社群討論中所指出,隨著平行代理的數量增加,人工審查變得實際上不可能。信任機制必須從人工審查轉向「品質門」——精確的規格與確定性的測試套件,讓 CI(持續整合)成為真相的來源。
4. 所有權與維護
人類工程師負責維護文件、管理版本控制並監控生產環境。AI 加速繁重的工作,但系統的正確性與長期可維護性仍由人類負責。
資深差距與技能退化
此轉變帶來一個令人不安的現實:agentic engineering 對資深工程師的益處不成比例。具備系統設計、安全性與效能等深厚基礎的人,能將 AI 作為巨大的力量倍增器,因為他們了解「好」的樣子。
相反地,尚未掌握這些基礎就依賴 AI 的初級開發者面臨「技能退化」的風險。工程領導者日益關注一代開發者,他們能有效提示卻無法除錯或推理其產生的程式碼。
結論:提升工藝標準
AI 程式碼的崛起並未取代軟體工程的工藝;它提升了標準。能夠茁壯的開發者不是提示最快的人,而是對自己建構的內容與原因思考最清晰的人。
透過將魯莽的 vibe coding 與嚴謹的 agentic engineering 分離,產業得以利用 AI 代理的力量,同時不犧牲我們所建構軟體的穩定性與安全性。