Angular 悄悄做了三件事,讓它在 AI 應用開發上超前了 文/恆逸資深講師 羅慧真
Angular 悄悄做了三件事,讓它在 AI 應用開發上超前了
不是因為 AI 熱,而是 Angular 真的準備好了:從 MCP、Skill、Signals 到 Agentic App
如果你是 Angular 開發者,現在是開始認真看 AI 整合的最好時機。不是因為「AI 很夯」,而是因為 Angular 官方在過去一年做了三件很具體的事:
- 把 MCP Server 內建進 ng CLI,讓 AI coding agent 讀懂你的專案
- Signals + Zoneless 非常適合 AI 應用常見的高頻、局部、串流更新場景,能讓狀態與畫面更新且貼近資料依賴本身
- Angular 與 Genkit 已有明確的官方整合路徑;若專案採用 Angular SSR / server routing,可沿著既有 Node 伺服器結構承接 Genkit flows。
這三件事加在一起,Angular 目前在「AI 協作開發、signal-based 狀態管理、以及伺服器端 AI workflow」之間,已經形成一條相對完整,且有官方文件支撐的實作路徑。
當AI 協作傻傻分不清新、舊版時
當你使用 GitHub Copilot 或是任何其他 AI 工具幫你寫 Angular 程式碼的時候,明明已經在提示詞明確指定了Angular的新版及Standalone 專案模式,結果產生的卻是舊版的語法NgModule 的寫法,或是新舊用法混和的情節,例如:
AI 產生的舊版寫法 (NGModules 時代的殘留):
<!-- AI 給你的可能會是這樣 -->
<div *ngIf="isLoading; else loadedContent">
載入中...
</div>
<ng-template #loadedContent>
<div>主要內容</div>
</ng-template>期待中新版的寫法 (Angular 17+):
<!-- 你希望的 Control Flow 寫法 -->
@if (isLoading()) {
<div>載入中...</div>
} @else {
<div>主要內容</div>
}這是因為 AI 的訓練數據中,Angular 前七年的舊版語法(如 *ngIf、NgModule,從 Angular 2.0 的時代到Angular 17)佔據了壓倒性的比例。即便你指定新版,AI 在預測程式碼時仍會被龐大的舊資料「重力」拉走,產生統計上的慣性輸出。這就像習慣成自然,它對寫了數億次的舊模式比剛出爐兩年的新語法更「順手」。
Angular 的解法是 … ng mcp
Angular v20.2 在 CLI 裡內建了 MCP(Model Context Protocol)Server。設定完成後,你的 Copilot Agent 可以即時查詢官方文件、取得最新 API 範例、分析你的程式碼並執行遷移——不再靠舊知識猜測。
ng mcp
# 設定完成並啟動 MCP Server,Copilot 就能存取以下工具設定完成後,你的 coding agent(VS Code、Cursor、JetBrains 皆支援)可以呼叫:
| 工具 | 能做什麼 |
|---|---|
| search_documentation | 即時查詢最新官方文件 |
| find_examples | 取得 Signal Forms、Aria 等新 API 的現成範例 |
| get_best_practices | 取得 Angular 最佳實踐 |
| onpush_zoneless_migration | 分析你的程式碼,產生 Zoneless 遷移計畫 |
| modernize | 自動執行程式碼遷移(實驗性) |
| ai_tutor | 啟動互動式 AI 教學助手 |
這代表什麼
你的AI agent 從「用舊知識猜測你的專案」,變成「即時查詢官方文件、從一開始就能使用最新的 Angular API」。
Angular透過MCP 這個橋梁直接查詢最新用法繞開AI訓練的知識截止日期與訓練權重的問題。
Angular 團隊甚至開發了 Web Codegen Scorer,專門評估 AI 生成 Angular 程式碼的品質,並用評估結果持續調整官方 prompt——目標是讓 LLM 產出更符合現代化且正確的 Angular 程式碼。
Signals + Zoneless 為什麼 AI 應用特別適合這條路
AI 應用的 UI,常常不是一次拿到完整結果,而是隨著 LLM 串流回傳逐步更新。使用者送出 prompt 後,token 會一段一段進來,畫面除了要即時顯示內容,還要同時處理 loading、error,以及多輪對話的歷史狀態。
這種場景的難點,不只是「資料非同步」,而是「更新頻率高,而且往往只影響畫面中的一小部分」。
Angular 的 Signals 很適合承接這類狀態。
它把更新粒度縮小到真正依賴資料的地方,讓狀態改變時,不必用傳統思維去推整體畫面如何重新檢查。Angular 官方在 AI Design Patterns 中,確實示範了以 resource()、linkedSignal() 等 signal-based API 處理 AI 回應、聊天歷史與 loading state;其中 resource() 目前仍屬 experimental。
例如,resource() 很適合承接 prompt 送出後的非同步請求,讓請求參數、loading 狀態、錯誤狀態與結果值都能自然地留在 signal-based flow 裡。而 linkedSignal() 可以取用前一個值,因此很適合做增量累積,例如把新回來的 story parts 或 chat parts 追加到既有歷史中,而不是整份覆蓋。Angular 官方範例就示範了這種用法。
另一個實務重點,是把「輸入中的文字」與「真正送出的 prompt」分開。使用者打字時只更新 input signal;按下送出時,再把 submitted signal 交給 resource() 觸發請求。這能讓資料流更乾淨,也避免每次按鍵都誤觸 API。
而在 Angular v21,zoneless 已成為新專案的預設方向。Angular 官方表示,zone.js 不再預設包含於新應用中;同時也提到 Google 內部已有大量 zoneless 應用在生產環境運行。這代表 Angular 正式把 Signals + Zoneless 視為現代應用的主流路徑。
要注意的是,這不表示傳統 zone-based change detection 完全不能做 AI UI。
Angular 仍可透過 OnPush 與 coalescing 降低不必要的 change detection。只是當應用場景進入「非同步、高頻、串流更新」時,Signals 搭配 Zoneless,會更貼近這類介面的本質,也更容易把更新限制在真正受影響的區域。
以 Genkit 作為 Angular 的 AI 大腦,靈活驅動 Agentic App
Agentic App 是什麼?
Agentic App 指的是一種不只會對話,而是能根據使用者意圖,自主規劃並執行任務的 AI 應用。(簡單來說,就是 App 具有 Agent AI 的能力)
Agentic App 的核心的核心在於「行動力」:
使用者表達意圖
→ AI 自主決定呼叫哪些工具(API、函數、資料庫)
→執行多步驟任務
→結果反映到 UI。
因此,Agentic App 的重點不只是「生成答案」,而是讓 AI 參與應用流程與行動執行。
核心引擎 -- Genkit
Genkit 是 Google 開源的 AI Toolkit,它是實現 Agentic 架構的關鍵編排層(Orchestration),主要解決三大問題:
- 統一模型介面:無論使用 Gemini、OpenAI 還是 Anthropic,API 呼叫方式完全一致。
- Tool Calling (工具調用):定義你的應用函數(如:查詢資料庫、發送郵件),讓 LLM 主動執行任務,這是 Agentic 的核心機制。
- Flows (工作流):將複雜的 AI 邏輯封裝成可觀測、可除錯的流程,讓 AI 運作過程不再是黑盒子。
部署路徑:SSR 是起點,但不是唯一
Genkit 必須運行在伺服器端環境(Server-side) 以確保 API 金鑰安全與執行效能。根據您的專案架構,常見有兩種整合方式:
選項 1. Angular SSR(快速整合)如果您目前的專案已啟用 SSR(ng new --ssr),您已經擁有了執行 Genkit 所需的 Node.js 環境。不需要額外架設 Express Server 或換框架,您的 Angular SSR 就是 Agentic backend 的起點。
選項 2. 獨立部署到 Firebase / Cloud Functions / Cloud Run如果您的 Angular 專案是純前端架構(CSR),或希望將 AI 邏輯獨立出來,則可以將 Genkit Flows 部署為 Firebase Functions。這讓您能以 Serverless 的方式享受按量計費的優勢,並完美整合 Firebase Auth 與 Firestore。
從理解趨勢,到真正做得出來
當 AI 開始參與「寫程式、規劃流程、執行任務」,前端應用的角色也正在改變。這不再只是把 API 接起來、畫面顯示結果,而是要能承接串流更新的 UI、可組合的狀態管理,以及真正能行動的 Agentic 架構。
Angular 在這條路上,並不是靠口號,而是透過 MCP、Signals、Zoneless,以及與 Genkit 的深度整合,逐步補齊從「AI協作開發」到「Agentic App 架構落地」所需要的每一塊拼圖。特別值得注意的是,就在筆者截稿前,Angular 官網也正式將「Agent Skills」納入 AI 發展藍圖,這再次證實了我們正站在 Angular 開發者重新審視 AI 整合方式的關鍵轉折點。
但理解方向只是第一步,真正的挑戰在於:如何把這些能力,實際轉化成可維護、可擴展、能上線的 AI 應用?
如果你希望進一步系統性地學會:
- 如何用 Angular 原生能力打造 Agentic App
- 如何結合 Genkit 設計多工具、多步驟的 AI Workflow
- 如何在實務中處理串流 UI、狀態設計與部署架構
這也正是《Angular Agentic Native 下一代 AI 代理人應用開發實務》想處理的核心問題:如何把這些趨勢,真正轉成可維護、可擴展、能落地的實作能力。
您可在下列課程中了解更多技巧喔!
學習推薦
【AANAI】Angular Agentic Native 下一代 AI 代理人應用開發實務
【VCTC】學會 Tailwind CSS 輕鬆搞定 Vibe Coding 版面
【AIGAN-AI】AI Agent開發極速轉型:Google Antigravity代理指揮官實戰班

0 意見:
張貼留言