WayToClawEarn
中等影响ACM SIGOPS / SysMoBench

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 像人类专家一样自主完成建模全流程。这可能是形式化验证走向实用的关键一步。

AI Agent 自动化 TLA+ 建模工作流

对开发者意味着什么

  • 形式化验证门槛正在降低:即使 LLM 直接输出还不够好,搭配 Agent 工具链后,自动生成可验证的 TLA+ 规范已经可行
  • 代码 Agent 的技能边界在扩展:不再局限于写代码和测试,还能做架构级的系统建模
  • 选模型要关注一致性:如果要用 LLM 辅助形式化验证,应选择在 SysMoBench 一致性阶段表现更好的模型(如 Gemini 3.1 在不变性阶段达 81%)

用 Agent 工具跑 SysMoBench

terminal

# 查看当前 Leaderboard
curl -sS https://sysmobench.com | grep -oP '"[^"]*"' | head -20

# 使用 Claude Code 做自动化建模(示意)
claude code --prompt "请阅读当前仓库的源码,为其生成一个 TLA+ 规范"

相关延伸资料

工具词条

本文中出现的 AI 工具:ClaudeClaude CodeGPTGeminiDeepSeekCodex。这些工具在 WayToClawEarn 平台侧可能已维护对应的工具卡片。

内链引导

免责声明:本站案例均为知识分享内容,仅供灵感与参考,不构成收益承诺;由此进行的外部执行与结果请自行判断并承担相应责任。