Agentless 项目介绍
项目背景
Agentless 是一个无代理(agentless)的工具,旨在自动解决软件开发中的问题。它通过三阶段的简单过程:定位、修复和补丁验证,来解决每一个问题。该方法被认为在 SWE-bench lite 基准测试中表现出色,以82个修复(占27.3%)和平均每个问题0.34美元的成本脱颖而出。
功能概述
-
🙀 定位(Localization):Agentless 使用层次化流程来定位故障,从特定文件定位到相关类或函数,最后到细粒度的编辑位置。
-
😼 修复(Repair):Agentless 在编辑位置处,对每个错误采样多个候选补丁,并以简单的差异格式展示。
-
😸 补丁验证(Patch Validation):工具选择执行回归测试,并生成额外的重现测试以重现原始错误。通过测试结果,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)
其次,需导出你的 OpenAI API 密钥:
export OPENAI_API_KEY={key_here}
完成上述准备工作后,你就可以在 SWE-bench 上运行 Agentless 进行问题的解决。
比较分析
Agentless 与目前最佳的开源代理方法相比较,显示了在 SWE-bench lite 基准测试中的优势。Agentless 提供了一种有效的方法,无需消费者进行复杂的设置和处理,即可能获得更优的修复效果。
提供的资源
在 Agentless 的 v1.5.0 发布版本,你可以下载以下资源:
- 🐈⬛ agentless_swebench_lite:完整的 Agentless 在 SWE-bench Lite 上的运行结果。
- 🐈⬛ agentless_swebench_verified:完整的 Agentless 在 SWE-bench Verified 上的运行结果。
- 🐈⬛ swebench_repo_structure:每个 SWE-Bench 问题的预处理结构信息。
此外,还可以访问 classification/
文件夹获取 SWE-bench-lite 的手动分类以及经过过滤的 SWE-bench-lite-S 问题。
致谢
Agentless 项目深感感谢以下开源项目和社区的支持:
引用
如果需要引用 Agentless 项目,请使用以下 BibTeX 条目:
@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},
}
Agentless 项目旨在简化软件开发中的问题解决过程,减少人工干预,提供了一种高效的解决方案,以支持开发者高效处理软件错误和提升系统稳定性。