LLM-Assisted Repository-Level Generation with Structured Spec-Driven Engineering

本文提出结构化规范驱动工程(SSDE),这是一种利用结构化规范来克服自然语言提示的歧义性和质量局限性的范式,从而在仓库级别实现高质量、可验证的代码生成。

原作者: Shuzhao Feng, Boqi Chen, Brett H Meyer, Gunter Mussbacher

发布于 2026-05-06✓ Author reviewed
📖 1 分钟阅读☕ 轻松阅读

原作者: Shuzhao Feng, Boqi Chen, Brett H Meyer, Gunter Mussbacher

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你正在试图教导一位才华横溢但略显粗心大意的学徒厨师,如何为一整座城市烹制一场规模宏大、结构复杂的宴会。

问题:“模糊的指令”
目前,如果你要求一位顶尖人工智能(即那位学徒)为一个完整的软件系统编写代码,你通常只会给它一段冗长的自然语言描述,例如“制作一个人们可以预订会议的网站”。这就像告诉厨师“做一顿美味的饭菜”一样。

该论文指出,虽然人工智能在切单个洋葱(编写单个函数)方面表现出色,但当被要求烹制整场宴会(整个软件仓库)时,它便会迷失方向。自然语言过于模糊。人工智能可能会猜错、遗漏步骤,或者做出看起来不错但味道不对的菜肴。更糟糕的是,由于指令模糊,很难证明这顿饭失败的原因。

解决方案:“结构化食谱书”
作者提出了一种名为**结构化规范驱动工程(SSDE)**的新工作方式。他们建议不要进行模糊的对话,而是给人工智能一本严格、结构化的“食谱书”。

在本文中,他们使用了两种类型的结构化食谱:

  1. Gherkin 规范:将其视为“如果 - 那么”测试用例。与其说“让它能工作”,不如写成:“如果用户点击‘预订’,那么房间必须标记为‘已占用’。”这是一份精确行为的检查清单。
  2. 领域模型:这些就像建筑蓝图或食材地图。它们展示了系统不同部分(如“用户”、“房间”和“日期”)如何相互连接。

实验:品尝测试
研究人员开展了一项试点研究。他们扮演主厨的角色,要求五个不同的人工智能模型(即学徒)为三个不同的软件系统构建“业务逻辑”(即烹饪规则)。

他们测试了不同的组合:

  • 对照组:仅使用模糊的自然语言描述。
  • 实验组:模糊描述加上结构化的“食谱书”(蓝图和“如果 - 那么”检查清单)。

结果:结构取胜
研究结果非常明确:

  • 更高的准确性:当人工智能拥有结构化的“食谱书”(蓝图和检查清单)时,其错误率远低于仅拥有模糊描述的情况。
  • “蓝图”的增益:向人工智能提供具体的代码签名(精确的食材和工具列表)以及蓝图,对其帮助最大。这就像不仅给厨师食谱,还给了它确切的面粉品牌和特定尺寸的平底锅。
  • 仍有提升空间:虽然结构化方法要好得多,但人工智能仍会犯一些错误。然而,研究人员发现,超过 70% 的错误是简单且可检测的失误——例如引用了不存在的变量,或者犯了 Python 语法错误。这些错误甚至不需要测试预言机(即无需运行代码并观察输出是否符合预期):标准的编译器或代码检查工具(linters)就足以发现它们。

未来路线图
该论文建议,要使这项工作完美运行,我们需要:

  1. 增加反馈循环:不要只询问人工智能一次,而应让它编写代码,根据“食谱书”进行检查,并自动修复自己的错误。
  2. 构建更好的数据集:我们需要更多此类结构化食谱书的示例,以便更好地训练人工智能。
  3. 应对变化:真实软件时刻在变。我们需要教导人工智能如何只更新宴会的一部分(例如更换甜点),而不会毁掉整场宴席。

核心结论
该论文总结道,如果我们不再将人工智能视为对模糊愿望起作用的魔法棒,而是将其视为遵循严格、结构化蓝图的熟练工人,我们就能让它可靠地构建整个软件系统。这将把人工智能从“富有创意的猜测者”转变为“精确的建造者”。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →