这种图结构的优势在于:即使两个代码片段分处不同模块,只要存在调用或继承关系,在图上它们就会变得「邻近」。比如,以往基于目录导航的方法会认为远隔两个子目录的模块毫不相干,但如果模块 A 函数调用了模块 B,在 LocAgent 的图中 A 和 B 会通过调用边直接连接,使它们在该图结构上靠近。对于代码定位任务,这种「邻近」至关重要,因为许多问题不是局限在单个文件夹内部,而是通过调用链跨越多个模块。
实验发现:随着 hop 数增加,所有方法的定位准确率都在下降。毕竟关联越不直观,模型需要推理的链路就越长。不过,不同方法的鲁棒性差异明显:Agent 类方法在高难度下的性能下降幅度明显小于检索类方法。特别是 LocAgent 借助图结构索引,在 hop 数增加时仍能保持相对较高的准确率,表现出较好的鲁棒性。