Skip to content
系列
129 篇文章

AI 時代的技術選擇

以採用度為主判準,輔以 AI 時代新增的五條判準(文件機器可讀性、型別、原始碼在不在 repo、資料骨架、機器可呼叫性),整理從前端到後端、從雲端到自架的技術選型。

系列導讀

「AI 時代的技術選擇」導讀:先選多人用的,其餘五條判準是拿來分勝負的

選型的主判準沒有變,仍然是採用度——而 AI 讓它更重要,不是更不重要:用的人多,訓練語料就多,agent 寫出來的正確率就高。這個系列整理的另外五條判準(文件的機器可讀性、型別、原始碼在不在你 repo 裡、資料骨架、機器可呼叫性)是用來在採用度相近時分勝負,或估算你選冷門要付多少代價。

AI 時代的 React 套件選型:從 TanStack 三件組到整層 Stack 的地圖

以 TanStack Router(19.7M 週下載)+ Query(55.8M)+ Zustand(44.5M)為核心,配 Vite、react-hook-form + Zod(224M)、Tailwind + shadcn、Vitest + Playwright,整理純 SPA 的當代預設 stack。AI 時代選套件多了三個判準:文件有沒有 llms.txt(TanStack 全家有、React Router 沒有)、型別安全能不能當 agent 護欄、原始碼是不是在你 repo 裡讓 agent 讀得到。

TanStack Router:把路由變成編譯期可驗證的東西

TanStack Router(2023-12 發 1.0,週下載約 20M)把路徑、params、search params 全部做成編譯期推導:導航到不存在的路由是型別錯誤,不是執行期 404。這篇拆解它的三個核心設計——型別安全、search params 一等公民、與 Query 整合的 loader——以及為什麼這在 AI agent 寫碼的時代價值被放大。

AI SDK 的 message parts:對話介面的資料骨架

AI SDK v5 把一則 AI 訊息拆成 parts 陣列——text、reasoning、source-url、tool-* 各自是獨立片段。這個資料結構決定了現代 AI 對話介面怎麼寫:render 時 switch part.type,每種片段交給對應元件。這篇拆解 parts 模型的設計邏輯、useChat 的串流機制,以及它如何成為 AI Elements 這類元件庫的地基。

Zod:從表單驗證長成 TypeScript 生態的通用合約

Zod 週下載 224M(2026-08 實查),已遠超「表單驗證庫」的定位:API 邊界、環境變數、路由 search params、LLM tool schema 與 structured output,全在用同一套 schema。核心機制是「一次定義、兩層收穫」——執行期驗證與靜態型別從同一個來源推導。Zod 4(2025-07 上 npm)主打更快、更省 tsc。

shadcn registry 與 MCP:元件分發的第三條路

元件分發向來只有兩條路:npm 套件(黑盒依賴)或手動複製貼上。shadcn registry 把第三條路標準化——元件以 JSON 描述原始碼與依賴,CLI 一鍵裝進你的 repo 變成你的程式碼。任何人都能架自己的 registry(AI Elements 就是一個),官方 MCP server 更讓 AI agent 直接瀏覽與安裝元件。

llms.txt:把文件寫給機器讀的那一份

llms.txt 是 Jeremy Howard 於 2024-09-03 提出的慣例(規範已更新至 v2):在網站根目錄放一份給 LLM 讀的 Markdown 索引。六個前端文件站實測:TanStack、shadcn、Zustand、AI SDK、Next.js 都有,React Router 是唯一 404。配套的 llms-full.txt(全文版)Anthropic、Cloudflare 等也已採用。這篇講規範內容、誰在用、以及它為什麼開始影響套件選型。

WebMCP:讓網頁把自己的功能交出去給 agent 呼叫

WebMCP 讓網頁用 document.modelContext.registerTool() 把自己的功能註冊成 agent 可呼叫的工具,取代 agent 猜 DOM 點按鈕。Chrome 已在 149 開 origin trial、預計 157 進 stable,Edge 150 跟進。但 WebKit 明確表態反對(「agent 本質上是輔助科技,網站不該把它單獨挑出來對待」),Mozilla 給 neutral。這篇講兩套 API 怎麼寫、安全模型擋在哪、以及在只有一個半引擎支持的情況下要不要現在投資。

