CodeNav: Beyond tool-use to using real-world codebases with LLM agents

2024年06月18日
  • 简介
    我们提出了CodeNav,一个LLM代理,它可以浏览和利用以前未见过的代码库来解决用户查询。与需要通过LLM上下文中的手动描述“注册”所有相关工具的工具使用LLM代理不同,CodeNav自动索引和搜索目标代码库中的代码块,找到相关的代码片段,导入它们,并使用它们来迭代地生成带有执行反馈的解决方案。为了突出CodeNav的核心功能,我们首先展示了三个案例研究,其中我们使用CodeNav在三个不同的代码库中解决复杂的用户查询。接下来,在三个基准测试中,我们定量比较了仅具有对目标代码库的访问权限的代码使用(code-use)和具有对所有工具名称和描述的特权访问权限的工具使用(tool-use)的有效性。最后,我们研究了各种工具和库描述对代码使用性能的影响,以及调查代理程序看到源代码与自然代码描述的优势。所有代码都将在宽松许可证下开源。
  • 作者讲解
  • 图表
  • 解决问题
    CodeNav试图解决使用未见过的代码库来解决用户查询的问题。
  • 关键思路
    CodeNav可以自动索引和搜索目标代码库中的代码块,找到相关的代码片段,导入它们,并使用它们来迭代生成具有执行反馈的解决方案。相比于需要手动描述所有相关工具的工具使用LLM代理,CodeNav可以更有效地解决查询问题。
  • 其它亮点
    论文展示了三个案例研究,使用三个不同的代码库来展示CodeNav的核心能力。此外,作者还进行了三个基准测试,比较了代码使用和工具使用的有效性,并研究了不同种类的工具和库描述对代码使用性能的影响,以及代理程序看到源代码与看到代码的自然描述之间的优势。所有代码将在宽松的许可证下开源。
  • 相关研究
    在这个领域最近的相关研究包括基于机器学习的代码自动补全和代码搜索,例如“Code2Vec: Learning Distributed Representations of Code”和“CodeSearchNet Challenge: Evaluating the State of Semantic Code Search”。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问