
要点
- MSR 与 GitHub Next、RiSE 合作;面向证明驱动开发的工具包,搭在 Chopin 规划环境;验证器用 Verus(Rust)。
- 压轴:约 5,000 行 Rust Pet Store(Axum/SQLite + Leptos/Wasm);登录需求仅两句话,展开为 login_flow 上八条 ensures。
- 形式化与经验验证分界通过可信计算基卡片明示;变异测试按每条 ensures 种一个 bug,用来抓 "氛围验证"。
- 证明覆盖 login_flow 与辅助函数;bcrypt、sqlx、jwt、时钟仍属可信并测;CI 加入 Verus,并可裁掉已被证明覆盖的测试。
- 研究原型;目前仅 Rust/Verus;证明仍费力气;错误规约会验证错误的东西。
2026 年 11 月 5 日,Microsoft Research 发布 PDD Kit 走读:当编码智能体生成的代码超过人类可读量时,这套研究工具试图让形式化方法进入日常全栈工作。它嵌在 GitHub Next 的共享规划界面 Chopin 里。人用白话敲定意图。工具把可形式化部分写成 Verus 规约,让智能体去证实现,并对留在信任边界内的部分写测试。主张很具体。一旦智能体吐出功能级 diff,评审就必须从逐行阅读挪到证明能强制执行的签字意图上。
[1]实际发布了什么
PDD Kit 被类比为面向证明的 Spec Kit 近亲。工作流分两半。先是规划提问,把细心审阅者会抓的歧义在写代码前摊开。然后,批准后的意图变成 Verus 契约外加经验检查。每条结果都贴标签:形式模型内对一切输入的数学证明,或验证器看不见代码时的测试证据。
压轴是约 5,000 行的 Rust 店面 Pet Store。后端用 Axum 与 SQLite;店面是编译到 WebAssembly 的 Leptos。博客聚焦登录。开发者请求故意写得很粗:只有正确密码才拿到令牌,只有管理员账户才拿到管理员令牌。PDD Kit 的决策卡片逼出 "双向" 读法(有令牌蕴含密码正确,且正确密码在基础设施未失败时总应成功),从而排除那种拒绝所有人却仍 "满足" 单边蕴含的登录实现。
最终的 login_flow 契约带八条 ensures。未解释函数用来建模数据库与 bcrypt,使证明能谈论它们而不必执行它们。查找、验密、签令牌、时钟与错误映射等可信包装各带开发者必须接受的假定契约,外加计划中的 Given/When/Then 测试。变异检查在临时副本里按条款种 bug;若 Verus 仍接受,说明该条款什么也没约束住。
[1]台面上的证据
这是做通的研究样例,不是多仓库田野研究。硬的部分:可读意图图挂到 Verus 片段;明示的可信计算基;经 pdd-ship 接入 CI,证明坏了就构建失败;以及裁掉只重复已证性质的测试、保留看守可信边缘的测试这一习惯。软的部分:无独立复现、无登录证明耗时表、也未声称整个 Pet Store 端到端已证。作者建议从登录、支付、权限等代价最高处起步,一块块扩大覆盖。
他们对 "氛围验证" 写得很直:自己写规约的模型容易发明几乎什么都不排除却仍能通过的弱不变量。审阅智能体与变异检查是配重。他们也写明:错误规约会得到错误的已验证代码,所以证明任务跑之前,人仍要批准白话计划。
[1]钢人与缺口
钢人。 多数生产栈不是 Rust,Verus 明天也验不了 TypeScript 处理器。证明成本仍真实存在;含糊的产品经理未必喜欢八条 ensures。可信的 bcrypt 与 SQL 仍扛着密码与身份承诺。异步是否完成、时序与体验判断仍在证明之外。若团队对意图卡橡皮图章,旧问题只是上移一层。
说得公平。反驳并不是 PDD Kit 消灭了信任。它把稀缺的人类注意力挪到定义正确行为的句子上,再用确定性验证器(Verus + Z3),而不是让写代码的同一个模型自查。对可能悄悄对调两行 await 的智能体胶水代码,这一挪位才是重点。
[1]谁该在意,下一步看什么
在安全敏感 Rust 服务上采用编码智能体的平台团队,应把意图评审当成一等产物。安全审阅者多了一张把已证条款与可信条款分开的收据。智能体工具厂商多了一个靶子:能产出可机器检查契约的规划界面,而不只是 Markdown 规格。Rust 以外的语言社区应观察该方法能否经绑定或新验证器迁移。
未来六个月看:PDD Kit 公开可用性与文档质量;Pet Store 或姊妹应用上是否证过登录以外的模块;野外变异失败率是否仍有用;以及是否出现保持同一 "意图优先" 闭合回路的非 Rust 桥。
[1]收束
PDD Kit 有用的句子不是 "形式化方法很好"。而是:智能体规模已经撑破详尽读代码,契约就必须变成验证器能让构建失败的意图。 六个月后,要么安全关键的智能体工作流开始在测试旁附上证明收据再合并,要么这套工具仍停在 Microsoft Research 演示,忙碌团队挤不出预算。
[1]