Microsoft Agent Framework:兩個框架合併之後,AutoGen 這個名字現在指誰

微軟把 Semantic Kernel 與自家 AutoGen 合併成 Microsoft Agent Framework,2026-04-02 發 1.0 GA(.NET 與 Python,Go 仍是 public preview)。被收編的 autogen-agentchat 停在 2025-09-30 沒再發版;但原作者那側的社群分支 AG2 沒有合併,六天前還在發 1.0.2,而且 `pip install autogen` 裝到的是 AG2 不是微軟。這篇拆解 MAF 的抽象、遷移時程,以及這團名字到底該怎麼讀。

LlamaIndex:它已經不是 RAG 框架了,而你可能還在照舊教學選它

LlamaIndex(GitHub 51,775 star,MIT,2026-08-21 實查)的重心已經從索引搬到 Workflows:獨立套件 llama-index-workflows 的 PyPI 週下載 281 萬,比傘狀套件 llama-index 的 197 萬還高。這篇拆核心抽象、跟自己刻 pipeline 的取捨,並實測它在繁中語料上的預設值——同樣的 chunk_size=1024,英文裝得下 4,645 字元,繁中只有 1,332。另附一個選型前必看的事實:TypeScript 版已封存停更。

Exa:為 agent 而不是為人設計的神經搜尋 API

Exa 把整個網頁索引轉成 embedding 再檢索,而不是比對關鍵字。2026-08 官方定價:/search $7 / 1k 次(含前 10 筆結果)、/contents $1 / 1k 頁、deep 系列 $12–15 / 1k 次,新帳號 $20 免費額度。這個 blog 的 CLAUDE.md 把 Exa 列在雲端抓取工具的第一順位,38 支 skill 裡有 16 支寫到它,站上既有文章只有 4 篇順帶提過——但一篇專文都沒有。這篇補上。

Modal:跑推論引擎的那一層,以及它什麼時候不值那個溢價

Modal 是按秒計費的 serverless GPU 平台,同時把 agent sandbox 做成一級公民(官方自報累計啟動逾 10 億個 sandbox、佔營收三分之一以上)。選型的關鍵不是它多方便,是你的 GPU 使用率:2026-08-21 實查,Modal A100 80GB 折算 $2.50/hr、RunPod 同卡 $1.59/hr,使用率超過六成四自己開機器就比較便宜;但同一天 H100 SXM Modal $3.95/hr、Lambda $3.99/hr,這張卡的溢價幾乎是零。

Composio:agent 接一百個 SaaS 時,誰替你保管每個使用者的 token

站上把 MCP 寫得很齊,卻從沒寫過它下面那一層:agent 要代表一萬個終端使用者去讀他們各自的 Gmail 時,refresh token 存在誰家、怎麼更新、怎麼撤銷。Composio 是這層目前最完整的一家——SDK 是 MIT,執行與託管 OAuth 是雲端服務;官方自稱 1,000+ toolkit,但託管 OAuth 清單實際列出 121 個,另外 96 個要你自備憑證。2026-08-15 起的新價目:免費 10 萬次 tool call、Pro $29/月。這篇拆它的授權模型到可操作的深度,並劃出「自己接 MCP server」與「用整合平台」的分界。

Tailscale:agent 住在你家,不是你連回家

自架一個 24 小時跑著的 agent,等於在自己網路裡開了一個必須從外面連得到、又不能開在公網上的東西。這篇拆 Tailscale 的四個機制各自解決什麼:tailnet 解決連得到、subnet router 解決碰內網、tag 與 ACL 解決權限邊界、policy 秒級生效與 tailnet lock 解決收得回。附 2026-08 實查的定價:Personal 免費、6 個使用者、user device 無上限、50 個 tagged resource。

Temporal:把流程寫成程式碼,崩了也能接著走完

