arXiv cs.AI精选83

Skeleton Coding:将程序结构作为智能体的规范

Skeleton Coding: Program Structure as a Specification for Agents

· 2天前

精选理由

提出用代码骨架约束智能体结构,显著减少测试需求、提升生成质量并降低成本与代码侵蚀。

AI 摘要

通常会为编程智能体提供端到端的行为规范,要求其生成的代码满足这些规范,例如测试和输入—输出示例。开发者必须提供多少以及哪些规范,智能体才能生成符合开发者意图的程序?我们认为,这无法预先确定,因为这取决于实现的结构,而结构由智能体自行决定。智能体首先确定一种结构——将程序分解为数据类型、模块和函数——这会限定一类候选程序;随后,行为规范再从这一类程序中选出一个具体程序。对一种结构足够的一组测试,对于另一种结构而言可能会造成严重欠约束,从而需要不同的边界情况,或指数级更多的示例。由于结构由智能体选择,开发者无法确保其规范是完整的,除非从数千行生成的代码中逆向推断出该结构。 为解决这一问题,我们提出了 Skeleton Coding:开发者以高层次、类似代码的格式,与行为规范一同指定程序结构。从理论上看,我们将 AI 辅助编程建模为一个控制问题,并表明,骨架可以使开发者为引导智能体生成可接受程序而必须提供的测试数量呈指数级减少。在实证评估中,针对四个模型和三个基准,表现最佳的骨架规范相比表现最佳的端到端行为规范,使平均测试错误率降低了48.4%。即使智能体能够查询完整的参考实现,加入骨架后,平均测试错误率相对最多仍可降低27.0%。此外,骨架使大小模型之间的平均差距缩小约52.4%,同时将实现成本降低15—26倍,并使代码侵蚀平均减少24.7%。

查看原文(arXiv cs.AI)