回复
Agent不存在了?谁说必须用 Agent!
今天给家人们分享一下AgentLess,这个舆论比较高的研究工作。。
AGENTLESS : Demystifying LLM-based Software Engineering Agents
AI编程在最近几个月非常火热,像Devin这种自主Agent,已经可以完成端到端的软件开发任务。最新的Agent基本具备了使用工具、执行命令、观察环境反馈并规划下一步行动的能力。
但是,这些基于 Agent 的方法往往非常复杂,而且当前 LLM 的能力也存在局限性。这就引出了一个问题:我们真的需要如此复杂的自主 Agent 吗?
所以,这个研究工作,研究了一种无需 Agent 的方法,来自动解决软件开发中的问题。与那些复杂的基于 Agent 的方法相比,AGENTLESS 采用了一种简单的三阶段工作流:定位问题、修复问题和验证修复。整个过程没有让 LLM 自主决策后续步骤或操作复杂工具。
AGENTLESS 的核心思想:大道至简
作者们发现无需复杂的自主规划和工具调用,仅仅依靠简单的流程也能高效解决软件问题。AGENTLESS 的工作流程如下:
- 精确定位问题:
- 首先,AGENTLESS将代码仓库转化为树状结构,清晰展示文件之间的相对位置。
- 接着,结合问题描述,AGENTLESS利用 LLM 和嵌入式检索技术,定位最有可能需要修改的文件。
- 然后,AGENTLESS进一步缩小范围,定位到文件内的具体类、函数和变量。
- 最后,AGENTLESS精确到代码的编辑位置,例如具体的代码行。
- 高效修复问题:
- AGENTLESS 从定位好的代码片段中提取上下文信息,作为 LLM 的输入。
- 接着,AGENTLESS 指示 LLM 生成多个候选补丁,每个补丁都是一个简单的 “查找/替换” 格式的差异文件。这样不仅可以降低成本,还能提高修复的可靠性和准确性。
- 验证修复:
- AGENTLESS 指示 LLM 生成重现测试用例,用于验证原始问题是否已经修复。
- 然后,AGENTLESS 利用重现测试和现有的回归测试,对候选补丁进行筛选和排序。
- 最后,AGENTLESS 选择排名最高的补丁,作为最终的修复方案。
AGENTLESS 的惊艳表现
使用 SWE-bench Lite 基准数据集对 AGENTLESS 进行评估。结果令人惊讶:
- 性能卓越:AGENTLESS的修复成功率达到了 32.00%,成功修复 96 个问题,在所有开源方法中名列前茅!
- 成本极低:平均每个问题的修复成本仅为 0.70 美元,远低于其他大多数开源软件Agent。
- 已被业界采用:AGENTLESS的简单和高效也赢得了业界的青睐,它已经被 OpenAI 采用,用于展示 GPT-4o 和 OpenAI o1 模型在真实世界编码方面的性能。
AGENTLESS 证明了,简单的工作流也能高效解决复杂的软件开发问题。这是否意味着不应一味追求复杂,而是应该从本质出发,探索更简单、更有效的方法。
最后,AGENTLESS 已经开源,地址为https://github.com/OpenAutoCoder/Agentless
赞
收藏
回复
相关推荐