AI News HubLIVE
站内改写

一種面向AI且忽視人類友好性的理想語言

Pact是一種專為AI智慧體設計的程式語言,它強調機器可讀的規範和約束,而非人類友好性。該語言基於S表示式,整合了來源追溯、副作用追蹤、完全性保障、延遲預算等特性,並能夠編譯為Rust程式碼。其工具鏈支援從YAML規範生成程式碼、搭建Web專案,並提供了多種程式碼生成後端。儘管Pact在服務契約領域表現出色,但它在演算法規範方面仍存在侷限。

文章情報

工程師進階

要點

  • Pact是一種面向AI智慧體的S表示式語言,注重後設資料與形式化規範。
  • 語言特性包括來源追溯、副作用追蹤、完全性保障和延遲預算。
  • 它能夠編譯為Rust程式碼,並支援Web專案腳手架搭建和YAML規範轉換。
  • 適用於API服務契約,但不適合演算法或資料結構定義。

為什麼重要

這條新聞值得關注,因為Pact是一種面向AI智慧體的S表示式語言,注重後設資料與形式化規範。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

Pact是一種獨特的程式語言,其設計目標並非服務人類開發者,而是為人工智慧智慧體提供一種理想化的表達工具。它摒棄了傳統語言對可讀性和易用性的追求,轉而將機器可解析的後設資料、嚴格的約束和形式化規範置於首位。

Pact語言基於S表示式,每個函式都攜帶豐富的機器可讀後設資料,包括來源證明(provenance)、副作用宣告、完全性標誌、延遲預算以及呼叫圖。例如,一個獲取使用者資訊的函式會明確其依賴的規範引用、測試用例、執行的操作(如資料庫讀取和HTTP響應)、是否覆蓋所有可能情況、預期的響應時間,以及被哪些其他元件呼叫。這種設計使得AI智慧體能夠精確理解程式碼的含義、依賴關係和行為約束。

語言的核心特性包括:來源證明(每個函式和型別都記錄存在的原因)、副作用追蹤(函式宣告其I/O操作)、完全性(標註為:total true的函式必須處理所有分支)、延遲預算(效能約束作為程式碼的一部分)、依賴圖(:called-by實現即時影響分析)、聯合返回型別(列舉所有可能結果並對映HTTP狀態)以及型別不變數(如最小長度、最大長度和格式檢查)。

Pact的編譯器採用六階段流水線:詞法分析、解析(生成具體語法樹)、降級(轉換為型別化抽象語法樹)、語義分析(名稱解析、副作用檢查、模式窮舉性檢查)和程式碼生成。編譯器自帶兩種後端:v1後端(預設)生成獨立的Rust程式碼,主要用於檢查和文件;v2後端(--runtime)生成依賴pact-runtime庫的程式碼,可直接編譯執行,並自動實現序列化、驗證、儲存互動等功能。

工具鏈提供了豐富的命令:generate將人類可讀的YAML規範轉換為Pact格式(.pct)檔案;compile將.pct檔案編譯為Rust原始碼;scaffold基於.pct檔案生成完整的Axum Web專案(包括路由、處理器、HTML模板和Cargo.toml)。路由推斷完全基於抽象語法樹,無需額外配置。

儘管Pact在服務契約規範領域表現出色——例如CRUD端點、API契約、輸入驗證和錯誤列舉——它並不適用於演算法規範,如資料結構、排序演算法或狀態機。這主要是因為語言目前缺乏泛型、遞迴型別、trait約束和演算法模板等特性。

Pact的設計理念反映了對AI程式設計的深刻思考:在AI agent協作的環境中,程式碼的可解釋性和形式化保證比人類可讀性更為關鍵。透過將規範、約束和來源資訊直接嵌入程式碼,Pact為智慧體之間的通訊和驗證提供了堅實的基石。