😽 最新动态 | 🐈 环境配置 | 🧶 性能对比 | 🐈⬛ 项目产出 | 📝 引用 | 😻 致谢
Agentless 是一种无需智能体的自动化解决软件开发问题的方法。为解决每个问题,Agentless 遵循一个简单的三阶段流程:定位、修复和补丁验证。
- 🙀 定位:Agentless 采用分层流程,首先将故障定位到特定文件,然后定位到相关的类或函数,最后精确定位到需要编辑的具体位置。
- 😼 修复:Agentless 根据编辑位置,以简单的 diff 格式为每个 bug 生成多个候选补丁。
- 😸 补丁验证:Agentless 选择要运行的回归测试,并生成额外的复现测试来重现原始错误。根据测试结果,Agentless 对所有剩余的补丁进行重新排序,并选择一个提交。
首先创建环境:
git clone https://github.com/OpenAutoCoder/Agentless.git
cd Agentless
conda create -n agentless python=3.11
conda activate agentless
pip install -r requirements.txt
export PYTHONPATH=$PYTHONPATH:$(pwd)
# 如需贡献代码,请安装 pre-commit 钩子。
pre-commit install # 这有助于保持更统一的代码风格
然后导出你的 OpenAI API 密钥:
export OPENAI_API_KEY={your_key_here}
现在,你已准备好在 SWE-bench 的问题上运行 Agentless 了!
[!NOTE]
如需完全复现 SWE-bench lite 实验,并遵循论文中描述的确切配置,请参阅此 README。
下图展示了 Agentless 与目前最佳的开源基于智能体的方法在 SWE-bench lite 上的性能对比。
你可以在我们的 v1.5.0 版本发布页 下载 Agentless 的完整产出物:
- 🐈⬛ agentless_swebench_lite:在 SWE-bench Lite 上的完整 Agentless 运行结果。
- 🐈⬛ agentless_swebench_verified:在 SWE-bench Verified 上的完整 Agentless 运行结果。
- 🐈⬛ swebench_repo_structure:每个 SWE-Bench 问题预处理后的仓库结构信息。
你也可以查看 classification/ 文件夹,获取我们对 SWE-bench-lite 的手动分类结果,以及我们筛选出的 SWE-bench-lite-S 问题集。
@article{agentless,
author = {Xia, Chunqiu Steven and Deng, Yinlin and Dunn, Soren and Zhang, Lingming},
title = {Agentless: Demystifying LLM-based Software Engineering Agents},
year = {2024},
journal = {arXiv preprint},
}
[!NOTE]
前两位作者对此工作贡献相同,作者顺序通过 Nigiri 方式确定。