论文
用于代码代理检索的 TypeScript 存储库索引
TypeScript Repository Indexing for Code Agent Retrieval
摘要
基于图的代码索引可以通过保留关键字搜索和相似性检索经常错过的调用链和依赖关系来改进基于 LLM 的代码代理的上下文检索。 ABCoder 是一个开源框架,它将代码库解析为称为 UniAST 的函数级代码索引。它现有的解析器将用于语法分析的轻量级 AST 解析器与用于语义解析的语言服务器相结合,但由于基于 LSP 的解析需要对每个符号查找进行 JSON-RPC 调用,因此这些每个符号的调用成为大型 TypeScript 存储库的瓶颈。我们提出了 abcoder-ts-parser,这是一个基于 TypeScript Compiler API 构建的 TypeScript 解析器,可直接使用编译器的 AST、语义信息和模块解析逻辑。我们在三个具有多达 120 万行代码的开源 TypeScript 项目上评估了解析器,发现它生成可靠索引的效率明显高于现有架构。如需现场演示,请观看:https://youtu.be/ryssr7ouvdE