论文

ProgramBench:语言模型可以从头开始重建程序吗?

ProgramBench: Can Language Models Rebuild Programs From Scratch?

智能体系统Agent任务评测

摘要

从头开始将想法转变为完整的软件项目已成为语言模型的流行用例。代理被部署来在较长时间内播种、维护和扩展代码库,而无需人工监督。此类设置需要模型来做出高级软件架构决策。然而,现有的基准衡量的是集中的、有限的任务,例如修复单个错误或开发单个指定的功能。因此,我们引入 ProgramBench 来衡量软件工程代理整体开发软件的能力。在 ProgramBench 中,仅给定程序及其文档,代理必须构建并实现与参考可执行文件的行为相匹配的代码库。端到端行为测试是通过代理驱动的模糊测试生成的,无需指定实现结构即可进行评估。我们的 200 个任务范围从紧凑的 CLI 工具到广泛使用的软件,如 FFmpeg、SQLite 和 PHP 解释器。我们评估了 9 个 LM,发现没有一个能够完全解决任何任务,最好的模型仅在 3% 的任务上通过了 95% 的测试。模型倾向于整体式、单文件的实现,这与人类编写的代码截然不同。