斯坦福等顶尖大学联手开源 LocAgent——用于定位代码问题的智能体
斯坦福大学、耶鲁大学、南加州大学等研究人员联合开源了用于定位代码问题的 AI Agent —— LocAgent。
在软件开发和维护领域,代码定位是开发者日常工作中的核心任务之一,需要开发者根据问题描述,例如,错误报告、功能请求或性能问题等,快速、准确地找到需要修改的代码片段。
但传统代码定位方法在处理复杂代码库时,面临复杂代码库导航困难,问题描述与代码实体之间的语义鸿沟,多跳推理的困难等。而LocAgent可以有效解决这些难题,能自动、快速精准定、遍历代码。
LocAgent的核心在于其“图基代码”表示,能将代码库解析为一个有向异构图,从而捕捉代码的层次结构和依赖关系。
在这个图中,节点代表代码库中的实体,包括文件、类、函数等,而边则表示这些实体之间的关系,例如文件之间的导入关系、函数之间的调用关系以及类之间的继承关系,还能够揭示出隐藏在代码中的复杂依赖关系。
LocAgent首先会解析代码库中的每个文件,识别出其中的类、函数等代码元素,并将它们作为节点加入到图中。随后,会分析这些代码元素之间的关系,并将这些关系作为边添加到图中。
例如,如果一个函数调用了另一个函数,那么在图中就会有一条从调用函数指向被调用函数的边。通过这种方式,LocAgent能够构建出一个全面且详细的代码库图表示,为后续的代码定位任务提供了坚实的基础。
LocAgent还通过稀疏层次实体索引来增强其搜索能力。这种索引机制为图中的每个节点创建了多个索引,包括基于实体ID的索引、基于实体名称的索引以及基于BM25算法的倒排索引。
这些索引能帮助LocAgent在几秒钟内快速定位到与问题描述相关的代码实体,即使在大型代码库中也能保持高效的性能。
在构建了图基代码表示之后,LocAgent框架的下一步是如何利用这一结构化索引进行高效的代码搜索。为此,LocAgent引入了基于Agent的代码搜索,可以通过一系列工具来探索代码库,并找到与问题描述相关的代码片段。
LocAgent为Agent提供了三种主要的工具,这些工具共同支持Agent在代码库中的高效搜索和推理。
首先是SearchEntity工具,允许Agent通过关键词搜索代码库中的相关实体。当Agent接收到一个自然语言描述的问题时,它会首先提取出问题中的关键词,然后利用SearchEntity工具在代码库的索引中查找与这些关键词相关的代码实体。这不仅能够处理精确匹配的关键词搜索,还能通过模糊搜索找到与输入关键词相关的代码片段,从而为Agent提供更广泛的搜索范围。
第二个工具是TraverseGraph,允许Agent从一个给定的实体出发,沿着图中的关系进行多跳遍历。这一工具的设计灵感来自于代码库中复杂的依赖关系,很多时候,问题的根源可能隐藏在与问题描述中提到的代码片段相隔数层的其他代码中。
通过TraverseGraph工具,Agent可以沿着调用链、继承链等关系逐步深入代码库,探索问题的潜在源头。TraverseGraph工具支持自定义遍历方向和跳数,使得Agent能够灵活地探索代码库中的复杂依赖关系,从而更全面地理解问题的上下文。
第三个工具是RetrieveEntity,用于检索指定实体的完整属性。当Agent通过SearchEntity和TraverseGraph工具定位到可能相关的代码实体后,需要获取这些实体的详细信息,以便进一步分析和判断。RetrieveEntity能够提供实体的完整代码内容、文件路径、行号等关键信息,为Agent的推理提供了充分的依据。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenAI 反诉马斯克,要求禁止其“进一步采取非法和不公平行动”
OpenAI 与埃隆·马斯克(Elon Musk)之间的对抗已经愈演愈烈。OpenAI 方面发文称,该公司已经提起了针对马斯克的反诉。 “Elon 不停地针对我们所采取的行动只是一种不怀好意的策略,目的是拖慢 OpenAI 的发展,并为了他个人的利益夺取对领先 AI 创新的控制权。今天,我们提起反诉,以阻止他。” 在日前提交的一份文件中,OpenAI 和包括首席执行官萨姆·阿尔特曼 (Sam Altman) 在内的该案其他被告的律师呼吁,禁止马斯克“采取进一步的非法和不公平行动”,并“对他已经给被告造成的损害负责”。 反诉文件中写道:“OpenAI 具有顽强的生命力。但马斯克的行为已经造成了损害。如果他的行动持续下去,将会对 OpenAI 造成更大的伤害 —— 对 OpenAI 履行其使命的管理能力、对促进这一使命所必需的关系以及对公众利益造成威胁……马斯克必须停止对 OpenAI 的持续攻击,最近的一次攻击是[一次]旨在扰乱 OpenAI 未来的虚假收购要约。” 2 月份,马斯克方面曾提出欲以 974 亿美元(当前约 7,115 亿元人民币)收购 OpenAI 的运营资产。但遭到了O...
- 下一篇
谷歌推出基于浏览器的全新 AI 开发平台 Firebase Studio
谷歌宣布推出基于云端、AI 驱动的集成开发环境(IDE)—— Firebase Studio。 Firebase Studio是 Google Firebase 平台的一部分,是一种浏览器可访问的云端开发环境。 作为一个基于云的全新“AI 代理式”开发环境,开发者可以随时快速创建全栈 AI 应用所需的一切,只需要一个浏览器即可。它帮助开发者快速原型设计、构建和发布带有 AI 功能的完整应用程序,适合后端、前端和移动应用的开发。 主要功能 AI 辅助开发:利用 Gemini in Firebase 提供代码生成、调试和测试支持,开发者可以通过自然语言提示快速创建应用。 项目导入和模板:支持从多种源导入现有项目,并提供 Go、Java、.NET、Node.js、Python Flask、Next.js、React、Angular、Vue.js、Android 和 Flutter 等框架的模板。 定制化环境:基于 Code OSS 构建,运行于 Google Cloud VM,可通过 Nix 定制开发环境,包括系统包、语言工具和 IDE 配置。 测试和部署:内置仿真器测试工具,支持直接在浏览...
相关文章
文章评论
共有0条评论来说两句吧...