LLM 写 TLA+ 形式化验证:6 大模型对比,Agent 自动化建模突破
ACM SIGOPS 发布 SysMoBench 基准测试,评估 Claude、GPT、Gemini 等模型对真实系统建模 TLA+ 的能力。研究发现 LLM 擅长语法但难以匹配实际实现,而 Agent 工具(Claude Code、Codex)已在自动化建模上取得突破。
2026年5月10日 · 阅读约 5 分钟
核心结论
ACM SIGOPS 发布 SysMoBench 基准测试,系统评估了主流大模型(Claude、GPT、Gemini、DeepSeek 等)对真实系统编写 TLA+ 形式化规范的能力。核心发现:LLM 写 TLA+ 语法几乎满分,但建模真实系统行为仍然困难——而新一代 Agent 工具(Claude Code、Codex)已经能在自动化建模上取得突破,Specula Agent 实现了完整的一致性和不变性得分。
关键要点
- 事件发生时间:2026-05-10(文章发布)
- 评测对象:11 个真实系统(并发同步协议、分布式协议)
- 核心发现:语法通过率接近 100%,但行为一致性仅 30%-60%
- 突破进展:Specula Agent(基于 Claude Code/Codex)首次实现满分的完整建模
背景:为什么需要 LLM 写 TLA+
TLA+ 是一种用于对并发和分布式系统进行形式化建模的语言,在 Amazon、Microsoft 等公司已被证明能提前发现复杂系统中的隐藏 Bug。但 TLA+ 的学习曲线陡峭,限制了它的普及。
如果 LLM 能自动从源代码生成 TLA+ 规范,那将革命性地降低形式化验证的门槛——工程师只需描述想验证的属性,AI 就能自动完成建模工作。
但一个关键问题始终存在:LLM 写的 TLA+ 规范是在真实描述系统行为,还是仅仅在背诵训练数据里看到的教科书模板?
SysMoBench:从语法到语义的四阶段测试
SysMoBench 将 LLM 生成 TLA+ 规范的能力评估拆分为四个递进阶段:
| 阶段 | 评估内容 | LLM 表现 |
|---|---|---|
| Phase 1 - 语法 | TLA+ 语法是否正确 | 几乎所有模型接近 100% |
| Phase 2 - 运行时 | 能否在 TLC 模型检查器中执行 | 30%-92%(模型间差异大) |
| Phase 3 - 一致性 | 规范是否匹配实际代码行为 | ❌ 大多数模型表现差 |
| Phase 4 - 不变量 | 是否包含正确的不变量 | 16%-81%(差距极大) |
两个系统性的失败模式
研究发现,即使语法和运行时通过,LLM 生成的 TLA+ 规范也普遍存在两种"教科书建模"问题:
模式一:状态爆炸 — 规范允许了实际系统永远不会进入的状态。例如 Claude Sonnet 为 ZooKeeper 选举写的规范中,接收投票时用了集合并集(recvVotes ∪ {newVote}),导致新旧投票同时存在。而实际 ZooKeeper 的实现是用发送者 ID 作为 key,新投票覆盖旧投票。
模式二:状态缺失 — 规范将多步操作合并成单步原子操作,导致某些实际可达的状态在规范中无法到达。同样是 ZooKeeper 的例子,LLM 在一个步骤中检查了全局状态(epoch 比较),而实际代码是在多个步骤中逐步完成的。
这两个问题的共同根源:LLM 知道"教科书上的 Raft 长什么样子",但不知道"Etcd 的 Raft 实现把哪一步操作拆分成了哪些子步骤"。
关键突破:Agent 自动化建模实现满分
与裸 LLM 不同,前沿的代码 Agent(如 Claude Code、Codex)在 TLA+ 建模上展现了更强的能力。研究者开发的 Specula Agent 可以:
- 自动阅读目标代码仓库
- 判断建模的关键部分
- 驱动完整的规范编写工作流
- 在 SysMoBench 上获得一致性 + 不变性的满分
这意味着,不再需要工程师手动引导 LLM 写规范,而是让 Agent 像人类专家一样自主完成建模全流程。这可能是形式化验证走向实用的关键一步。
对开发者意味着什么
- 形式化验证门槛正在降低:即使 LLM 直接输出还不够好,搭配 Agent 工具链后,自动生成可验证的 TLA+ 规范已经可行
- 代码 Agent 的技能边界在扩展:不再局限于写代码和测试,还能做架构级的系统建模
- 选模型要关注一致性:如果要用 LLM 辅助形式化验证,应选择在 SysMoBench 一致性阶段表现更好的模型(如 Gemini 3.1 在不变性阶段达 81%)
用 Agent 工具跑 SysMoBench
# 查看当前 Leaderboard
curl -sS https://sysmobench.com | grep -oP '"[^"]*"' | head -20
# 使用 Claude Code 做自动化建模(示意)
claude code --prompt "请阅读当前仓库的源码,为其生成一个 TLA+ 规范"相关延伸资料
工具词条
本文中出现的 AI 工具:Claude、Claude Code、GPT、Gemini、DeepSeek、Codex。这些工具在 WayToClawEarn 平台侧可能已维护对应的工具卡片。
内链引导
- 想快速上手 Agent 工具?看:AI Agent 工具实操教程:从安装到自动化工作流
- 真实案例:Claude Code 一人公司创业:Claude Code 48小时创业:一人+29美元月费,3个月做到月入$9,000
- 想学 Cluade Code 内容自动化?看:如何用 Claude Code 实现自动化内容生产