許多開發者在使用 AI 輔助編碼(AI Coding Agents)時,常會發現一個痛點:AI 產出的程式碼雖然能跑,但風格過時。以 Angular 為例,AI 經常會建議使用舊版的 NgModule 模組化管理、*ngIf 指令或傳統的構造函數注入(Constructor Injection),而忽略了現代 Angular 已經推行 Standalone Components(獨立元件)與 Signals(信號響應式狀態管理)等新特性。
這種現象的原因在於大型語言模型(LLM)的訓練資料包含大量舊版文件與社群程式碼,導致模型在預設情況下傾向於輸出最常見的舊模式,而非最新的最佳實踐。
為了修正這個問題,Google 的 Angular 團隊正式發布了 angular/skills 儲存庫。這套工具的核心在於提供 Agent Skills,這是一種由 Anthropic 提出、目前被廣泛採用的開放格式,旨在透過結構化的領域特定指令(Domain-specific instruction files),在 AI 執行特定任務時按需載入專業知識,讓 AI 能夠像資深 Angular 工程師一樣思考。
目前的 Agent Skills 主要分為兩大功能。第一是 angular-developer,它能提供完整的架構指導,涵蓋了最新的響應式機制(如 Signals、linkedSignal 與 resource)、表單處理、依賴注入、路由、伺服器端渲染(SSR)、無障礙設計及測試等。它會強制 AI 遵循 v20 版本的規範,例如使用新的 @if 流程控制來取代舊有的 *ngIf,並移除不再需要的 standalone: true 標記。第二是 angular-new-app,專門用於指導 AI 如何正確地使用 Angular CLI 來初始化新專案。
從工程實務來看,這種方法的優勢在於它建立了自動化驗證循環(Autonomous verification loop)。AI 在修改程式碼後,會被要求執行 ng build 來驗證結果,確保產出的內容不僅符合規範且能通過編譯。此外,其設計採用編排器(Orchestrator)模式,僅載入與當前任務相關的參考文件,有效降低 Token 消耗並提升回應精準度。
對於開發團隊而言,安裝過程非常簡單,可以使用社群的 skills CLI 透過 npx skills add 指令將官方技能集加入。由於 Angular 更新頻繁,該工具還提供了 lock file 機制,開發者可以透過 npx skills check 或 update 來追蹤版本落差,確保 AI 掌握的知識與框架版本同步。
然而,這項方案並非完美。部分開發者在 Hacker News 等社群中指出,這種依賴指令集(Harnesses)的方法過於理想化,認為 LLM 只要被告知規則就能完美執行,而忽略了模型本質上的隨機性與認知缺陷。但對大多數實務操作者來說,這比完全依賴 AI 的隨機猜測要有效得多。
需要注意的是,這套技能集是以 Angular v20 及其後版本為目標。如果你的專案仍處於舊版本,建議先參考官方更新指南,將專案遷移至獨立元件(Standalone Components)、使用 inject() 函數以及內建控制流(Built-in control flow),否則 AI 產出的現代化程式碼可能會與你的舊專案產生衝突。
來源:infoq.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。