
Jac 是一個主打「為 AI 代理而設」的程式語言,官方網站將它定位為「讓代理建構一切的終極語言」,核心主張是用一套語法、一個型別檢查器、一個二進位檔,取代代理平日要處理的多套語言與框架。[1]
一個語言,多個目標
官方指出,現時代理要在 Python(PyPI、伺服器、數據、ML)、TypeScript(npm、瀏覽器邏輯)、C/C++/Rust(C ABI、系統、效能)、React(Web UI)與 React Native(iOS/Android UI)之間切換,而 Jac 把這些整合為一個語言。[1]
官方舉例,同一個 import 語句可以分別解析到 PyPI、npm 與 C 函式庫,並按程式碼執行位置決定目標:[1]
“ import from sklearn.linear_model { LinearRegression } // PyPI → Python bytecode,伺服器端 import from "date-fns" { format } // npm → JavaScript,瀏覽器 import from "libm.so" { def sqrt(x: f64) -> f64; } // C ABI → 原生機器碼 “
官方稱,代理在上下文只需記住一套語法,而非五套,可把 token 花在問題本身;伺服器、瀏覽器與原生程式碼之間的不匹配會成為編譯錯誤,而非執行期錯誤;而 jac guide 與 jac mcp 讓代理可以離線取得完整手冊。[1]
編譯器代寫「膠水碼」
官方以一個待辦事項應用示範:代理只寫 23 行 Jac,編譯器則代為處理 [1]:
- node 是持久化型別:任何可從 root 到達的資料都會持久化,毋須 schema 或遷移
def:pub是 API 端點- 連接 node 就是寫入
- 元件編譯為 React
- 遠端呼叫就是函數呼叫
- 部署是一條指令
官方指,這樣代理寫的是應用本身而非其腳手架,用更少 token 與回合完成;生成出來的膠水碼不會漂移,改名會令建構失敗而非在生產環境出錯;jac run --dev 支援熱重載,代理可在數秒內看到每次改動的效果。[1]
案例與架構
官方網站展示一個案例:一間初創的生產級 Next.js 加 Supabase 平台被以純 Jac 重寫,達到像素級一致;原本 604,840 行的 TypeScript 程式碼庫換成 Jac 加一個 jac.toml,即 30,282 行,官方形容為「同樣產品少 95% 程式碼」、「消失的 574,558 行」。[1]
架構方面,官方介紹三層結構(headers/checked callers、impl 實作,以及 archwire.jac 的依賴接線),並指 jac arch graph 可畫出接線圖,而該圖因為產生 import 而保持最新。[1]
安裝與來源
官方提供一行安裝指令,並示範把 Jac 加入代理的 MCP:[1]
“ curl -fsSL https://jaclang.org/install.sh | bash claude mcp add jac -- jac mcp “
據媒體報道,Jac 由密歇根大學教授主導開發,設計目標是針對 AI 代理撰寫邏輯的流程;上述背景屬媒體報道,本文不作來源引註。[1][2]