技术实践

Cursor以Turbopuffer承载大规模语义索引

AI 基础设施上下文与知识应用与实践检索增强向量数据库编程

概述

据 Turbopuffer 官方客户案例,Cursor 的代码库索引分两条:语义索引侧,本地用 tree-sitter 按语法边界把代码切块,通过 Merkle Tree 做增量同步(只传变化的部分),代码块加密上传到 Cursor 服务端,服务端用 embedding 模型生成向量后立即丢弃原始代码,向量与元数据存入 Turbopuffer。 查询流程为用户提问→embedding→向量最近邻搜索→top-K→reranking→组装进 context。精确搜索侧,Cursor 在 2025-2026 年开发 Instant Grep,用 trigram(三字符滑动窗口,如 OAuth 切为 OAu/Aut/uth)倒排索引加速 grep:预处理时为每个 trigram 维护包含该 trigram 的文件列表,搜索时取所有 trigram 文件列表的交集得到候选文件,只对候选文件跑正则匹配。 规模数据为 100 亿+ 向量、1,000 万+ 命名空间(每个命名空间对应一个用户的一个代码库)、写入吞吐量约 10GB/s,Turbopuffer CTO Sualeh Asif 称其为 Cursor「扩展过程中少数不需要操心的基础设施之一」。另据 2025 年 3 月泄露的 Cursor Agent system prompt,grep_search 被明确标注为主要探索工具,LLM 被要求先用一组宽泛关键词做 Grep,codebase_search(语义搜索)只在概念性查询时作为补充。