開發工具
Microsoft Research 推出 PDD Kit...
Formally verifying agent-written full-stack web apps with 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 生成的應用程式穩定性有望提升
重要性評分
🟠 值得關注
喜歡這篇?每天早晨還有更多。
訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。
相關指南

Claude Code Artifacts 是什麼:即時預覽與互動功能解析
深入解析 Claude Code Artifacts 是什麼,掌握其即時預覽與互動功能。本文提供完整的 Claude artifacts 教學,並分析 claude code 新功能對開發者介面的影響。
閱讀指南
Canva AI vs Photoshop AI:2026 年設計工具怎麼選
2026 年 Canva AI vs Photoshop AI 功能比較。深入分析 Canva AI 功能與 Photoshop AI 生成能力,協助您選擇最適合的 AI 設計工具推薦方案。
閱讀指南
Vibe Coding 是什麼?Cursor 實戰教學與最佳實踐
深入解析 Vibe Coding 概念,提供 Cursor 實戰教學與使用技巧。掌握 AI 輔助程式設計,從零開始打造高效開發流程的最佳實踐指南。
閱讀指南本文摘要由 AI 自動生成,內容源自原始報導。如有疑慮,請參閱關於我們。
喜歡這篇?每天早晨還有更多。
訂閱 5min AI,讓 AI 替你追蹤整個 AI 世界。