←新聞 8 / 10→

開發工具

Microsoft Research 推出 PDD Kit...

Formally verifying agent-written full-stack web apps with PDD Kit

Microsoft Research 推出 PDD Kit...

www.microsoft.com2026-11-05

摘要

Microsoft Research 推出 PDD Kit,旨在解決 AI 程式碼生成中計畫與實作脫節的問題。該工具能將開發者的意圖轉為 Verus 形式規格,並對 Agent 生成的程式碼進行形式化驗證,確保其符合規範,若無法證明則回退至測試,以此提升 AI 寫出的全端網頁應用程式的可靠性。

Microsoft Research 推出 PDD Kit,這是支援 Proof-Driven Development (PDD) 開發範式的工具包。它的目標是把形式化方法帶給一般工程師和日常應用程式,讓沒有形式化方法背景的人也能用。PDD Kit 會把開發者的意圖轉成 Verus 形式化規格,並證明程式碼符合規格;證明不了的部分,就退回用測試處理。

PDD Kit 在 GitHub Next 的 Chopin 即時多人規劃環境中作為夥伴運行。Microsoft Research 用它對 Pet Store(一個 Rust 商店)的登入邏輯做形式化驗證。驗證由 Verus 執行。Verus 是 Rust 證明語言,由 Microsoft Research 與卡內基梅隆大學、VMware Research、蘇黎世聯邦理工學院、馬普軟體系統研究所、新南威爾斯大學、德州大學奧斯汀分校、密西根大學、英屬哥倫比亞大學、威斯康星大學麥迪遜分校及魏茨曼科學研究所共同開發。

工作流程第一步,是團隊成員用自然語言審查意圖。PDD Kit 會提出仔細的審查者會問的問題,解釋相關程式碼,並把答案記錄在意圖檔案中。這份檔案是 PDD Kit 以 Verus 合約撰寫之形式化規格的自然語言版本。其中能形式化的意圖會轉成形式化規格,其餘必須信任的部分則轉成非正式規格,以測試來檢驗。

PDD Kit 會明確標出可信賴計算基礎 (TCB),並要求使用者逐項簽署確認。工具內含登入流程的流程圖、規格景觀(顯示哪些部分會被證明、哪些部分會被信任),以及意圖地圖,把每項需求連回開發者原本的用字。每個項目還連到建模該項目的形式化規格章節,以及涵蓋該項目的測試。PDD Kit 會替 Verus 合約加註解,讓開發者看到形式化規格如何建模自己的意圖,並建議團隊整體簽署確認計畫。

編碼代理程式負責撰寫證明,Verus 檢查每一步。只要 Verus 接受證明,無論有沒有人讀過,證明都成立。規格是證明所依據的標準,人要審查的是規格,而規格短到幾分鐘內就能學會閱讀。每個函數都有 ensures 區塊,陳述其結果 r 對每個可能的輸入都必須成立的條件。Verus 在建置時檢查這些條件,只要有任何子句對某個輸入可能失敗,建置就會失敗,並指出是哪個子句。每個子句讀起來像 if-then 結構。

以登入流程為例,規格必須在不執行 SQLite、bcrypt 和 JWTs 的情況下描述它們。login_flow 是非同步的,會等待資料庫查詢。Verus 可以把合約套用到非同步函數上:requires 在呼叫建立未來時檢查,ensures 描述等待時取得的值。login_flow 很短,因為它是由較小的、已證明的部分組成。

login_flow 包含 lookup_target(選擇資料表)、login_core(等待查詢並呼叫 decide_login)以及 issue_token(簽署權杖,或把拒絕對應為目前的 HTTP 錯誤)。Verus 只靠這些合約就能證明 login_flow,不必重讀其主體。如果修改 decide_login 的主體,只有 decide_login 會重新證明。規格檔案 verified/src/login.rs 分為四層:標頭、匯入與類型、外部世界的抽象視圖、連接該視圖與實際程式碼的可信賴合約,以及證明必須符合的五個合約。

PDD Kit 的 pdd-ship 工作流程把 Verus 檢查加進持續整合 (CI),緊鄰經驗測試。之後無論是人或代理程式修改登入邏輯,都必須繼續對同一份規格完成證明。證明破裂時,建置會像測試失敗一樣中斷。

PDD Kit 會剪掉只是重複檢查已證明內容的測試,但保留保護可信賴邊界的測試。這讓 CI 既更強,也更精簡。經過驗證,login_flow、login_core、lookup_target、decide_login 和 issue_token 的主體,對每個輸入都符合其合約。

登入邏輯的具體行為如下:選擇正確的資料表,把請求中的密碼與該帳戶名稱對應的儲存雜湊比較,發出包含該帳戶 ID 與資料表所賦予角色的權杖,其他所有情況一律拒絕,回傳 400、401 或 500 錯誤且不提供權杖。兩個資料庫查詢、bcrypt 密碼檢查、時鐘、權杖簽署、資料庫錯誤訊息,以及處理器的請求解包都在證明之外,各自背後有開發者接受的可信賴合約。針對真實 bcrypt、真實 SQLite 架構及真實路由器的測試涵蓋這些部分。目前 PDD Kit 只驗證 Rust,因為 Verus 只支援這個語言。

●開發者:可關注形式化驗證技術如何輔助 AI 程式碼生成與品質保證

●投資人:AI 開發工具與軟體驗證領域值得留意

●一般用戶:AI 生成的應用程式穩定性有望提升

重要性評分

65/100

🟠 值得關注

形式化驗證AI 程式碼生成Microsoft ResearchPDD KitVerus
原文出處
上一則← The Robot Report 發布 2026 年度機器人...下一則NVIDIA 開源工具助力 6G 網路研發,下載量突破百萬 →

喜歡這篇?每天早晨還有更多。

訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。

相關指南

本文摘要由 AI 自動生成,內容源自原始報導。如有疑慮,請參閱關於我們。

喜歡這篇?每天早晨還有更多。

訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。