specula-org/Specula

Specula: An agentic tool for finding deep bugs in system code using TLA+

解决的问题

Specula 解决了在并发和分布式系统中发现深层复杂 bug 的难题。手动编写此类系统的正式规格耗时且需要专业知识,使得形式化验证难以扩展到大型开源项目。

工作原理

Specula 使用 AI 编码代理来自动化形式化验证流程。该过程包括以下步骤:

  1. 分析与规格生成:编码代理读取系统的源代码,推断正确性属性(不变量),并用 TLA+ 编写正式规格。
  2. 模型检测:系统对这些规格进行模型检测,以识别不变量可能被违反的情况。
  3. Bug 复现:当发现违反情况时,代理会分析反例,以在实际代码层面重现该 bug。

它可以在「自动模式」下实现端到端执行,也可以在「交互模式」下,由用户依次触发 code-analysisspec-generationbug-confirmation 等特定技能。

适用人群

专为希望在不手动编写每个正式规格的情况下,发现并发或分布式系统中深层架构或同步 bug 的软件工程师和研究人员设计。

主要亮点

  • 自主生成 TLA+:使用基于 LLM 的代理将实现代码转换为形式化模型。
  • 代码级复现:弥合抽象模型检测违规与具体代码 bug 之间的差距。
  • 代理集成:支持多种编码代理,包括 Claude Code、Codex、Copilot CLI、OpenCode 和 Pi。
  • 可扩展工具链:包含 MCP(Model Context Protocol)工具,用于追踪调试和规格分析。

相关

  • 项目
  • Dispatch
  • 项目
  • 项目
  • 项目