RAG for 开发者 — 为代码而建,而非仅限文本(请求审阅)

发布: (2025年12月14日 GMT+8 05:42)
3 min read
原文: Dev.to

Source: Dev.to

Cover image for RAG for Developers — Built for Code, Not Just Text (Review Requested)

面向代码的 RAG 工具 — 征求开发者反馈

我们一直在构建一个 code‑first 的 RAG 工具,它真正理解代码库的工作方式,而不仅仅是文本在嵌入空间中的外观。目标很简单:当你提出问题时,返回正确的函数、相关调用以及支撑代码,而不是随机的相邻片段。

内容概览

  • 基于 AST 的代码分块,使用 Tree‑sitter(支持 Python、JavaScript、TypeScript)
  • 显式提取 函数、类、导入、调用、文档字符串
  • 干净的异步摄取流水线,严格遵循 工具 → 代理 → 存储 边界
  • 语义向量检索 作为起点,而非终点
  • 内存中的依赖图扩展
    • 从块元数据懒惰构建
    • 无持久化、无全局变量、无后端捷径
  • 稳定的限定 IDfile::entity
  • 通过 BFS 在调用和导入上进行 上下文扩展,拉取真正关联的代码
  • 后端无关的向量存储层,存储方式可更换而无需重写逻辑

为什么我们认为这很有用

  • 获得相关的代码路径,而不仅仅是相似的文本
  • 上下文保持小巧、相关且易于调试
  • 架构避免隐藏状态和扩展时的意外

我们希望得到的反馈

如果你曾在大型仓库或构建 RAG 系统的过程中有经验,期待你的想法:

  • “图作为派生状态” 的设计
  • 块元数据的选择(调用、导入、QID)
  • 检索 + 扩展流程
  • 任何你认为在真实生产代码库中会出现的边缘情况

即使是快速的感受或直觉判断也非常欢迎。

Back to Blog

相关文章

阅读更多 »