又是一个让程序员狂欢的研究!来自 OpenHands、耶鲁、南加大和斯坦福的研究团队刚刚宣布了LocAgent—— 一个专门用于代码定位的图索引 LLM Agent 框架,直接把代码定位准确率拉到了 92.7% 的新高度。该研究已被 ACL 2025 任命。
论文问题:LocAgent: Graph-Guided LLM Agents for Code Localization论文链接:https://arxiv.org/abs/2503.09089代码链接:https://github.com/gersteinlab/LocAgent
一、痛点很真实:代码定位究竟有多灾?
相信每个程序员都有过这样的履历:看到一个 bug 报告,满脸问号地想「这究竟要改那里?」。古板要领要么靠要害词匹配(太粗糙),要么直接把整个代码库丢给 LLMs(太低效),要么让 Agent 盲目遍历目录(太鸠拙)。
问题的焦点在于:自然语言形貌的问题和真正需要修复的代码位置之间,往往隔着好几层挪用关系。好比用户反响「XSS 误差」,但现实需要修改的可能是某个深层的验证工具函数。
换言之,代码定位指的是在大型代码库中准确找到需要修改的代码位置,在软件开发与维护中,准确地定位代码问题是提高开发效率的要害(图 1 展示了四种常见的代码修复场景)。
图 1:给定一个代码库(左)和问题形貌(中,包括四种场景的示例),代码定位需要识别出需要修改的相关代码位置(右),包括详细的文件、类和函数。LocAgent 旨在让 LLM Agent 自动完成这一历程。
自然语言中的问题形貌(如过失报告)往往与真正的故障根因保存显著的语义差别与结构距离(如图 2 所示)。这不但要求模子能够深入明确自然语言编写的过失报告,还需具备在重大代码库中跨越层级结构和重大依赖关系举行推理和追踪的能力。
图 2: 图中红色节点体现问题形貌中明确提及的函数,黄色节点体现现实需要修改(修补)的函数。使命难度界说为代码图中从提及函数到目的修补函数之间的最短路径长度(最少跳数),图示例中使命难度为 2 跳。
二、LocAgent:给 LLM 装上「代码地图」
该研究团队的解决计划相当巧妙:首先他们把整个代码库剖析成一张图,包括文件、类、函数之间的包括、挪用、继续、导入关系。然后该团队为 LLM Agent 提供精练统一的图原语接口,以支持离效探索代码库。该要领通过将代码库剖析为异构图体现,让大语言模子能够像使用地图一样高效地在代码中「移动」,实现多跳推理,逐步靠近目的代码。
图 3:LocAgent 框架概览
如图 3 所示,LocAgent 首先将代码库剖析为一个异构图体现,图中包括多种类型的代码实体及其依赖关系。在此基础上,系统构建了分层希罕索引,用于支持高效的内容检索与结构化探索。借助这些索引,LocAgent 能够连系图结构与工具接口,执行由 Agent 驱动的逐步搜索历程,精准完成代码定位使命。
2.1 代码体现构建历程
代码图体现构建:为统一体现代码库中的结构与语义信息,LocAgent 基于笼统语法树(AST) 对代码库举行剖析,构建一个异构有向图 作为结构化索引,详细体现了代码目录、文件、类、函数之间的包括、挪用、导入和继续关系,使得隐式依赖显性化,便于 LLM 高效推理。
这种图结构的优势在于:纵然两个代码片断分处差别?,只要保存挪用或继续关系,在图上它们就会变得「相近」。好比,以往基于目录导航的要体会以为远隔两个子目录的?榫幌喙,但若是? A 函数挪用了? B,在 LocAgent 的图中 A 和 B 会通过挪用边直接毗连,使它们在该图结构上靠近。关于代码定位使命,这种「相近」至关主要,由于许多问题不是局限在单个文件夹内部,而是通过挪用链跨越多个?。
2.2 提供工具接口供 Agent 盘问
构建好代码图后,LocAgent 提供了统一的工具接口,让 LLM Agent 能够利便地盘问图结构和代码内容。主要包括以下三个 API:
SearchEntity:该工具基于条理化实体索引,使用要害词搜索代码库中相关实体。当在上层索引中未能找到匹配项时,系统会自动使用下一层索引举行搜索,从准确匹配到模糊搜索,以查找最靠近的匹配项。关于检索到的每个实体,SearchEntity 会返回该代码片断的摘要(如图 4,有折叠级别、预览级别和完整代码三级,可凭证需要睁开)。
图 4: 为高效的 Agent 代码交互而设计的差别输特殊式示例。
RetrieveEntity:当 Agent 确定了某个代码实体很可能就是目的时,可以用此工具提取该实体的完整信息。当输入实体 ID,RetrieveEntity 输出该实体的文件路径、起止行号、完整代码内容等详细属性。TraverseGraph:该工具在代码图上执行类型感知的广度优先搜索。Agent 可以指定起始的实体 ID,以及希望遍历的偏向、步数(hops)、实体类型和关系类型等参数。工具会在图中从起点出发凭证要求走指定步数,返回遍历到的子图结构。通过设置差别的类型过滤,Agent 可以无邪地探索好比「沿挪用关系向下追踪两步」或「审查从某类出发的继续条理」等等。值得一提的是,TraverseGraph 将返回的子图名堂化成一种树状结构文本(见图 5),以便 LLM 更容易明确关系拓扑。
图 5:TraverseGraph 工具输出示例。
2.3 Agent 驱动的推理阶段
LocAgent 在提醒设计上接纳了「逐步思索」(Chain-of-Thought, CoT) 的战略,指导 LLM Agent 将代码定位使命剖析为一系列办法,模拟人类调试思绪一步步迫近目的。整个问题求解历程可以归纳综合为以下阶段:
问题明确与要害词提。篈gent 首先对输入的 issue 形貌举行剖析,划分出差别方面的信息,然后提取出与问题相关的要害词。这些要害词相当于为后续搜索指明晰起源偏向。链接要害词到代码实体:针对每个提取的要害词,Agent 挪用 SearchEntity 工具在代码索引中查找匹配的代码实体。多跳推理,天生故障链路:接下来,Agent 会实验串联线索,从报错表征推导故障缘故原由。它先确定问题触发的初始入口点(例如触发过失的 API 或函数),然后以这些点为起点,在代码图上举行迭代探索:挪用 TraverseGraph 沿挪用关系或依赖关系向相关偏向搜索;用 RetrieveEntity 审查某些要害节点的实现细节;须要时再次 SearchEntity 引入新的要害词。通过多轮交替使用这些工具,Agent 逐步构建起一条从问题症状到潜在根因的逻辑路径。锁定目的代码:在形成对问题的周全明确后,Agent 凭证「故障链路」中袒露的可疑环节,定位出所有可能需要修改的目的代码实体(可能是若干个函数或类)。随后,Agent 对这些候选实体按相关性举行排序输出,并给出它们的文件路径以及简要的缘故原由说明。
整个 LocAgent 的使用对用户来说很是精练:只需输入自然语言的问题形貌, LLM Agent 就会如上所述自主地完成一系列搜索、遍历、读取操作,最后给出代码定位效果。
三、实验效果:真香忠言
LocAgent 在真实数据集上的体现和剖析效果令人瞩目。研究中使用了既有的基准数据集(SWE-Bench Lite)以及团队新构建的 Loc-Bench,比照了多种基线要领的代码定位效果。
(1)代码定位效果精彩
SWE-Bench Lite 是从 GitHub issue 中构建的客栈级代码修复数据集,也常用于代码定位评估,包括 300 个问题及其对应的修复代码,其中大部分为 bug 报告;诟没,LocAgent 实现了现在最优的代码定位准确率,显著优于现有要领。
相比古板的向量检索要领有显著提升:BM25 在文件级 Acc@5 上仅为 61.7%,而先进的代码嵌入模子如 CodeRankEmbed 也仅抵达 84.7%;而 LocAgent 准确率高达 92.7%,在函数级定位中也同样显著优于这些要领。多步推理的 Agent 类要领整体上胜过基于牢靠流程的要领;诶慰苛鞒痰囊欤ㄈ Agentless)往往只能依据字面匹配找到有限的候选,而引入了 Agent 逐步探索后,能够思量更广的规模,定位效果更好。在文件、?椤⒑隽6壬,LocAgent 周全逾越了基于 GPT-4o 或 Claude-3.5 的现有 Agent 系统。使用 Claude-3.5 时,LocAgent 在 SWE-Bench Lite 文件级 Acc@5 抵达 94%,在函数级定位上同样优于其他要领。LocAgent 搭配 Qwen2.5-32B (微调) 模子的性能险些与 Claude-3.5 持平:在 SWE-Bench Lite 文件级 Top-5 准确率上,前者为 92.7%,后者约 94.2%,差别很小。而若是使用 Qwen2.5-7B (微调) 小模子,虽然准确率略有下降(约 88.3%,但仍凌驾绝大大都 baseline),其体现已能够迫近 GPT-4o 的效果。
(2)多使命场景下的泛化能力
由于 SWE-Bench Lite 数据集过于着重 Bug 类型,团队打造了新的Loc-Bench基准,用于周全评估要领在多样化软件维护使命中的定位能力。Loc-Bench 共包括 560 个真实 GitHub issue,笼罩Bug 修复、功效新增、清静误差与性能优化四大类,使命类型越发平衡,贴近现实工程场景。
四、开源福利:小模子也能打
这个研究最让人兴奋的地方在于:开源模子经由微调后,也能抵达商用大模子的效果。他们提供了两个版本,1. Qwen2.5-7B 微调版:性能媲美 GPT-4o,单次处置惩罚本钱仅 $0.05;2.Qwen2.5-32B 微调版:迫近 Claude-3.5 水平,本钱节约 86%。这关于需要大规模安排的企业来说,这简直是降本增效的神器。
详细而言,微调的 Qwen2.5-7B 模子,LocAgent 在 Loc-Bench 四类场景下的平均文件级 Acc@5 为76.8%,函数级 Acc@15 为46.9%,已靠近 SWE-Agent 搭配 Claude-3.5 的体现(后者函数级约 45.4%)。进一步将 LocAgent 与 Claude-3.5 连系后,文件级平均准确率可提升至81.1%,在四类使命中险些周全逾越其他要领。
五、现实应用:不但是定位,还能助力解决问题
研究团队验证了一个要害点:更准确的代码定位直接提升问题解决率。在 GitHub 问题自动修复使命中,使用 LocAgent 的 Pass@10 乐成率比基线要领提升了 12%。这意味着这项手艺不但仅是个「定位工具」,而是能实着实在提升整个软件维护流程效率的利器。
该团队进一步从差别角度睁开剖析,探讨其在重大使命中的稳固性、本钱效率、要害组件作用以及对下游应用的现实价值。
(1)难度分级实验与多跳鲁棒性
为了深入相识 LocAgent 的能力,该团队还凭证使命的难度对性能举行了剖析。该团队将「难度」用代码图上函数距离(hop 数)来权衡:即 Issue 形貌中提及的函数与现实需要修改的函数之间的最短路径。直观地说,hop=0 体现 Issue 直接提到了需要改的函数名;hop=1 体现目的函数是 Issue 中提到的函数之间有直接关系,hop 数越大则定位难度越高。
实验发明:随着 hop 数增添,所有要领的定位准确率都在下降。事实关联越不直观,模子需要推理的链路就越长。不过,差别要领的鲁棒性差别显着:Agent 类要领在高难度下的性能下降幅度显着小于检索类要领。特殊是 LocAgent 借助图结构索引,在 hop 数增添时仍能坚持相对较高的准确率,体现出较好的鲁棒性。
相比之下,古板检索要领在需要两跳以上时险些失效,在函数级定位上纵然目的函数名字就泛起在盘问里,有时都找不到(由于它们往往把盘问当做整体,无法拆解处置惩罚细节)。
(2)效果与本钱较量
借助结构化图索引与工具挪用,LocAgent 仅需 6~9 轮交互即可完成一次代码定位使命,推理历程高效。别的,该团队使用开源模子取得了媲美商用大模子的效果,同时大幅降低推理本钱,具备现实落地安排的可行性。
详细来看,使用 Claude-3.5 等商用 API 模子时,每个 Issue 的平均处置惩罚本钱约为$0.66;而使用外地安排的 Qwen2.5-32B 模子,本钱降至约$0.09,降低了86%。若进一步接纳 7B 的小模子,处置惩罚本钱可低至$0.05,仍能坚持优于大大都要领的性能。从函数级准确率与本钱的比值来看,微调后的Qwen-2.5-7B 是性价比最高的计划,其效率优于所有商用模子;Qwen-2.5-32B 次之,也显著优于 Claude-3.5。这批注,连系 LocAgent 框架,开源模子不但具备性能竞争力,更具安排经济性。
(3)应用效果:高质量定位显著提升问题解决率
为评估代码定位在现实软件维护使命中的影响,该团队进一步剖析了 LocAgent 在自动解决 GitHub 问题中的效果。效果批注,随着定位准确率的提升,问题解决乐成率显著提高,说明更精准的定位效果能够显著增强自动化代码修改的质量与稳固性。该发明验证了 LocAgent 不但在定位自己体现优异,也能有用推动下游使命的整体性能,具备现实工程价值。
六、手艺启示:结构化索引 + 智能推理
LocAgent 的乐成展现了一个主要趋势:从「暴力盘算」到「智能决议」的范式转变。古板要领要么把整个代码库直接丢给 LLM 举行暴力匹配,要么让 Agent 凭证预设规则盲目遍历目录,这些都属于「盘算麋集型」的解决计划。而 LocAgent 通过图索引等结构化中心体现,将重大问题举行结构化剖析,然后让 LLM 肩负更高条理的推理和决议使命。
这种「agentic retrieval」范式的焦点在于决议智能化。通过图、树等结构化中心体现,信息变得更易于推理,Agent 能够凭证详细问题动态调解搜索战略,而非死板地遵照预设路径。这代表了从「人工设计种种 RAG pipeline」向「让 AI 自主决议怎样检索」的转变。
这种连系结构化索引与 LLM 智能体协同设计的范式,很可能成为未来 AI 工程应用的标准模式。不再是让 LLM 做更多盘算,而是让 LLM 做更智能的决议 - 程序员的 debugging 体验又要迎来一次重大升级了!
《虐乳➕灌➕电击➕虐菊小说》,《w3u7903ejky2ywls》美女光溜溜图片视频素材
“小🐤🐤戳进去里图片双男”
没有穿内裤被总裁㖭了一天
……
05月31日
“小舞被爆❌羞羞漫画32章”大使馆回应皇马球迷辱华
↓↓↓
05月31日,丁纯任安徽省黄山市委书记,班长露出🐻强行被男生揉动漫,把jiji❌进美女的屁屁里面,⚠️羞羞漫画sss在线观看,17C白丝喷水🌸自慰小说
05月31日,浙江九三学社成立数字经济专委会 为浙江提供“数智”支撑,麻豆明星ai换脸视频,海贼王娜美爆乳玉腿❌❌,黑土被爆自慰爽nanto,9幺无码免费看片
05月31日,粤港澳海关共同构建“粤港澳海关通关资讯平台”,188437神秘大片,欧美XXXXXXYYXXX,男同的🍌伸到🍑里面无挡小蓝,芙宁娜被狂揉下部❌的网站
05月31日|1元包装费缘何触动消费者神经?|巨胸爆乳❌❌❌动漫下载|网曝黑料吃瓜永久国产|初女裸体㊙️免费视频|少萝被❌脱脱内内做运动天涯
05月31日|8月份全国自然灾害风险形势发布:我国七大江河流域已全面进入主汛期|小圈实践管教视频|直男快递员的粗直Gay|初音未来被❌羞羞视频|FerrPorno馃拫馃憴8d
05月31日|走好科技强农质量兴农品牌富农之路|美女脱👙给男主捏🐻视频|3D小舞裸体❌❌抖乳斗罗大陆|玉足球导管必备|PORNO韩国洗澡HD免费……
05月31日,“消失”50多年的峰斑林蛙重现四川峨眉山,一色桃子,国产亚洲🈲️久一区二区写真,王妃被王爷各种被强H,班长❌开腿让我爽一夜小作文
05月31日,闻香识豆:科学如何赋予罗布斯塔咖啡豆新魅力,路飞❌白星,啊∽你tm别㖭了我的小兔兔漫画,公车被乱奷短文合集霍水,genshin❌3D裸身网站
05月31日|第十三届藏传佛教教义阐释研讨会在北京举行|蜜桃㊙️AV导航|91糖心桥本香菜丝袜|欧美猛男熟妇|啊┅┅快┅┅用力啊刀
05月31日,中外专家:老龄化挑战需国际合作应对,国产GaysexChina男外卖,18🈲🍆🍆🍆🍆网站""",(年轻女教师)2,嗯∽啊~轻点禁🔞揉胸动漫
05月31日,广西侗乡:“指尖经济”助力乡村振兴,Free Japan XXXXHD,甜心vlog,13🈲♋在线观看免费入口,小🐔🐔伸进🈲🔞🔞明星
05月31日,飘香七十载,探访中国胡椒“兴隆之路”,扒开美女狂揉真人游戏,高清码免费网,校园H宿舍自慰,玛奇玛裸体被❌视频
05月31日|文脉华章|戏曲艺术 璀璨之光|趁邻居洗澡,强行插入嫩逼|粉嫩玉足榨精脚交视频|扒开双腿调教羞辱奶头免费视频|国产91♥丝袜在线观看
05月31日|陕西发布《2023年陕西国土绿化公报》 2023年完成营造林522.79万亩|亚洲人精品电|赤身裸体100%无遮挡暴露尿口|黑人添女人荫道口|豆花官网在线登录入口
05月31日|广州推动智能网联汽车地图生产革新|好湿好紧好多水含羞草|嗯啊羞羞无颜之月男男|装睡被陌生人揉到高潮|国产❤️长靴在线播放
我的故乡我的年,山东省属事业单位转为企业|中欧日韩专家前瞻“6G标准”:需要全球合作、驱动人工智能|美女裸体被❌羞羞ai换脸|帥男自擼陽莖玩G丫網|男人被c❎黄漫画动漫|扒开甘雨的内裤摸出白浆视频
监制:邓金木
策划:赖晗
主创:唐征宇 林箴贺 陈佛烘 颜亦阳 陈林韵
编辑:王家菁、段圣祺