VectorCode
为编程大模型装上项目「记忆雷达」,基于Tree-sitter语义分块+向量检索RAG
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
为编程大模型装上项目「记忆雷达」,基于Tree-sitter语义分块+向量检索RAG
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你在开发一个新项目,需要向 AI 编程助手求助,但这个项目是你自己搭建的——代码结构、模块关系、关键接口全是"你的世界"。大多数情况下,AI 会基于训练数据给出似是而非的建议,甚至出现幻觉(hallucination),因为它对这个项目一无所知。
VectorCode 正是为了解决这个痛点而生的。
它是一个代码仓库索引工具,核心思路是将本地代码库向量化(Vectorise)存入向量数据库,然后让 LLM 在生成回答前,先通过语义检索获取与当前任务最相关的代码片段。这样 AI 不再"盲问",而是带着真实的代码上下文来理解和回答问题。
用一句话概括:VectorCode = 代码 RAG(检索增强生成)的本地化工具链。
从源码结构来看,VectorCode 包含三大核心模块:
分块质量直接决定 RAG 效果。VectorCode 使用 Tree-sitter 进行语法树感知的代码分块,比简单的正则匹配或固定行数切分更智能。
具体来说,chunking.py 定义了 ChunkerBase 抽象基类和 TreeSitterChunker 实现类。对于每种编程语言,分块器先通过 Tree-sitter 解析器生成 AST(抽象语法树),然后按照函数、类等语义单元进行切割,而不是机械地按行数截断。这确保每个 chunk 都是语义完整的代码单元,便于后续检索时返回有意义的片段。
关键参数包括:
vectorise.py 是 CLI 的核心入口,负责:
pathspec 过滤 .gitignore 规则)all-MiniLM-L6-v2)query.py 则实现语义检索,支持:
VectorCode 不只是命令行工具,它提供了多层次的集成方案:
| 集成方式 | 说明 |
|---|---|
| CLI | uv tool install vectorcode,vectorcode init + vectorcode vectorise + vectorcode query |
| Neovim 插件 | vectorcode.lua,提供 :VectorCode 命令,支持 CopilotChat.nvim / CodeCompanion.nvim 插件的 RAG 增强 |
| LSP Mode | vectorcode-server,Language Server Protocol 实现,支持 IDE 级别的代码上下文注入 |
| MCP Server | vectorcode-mcp-server,Model Context Protocol 实现,可对接 Claude Desktop / Cursor 等 MCP 客户端 |

图1:VectorCode 与 neovim CodeCompanion 插件集成效果(来源:项目官方 images 目录)
图中可见,在未使用 RAG 时,AI 回答关于"数独算法"的代码出现了与项目实际代码不一致的情况;而接入 VectorCode 后,AI 精准引用了项目内相关函数。
从 pyproject.toml 可以看出 VectorCode 的依赖设计:
sentence-transformers(CPU 友好),也可切换 PyTorch 版本获得 GPU 加速pipx 隔离安装)lsp:pygls + lsprotocol(LSP 协议支持)mcp:mcp < 2.0.0 + pydantic(MCP 协议支持)intel:OpenVINO(Intel GPU 加速)legacy:PyTorch 2.2.2 + 老版 transformers(兼容性支持)构建系统使用 PDM(Python Development Master),安装推荐用 uv(Astral 出品的极速包管理器),确保隔离项目虚拟环境。
# 1. 安装 uv(如未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 2. 通过 uv 安装 VectorCode(含 MCP 扩展)
uv tool install "vectorcode[lsp,mcp]<1.0.0"
# 3. 初始化项目(生成 .vectorcode 配置)
cd /path/to/your/project
vectorcode init
# 4. 索引代码库
vectorcode vectorise
# 5. 查询
vectorcode query "如何在项目中新增 API 路由?"
chromadb<=0.6.3,可能影响新功能支持VectorCode 处于一个快速增长的细分赛道——代码 RAG(Code RAG)工具链。同类产品包括:
VectorCode 的差异化在于:
从 GitHub 数据来看,项目有 868 stars、49 forks、18 open issues,社区活跃度中等。开发者 Davidyz(hzjlyz@gmail.com)持续维护,版本迭代较快。MIT 许可证,完全开源。
VectorCode 是代码 RAG 领域的一个务实选择:它不追求大而全,而是专注于"让 LLM 精准理解本地代码库"这一件事,并做到了较高水准。对于使用 Neovim 的开发者来说,它是目前体验最顺滑的代码上下文注入方案之一;对于其他用户,CLI + MCP 的组合也足够灵活。beta 阶段的快速迭代既是风险也是机遇——值得关注后续版本走向。
分析基于 GitHub API 采集数据 + 源码解析,项目地址:https://github.com/Davidyz/VectorCode