我們從聊天內嵌介面、儀表板、表單、業務工作台與開放式頁面五類場景,判斷 json-render 是否值得採用。文章同時比較手寫 React、模板渲染和自由程式碼生成,並提供元件目錄、動作權限、Schema 版本與錯誤回退的選型方法。
判斷:json-render 適合元件邊界清楚、互動動作可以列舉、又需要串流生成介面的 AI App;不適合讓模型任意產生版面、複雜副作用或完整前端程式碼的產品。 如果團隊能先定義元件白名單、資料契約、動作權限和錯誤回退,值得先做 PoC;否則繼續手寫 React 會比較穩妥。
這篇適合三類讀者:React 前端工程師,想把模型輸出安全映射為真實元件;AI 應用開發者,正在比較動態 UI、模板渲染和程式碼生成;產品與平台團隊,必須判斷 LLM-to-UI 能否長期維護。
先釐清:json-render 生成的是 UI 規格,不是任意程式碼
json-render 的核心不是「讓模型寫出一個完整 React 網頁」,而是讓模型輸出符合約束的 UI 規格,再由宿主應用透過元件目錄完成渲染。官方文件確認,它圍繞元件註冊、型別化屬性、動作定義,以及 JSON 或 JSONL 規格來建立受控介面;官方總覽文件可核對這個模型。
這個差異直接決定選型結果:
| 路線 | 模型可控制的範圍 | 安全邊界 | 維護重點 | 我們的初步評分 |
|---|---|---|---|---|
| 手寫 React | 由工程師決定所有版面與邏輯 | 最清楚 | 元件與狀態程式碼 | 5/5 |
| 模板渲染 | 在預先設計的頁面槽位內填資料 | 清楚,但彈性較低 | 模板數量與條件分支 | 4/5 |
| json-render | 在註冊元件與 Schema 範圍內組合 UI | 可受控 | 目錄、Schema、動作版本 | 4/5 |
| 自由程式碼生成 | 理論上可生成任意前端程式碼 | 最大,需額外沙盒 | 審查、執行隔離與回滾 | 2/5 |
這裡的評分是我們以「可控性、變更成本、生成自由度」作出的工程判斷,不是官方效能或穩定性數據。社群熱度也不能證明生產可靠性;真正應驗證的是元件目錄是否能覆蓋產品需求,以及非法輸出能否安全退回。
json-render 適合做哪些 AI 應用? 適合把模型結果轉成卡片、指標、篩選器、表單區塊、狀態面板和有限動作的工作台。若每個元件都有明確屬性,且模型只需決定「放什麼、顯示什麼、觸發哪個已註冊動作」,導入成本通常比讓模型直接寫 React 程式碼低。
第一類場景:聊天內嵌 UI 為什麼最容易落地?
聊天介面是 json-render 的自然切入點。模型可以先輸出文字,再逐步補上摘要卡、統計數值、結果清單或操作按鈕。官方的 JSONL 串流文件說明了以串流規格傳送部分 UI 結果的方式,這對「先出骨架、再補內容」很重要。
但串流不等於每一段輸出都可信。我們會把渲染流程拆成以下五步:
- 接收模型產生的 JSONL 片段,先判斷事件類型和 Schema 版本。
- 對元件名稱、屬性型別和必要欄位做驗證,不合格片段不直接掛入畫面。
- 先渲染不涉及副作用的文字、卡片和列表,讓部分結果可以顯示。
- 將未知元件、缺欄位或格式錯誤轉為通用錯誤卡,不讓整個對話介面崩潰。
- 動作按鈕交由宿主應用執行;模型只能提出「重新整理」或「開啟詳情」等已登記意圖。
這裡的宿主邊界不能模糊。刪除資料、付款、發送訊息、修改權限等動作,不能因為 JSON 中出現一個 action 欄位就直接執行。真正的權限判斷、使用者確認和 API 呼叫,仍應留在 React 應用與後端。
第二類場景:儀表板與資料工作台能否長期維護?
儀表板很適合受控元件組合,但不代表所有圖表都應交給模型排列。固定的指標卡、表格、篩選器和通知面板可以由 json-render 組合;複雜圖表的座標軸、互動縮放、跨圖表聯動,則通常需要手寫 React 元件包住細節。
資料繫結文件可用來確認資料來源和元件屬性的連接方式。實務上,我們會把資料繫結限制在命名資料集,不允許模型任意指定資料庫欄位或組合查詢。這樣做會犧牲一部分自由度,卻能避免 UI 規格意外暴露不應顯示的資料。
json-render 的元件白名單如何限制模型行為? 白名單不是提示詞中的一句「請只使用安全元件」,而是執行時可驗證的註冊表。只有已註冊的元件名稱、允許的屬性型別和已定義的資料來源才可渲染;其他值必須拒絕或回退。註冊表文件和 JSON Schema 規範分別提供元件註冊與結構驗證的依據。
這也帶來一項隱性成本:每新增一個元件,就要同步維護說明、Schema、測試案例和版本相容性。小型產品初期可能覺得目錄太麻煩;平台團隊則會發現,這份目錄其實是長期治理的核心資產。
第三類場景:表單與流程介面要先管好動作
表單看似適合宣告式生成,因為欄位、標籤、提示文字和驗證規則都能結構化描述。但提交表單只是開始,後面還有資料權限、重複提交、交易狀態和錯誤訊息。
我們會將表單拆為「模型可描述」與「宿主必須掌控」兩部分:
- 模型可描述:欄位順序、欄位類型、顯示條件、非敏感的提示文字。
- 宿主必須掌控:提交端點、登入狀態、刪除、付款、審批、資料寫入與重試。
- 後端必須重驗:必填欄位、格式、權限、業務規則和資料版本。
json-render 能不能生成複雜表單和儀表板? 可以生成其中受控的視圖層,但不應把複雜業務流程等同於幾個 JSON 欄位。多步驟審批、條件互斥、即時校驗和外部副作用越多,就越應由手寫 React 與後端流程引擎承擔,json-render 只負責顯示可變區域。
| 失敗情況 | 不應採取的做法 | 建議回退 |
|---|---|---|
| 輸出缺少必要欄位 | 用預設值默默補齊 | 顯示可重試的錯誤狀態 |
| 元件名稱不存在 | 直接執行模型指定的元件 | 渲染安全的通用區塊 |
| Schema 版本不相容 | 忽略版本欄位 | 使用相容解析器或退回模板 |
| 高風險動作未授權 | 只依賴模型輸出 | 要求宿主確認並由後端驗證 |
官方 驗證文件可作為實作驗證層的起點。產品團隊還需要補上日誌:記錄輸入規格、拒絕原因、使用者操作和最後採用的回退版本,否則出了問題很難重現。
什麼時候不應該使用 json-render?
json-render 和直接讓模型生成 React 程式碼有什麼區別? 前者把模型限制在既有元件和資料契約內,部署後的執行面比較可預測;後者擁有更高自由度,卻必須處理任意程式碼的審查、依賴、沙盒、資源限制與安全風險。若需求只是讓模型改變內容和元件排列,json-render 通常較合適;若需求是生成全新互動元件,受控目錄可能反而成為瓶頸。
什麼情況應該繼續手寫 React? 當頁面依賴任意 CSS、複雜拖放、第三方腳本、畫布編輯器、精細動畫,或每個客戶都有完全不同的版面時,整頁交給 json-render 會增加轉譯層和除錯成本。比較務實的混合架構是:固定導覽、權限、複雜編輯器和高風險流程用手寫 React;聊天摘要、推薦卡和可替換的資料區塊才交給 json-render。
按團隊能力做最後選擇
| 團隊與產品狀態 | 建議路線 | 先驗證的事項 | 結果 |
|---|---|---|---|
| 個人開發者,功能仍在探索 | json-render 小型 PoC | 目錄是否足夠、錯誤是否可回退 | 先做 PoC |
| 小型產品團隊,已有固定業務流程 | 混合 json-render 與手寫 React | 動作權限、Schema 版本、測試 | 條件式採用 |
| 平台團隊,多個產品共用 UI 能力 | 建立受治理的元件平台 | 目錄生命週期、日誌、相容策略 | 可以採用 |
| 開放式頁面或程式碼生成產品 | 手寫 React 或隔離的程式碼方案 | 沙盒、安全審查、依賴管理 | 不要整頁採用 |
在開始開發前,我們建議逐項勾選:
- [ ] 元件目錄已列出每個元件可接受的屬性和資料來源。
- [ ] JSON Schema 有版本欄位,舊版本有明確的相容或拒絕策略。
- [ ] 提交、刪除、付款、審批等動作都由宿主和後端重新驗證。
- [ ] JSONL 部分結果、未知元件和缺欄位都有可見的錯誤回退。
- [ ] 測試涵蓋正常輸出、惡意輸出、截斷串流和版本不匹配。
- [ ] 日誌能追蹤模型規格、驗證結果、使用者確認與最後渲染狀態。
如果其中三項以上仍未完成,我們不會把 json-render 直接推進生產,而會先縮小到一個聊天卡片或資料面板 PoC。若產品需要雲端建置 React AI App,還要把建置環境、權限、連線和交付流程一併驗證;可先參考 ZekVPS 的 Mac 雲端使用資訊,再決定是否需要固定的遠端開發環境。
對短期測試而言,本地工作站常見的問題是環境漂移、休眠造成的連線中斷,以及團隊成員各自維護依賴版本;臨時借用一般雲端環境則可能缺少一致的 Apple 開發工具鏈。若測試需要 macOS、持續的遠端連線和可交接的建置環境,租用 ZekVPS 的 Mac 會比臨時拼裝本地環境更省事;但長期穩定重負載、需要實體周邊或必須完全掌握硬體的團隊,直接自購設備仍可能更合適。需要時可再查看 ZekVPS Mac 租用方案。
最後,先不要把「能生成 UI」當成採用理由。只要元件目錄、動作權限、Schema 版本和回退能力這四項都能通過上面的檢查,json-render 才值得進入下一輪驗收;若仍在比較真實上線風險,可接著閱讀 json-render 生產環境驗收方向,把選型判斷延伸到測試與交付階段。
為 AI App 準備可靠的遠端 Mac 環境
使用 ZekVPS 遠端 Mac,集中進行 AI App 的開發、測試與展示,無需自行添置硬體。
按專案需求選擇合適的 Mac 租用方案,靈活應對原型驗證、團隊協作及長期運行。
若你正準備把 MCP 或 Agent 從 Demo 推到日常運轉,先固定一台可快照的雲 Mac 節點往往比換第五個框架更有效。 查看 ZekVPS 雲端 Mac mini 套餐 — 把實驗環境和生產桌面拆開,部署會踏實很多。