SuperAPI AI 工具集

featurebench-benchmarking-agentic-coding

编程与开发

查看项目

更新于 10-16 01:34

技能介绍

用途:从真实代码仓库中抽取功能级编码任务,用于评估编码智能体实现多文件功能的能力。核心思路是单元测试已隐含功能边界:在动态追踪下执行测试,记录每个测试触发的函数调用,构建有向依赖图(节点为函数及源码位置,边为调用关系)。仅被目标功能测试触及、未被其他通过测试触及的函数即为可抽取的功能代码。移除后应满足“目标测试失败、其余测试通过”(F2P/P2P)不变式。

主要能力:用 LLM 分类器区分测试目标与测试工具,从目标入口做广度优先遍历,标记“保留”与“抽取”节点,抽取规模限定 3000–5000 行;生成 patch.diff 移除功能代码;用 Docker 打包可复现评测环境;提供 L1(增量扩展)与 L2(从零实现)两种难度;评测基于执行结果,统计解决率、通过率与 token 消耗。

使用方式:选择带 pytest 测试的 Python 仓库,编写安装配置并构建 Docker 镜像;用 pytest --collect-only 收集测试并执行,记录通过/失败;在 sys.settrace 下重跑通过测试构建依赖图;对 F2P 测试文件导入符号做 LLM 分类;从目标入口 BFS 抽取并生成补丁;应用补丁后验证 P2P 全通过、F2P 全失败;打包任务环境并运行智能体评测。

适用场景:从开源仓库构建编码基准、评估智能体端到端实现多文件功能、生成带可验证正确性的训练数据、构建沙箱化可复现评测环境。

限制:方法以 Python 为中心,依赖 sys.settrace 与 pytest;元编程、动态派发、装饰器可能造成依赖盲区;Docker 环境配置需手动完成;LLM 分类器准确率约 91.7%,需始终做后验证;无法抽取跨语言功能。论文为 FeatureBench: Benchmarking Agentic Coding for Complex Feature Development(ICLR 2026)。