---
title: "Jac 語言登場：一個語法同時編譯到 Python、瀏覽器與原生程式"
url: https://sammy.hk/jac-python-browser-code/
author: Ethan
published: 2026-10-26T14:41:00+08:00
modified: 2026-10-26T09:49:04+08:00
description: "Jac 是一個主打「為 AI 代理而設」的程式語言，官方網站將它定位為「讓代理建構一切的終極語言」，核心主張是用一套語法、一個型別檢查器、一個二進位檔，取代代理平日要處理的多套語言與框架。[1] 一個語言，多個目標 官方指出，現時代理要在 Python（PyPI、伺服器、數據、ML）、TypeScript（npm、瀏覽…"
categories: [AI, "開放源碼"]
tags: ["AI 代理", Jac, WebAssembly, "程式語言", "編譯器"]
source: https://sammy.hk
---
![Jac 語言登場：一個語法同時編譯到 Python、瀏覽器與原生程式](https://sammy.hk/wp-content/uploads/2026/10/jac-language-og.jpg)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\]

## 參考資料

\[1\] [Jac 官方網站](https://jac-lang.org/)

\[2\] [Jac 官方文件](https://jaclang.org/docs/latest)

### 相關文章：

1. [GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中](https://sammy.hk/github-%e7%94%a8-ai-%e4%bb%a3%e7%90%86%e6%8a%8a-copilot-%e5%9f%b7%e8%a1%8c%e6%99%82%e9%87%8d%e5%af%ab%e7%82%ba-rust%ef%bc%9a832378-%e8%a1%8c%e8%88%87-96-%e6%8f%90%e7%a4%ba%e5%bf%ab%e5%8f%96%e5%91%bd/ "GitHub 用 AI 代理把 Copilot 執行時重寫為 Rust：832,378 行與 96% 提示快取命中")
2. [維基媒體發現 OpenAI「失控」代理活動：測試編輯、探測 Etherpad 與海量下載](https://sammy.hk/%e7%b6%ad%e5%9f%ba%e5%aa%92%e9%ab%94%e7%99%bc%e7%8f%be-openai%e3%80%8c%e5%a4%b1%e6%8e%a7%e3%80%8d%e4%bb%a3%e7%90%86%e6%b4%bb%e5%8b%95%ef%bc%9a%e6%b8%ac%e8%a9%a6%e7%b7%a8%e8%bc%af%e3%80%81%e6%8e%a2/ "維基媒體發現 OpenAI「失控」代理活動：測試編輯、探測 Etherpad 與海量下載")
3. [Docker 開源 Docker Agent：以 YAML 定義、可推到 OCI 註冊庫的 AI 代理](https://sammy.hk/docker-%e9%96%8b%e6%ba%90-docker-agent%ef%bc%9a%e4%bb%a5-yaml-%e5%ae%9a%e7%be%a9%e3%80%81%e5%8f%af%e6%8e%a8%e5%88%b0-oci-%e8%a8%bb%e5%86%8a%e5%ba%ab%e7%9a%84-ai-%e4%bb%a3%e7%90%86/ "Docker 開源 Docker Agent：以 YAML 定義、可推到 OCI 註冊庫的 AI 代理")
4. [AWS 開源 Strands Box：為 AI 代理加上本機沙盒與語意政策](https://sammy.hk/aws-%e9%96%8b%e6%ba%90-strands-box%ef%bc%9a%e7%82%ba-ai-%e4%bb%a3%e7%90%86%e5%8a%a0%e4%b8%8a%e6%9c%ac%e6%a9%9f%e6%b2%99%e7%9b%92%e8%88%87%e8%aa%9e%e6%84%8f%e6%94%bf%e7%ad%96/ "AWS 開源 Strands Box：為 AI 代理加上本機沙盒與語意政策")