Temporal 是 durable execution 平台(Server 1.31.2、Python SDK temporalio 1.31.0,MIT,2026-08 實查)。它跟 BullMQ / Celery 那種任務佇列的差別不是規模,是保證的東西不同:佇列保證訊息被消費,Temporal 保證一段橫跨多次外部呼叫的流程走完。代價是工作流程碼必須決定性——而 LLM 呼叫天生非決定性,這篇講這個張力怎麼解、什麼時候不划算。

Trigger.dev:用行程快照做持久任務,不要求你的程式碼有決定性

Trigger.dev 是 Apache 2.0 的持久任務平台(v4.5.12,2026-08 實查),用 CRIU 對整個 Node.js 行程做記憶體快照來暫停與復原。跟 Temporal 的 replay 模型不同,它不重跑你的編排碼、不要求決定性——LLM 呼叫直接寫在 task 裡就行。代價是快照無法保留 TCP 連線,還原後要自己重建;而且快照是 cloud-only,自架拿不到。

CrewAI:用角色扮演組織多 Agent 協作的框架

CrewAI(GitHub 57.4k star,MIT,PyPI 週下載 1,164 萬)用角色(role)、目標(goal)、背景故事(backstory)定義 agent,再把一組 agent 編成 crew 來協作。跟 LangGraph 的圖優先和 MAF 的工作流優先不同,CrewAI 是團隊優先——你不畫節點和邊,你描述一個團隊裡每個人負責什麼。2024 年底完成 LangChain 依賴的全面移除,現在是獨立框架。商業端分開源套件與 AMP 託管平台,AMP 加的是視覺化建構、部署、追蹤與合規。

Supabase:把整個後端建在 PostgreSQL 上的平台

Supabase 不只是 Firebase 的開源替代,它的核心設計是把 Auth、Storage、Realtime 全部建在 PostgreSQL 的 schema 和 WAL 上。結果是:你可以用一條 SQL 查所有東西,pgvector 直接用,agent 寫 SQL 就能操作整個平台。108k GitHub stars、Apache 2.0 授權、Free 方案 500 MB 資料庫。

Agent Plugins 1.0:OpenAI、Google、AWS 罕見聯手,統一 AI Agent 擴充的封裝標準

Agent Plugins 1.0 是一個封裝格式標準,把 Agent Skills(Markdown 指令)和 MCP server 設定包成一個目錄,讓同一個 plugin 能被 ChatGPT、Cursor、GitHub Copilot、Kiro、VS Code 直接載入。它不是新的協議,是協議之上的包裝紙。Vercel 發起,OpenAI、AWS、Microsoft、Cursor 共同制定,Google 發佈當天加入——Anthropic 不在治理名單上,但 MCP 團隊正面回應。

自架推論伺服器怎麼選:從 Ollama 到 Xinference,六套工具的定位與取捨

自架推論伺服器分三層:執行引擎(llama.cpp)、服務引擎(vLLM、SGLang)、模型管理平台(Ollama、Xinference、Triton)。選對層級比選對工具重要——先問你的瓶頸在排程還是在部署流程,再決定複雜度放在哪裡。

Xinference:一個平台管 LLM、Embedding、語音與圖像模型的自架推論伺服器

Xinference 把 vLLM、SGLang、llama.cpp、Transformers、MLX 五種後端包在同一個管理層,用 Web UI 和 OpenAI 相容 API 統一管理 LLM、embedding、rerank、語音和圖像模型,適合需要多類型模型共存的自架部署;但管理層的解析邏輯也讓攻擊面比純 serving engine 大(CVE-2026-61539 是案例)。

OpenAI Plugin Extensions:Plugin 從外掛變成跑在 ChatGPT 裡的 App

DevDay 2026(9/29)發表的 Plugin Extensions 讓 plugin 可以在 ChatGPT 放一個側邊欄入口、一個對話旁的面板、一個檔案檢視器,每個 MCP App 最多三個入口。Plugin 的組成因此變成 Skill + MCP + 外部服務 + UI,產品設計多了一題:哪些能力該做成能被 agent 安裝的 plugin。