probe
AI编程助手的精准代码搜索引擎,AST感知搜索让AI真正读懂代码结构而非猜测文本
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI编程助手的精准代码搜索引擎,AST感知搜索让AI真正读懂代码结构而非猜测文本
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Probe 项目 Logo
想象一下:你让 AI 助手"帮我修改用户认证模块",它翻了半天代码,最后改了一个风马牛不相及的文件——只因为两处代码恰好用了同一个变量名。这不是 AI 笨,是它的"眼睛"不够好。
大多数 AI 编程工具本质上还是"文本搜索器":用正则匹配关键词、按相似度找文本片段,分分钟把一个完整的函数拆得七零八落。遇到大型代码库,更是力不从心——它们根本不认识代码的结构。
Probe 正是来解决这个问题的。
Probe(probelabs/probe)是 Probe Labs 团队开源的 AI 友好语义代码搜索引擎,636 GitHub Stars,Apache-2.0 许可证。它将 ripgrep 的速度与 tree-sitter 的 AST 语法分析结合,专门为 AI 编程助手设计,让 AI 真正"读懂"代码而非"猜"代码。
核心技术路径不同于传统方案:既不是简单的正则匹配(grep/ripgrep),也不是依赖 embedding 模型做向量检索(需要索引、需要 embedding 服务),而是用 AST 感知结构化搜索 + BM25/TF-IDF 混合评分,零配置、零外部依赖、离线可用。
Probe Labs 是一个专注 AI 编程工具的团队,核心作者是 Leonid Bugaev。团队在 GitHub 上的定位非常清晰:做 AI coding assistant 的基础设施层——不是应用层产品,而是给 Claude Code、Cursor、Windsurf 这些 AI 编程工具提供"眼睛"的底层引擎。
这种定位使 Probe 有别于一般 Copilot 类工具,而是成为一个 MCP(Model Context Protocol)服务器 + CLI 工具包,可以被任何 AI 工具集成。
传统工具面临速度 vs 理解的两难:ripgrep 极快但只认文本,embedding 工具理解语义但需要索引管道。Probe 选择第三条路——利用 tree-sitter 将代码解析为 AST(抽象语法树),在结构层面进行搜索和提取。
实际效果差异显著:
"authenticate" 找到的是所有包含这个字符串的行,可能跨越多个函数、多个文件Probe 采用 Elasticsearch 风格的布尔查询和 BM25/TF-IDF 混合评分体系,而非纯语义相似度。SIMD 加速(via simsimd 库)确保在大型代码库上的搜索速度不退化到传统工具水平。
token 感知设计(--max-tokens、会话去重)确保 AI 收到的上下文始终在 token 限制内,不会塞入大量无关代码。
通过 tree-sitter 生态,Probe 原生支持 19 种编程语言:Rust、Python、JavaScript/TypeScript、Go、C/C++、Java、Ruby、PHP、Swift、C#、HTML、Markdown、YAML、Solidity、Crystal、Haskell 等,覆盖主流企业代码库语言。
Probe 采用清晰的 Rust + Node.js 双层架构:
Rust 核心层(src/):负责底层搜索和提取逻辑,包括:
src/search/:搜索管道、查询执行和评分src/extract/:tree-sitter 驱动的代码提取(返回完整函数/类)src/ranking.rs / src/simd_ranking.rs:BM25/TF-IDF 排名及 SIMD 优化src/cli.rs:CLI 入口和命令路由Node.js SDK 层(npm/):负责 AI 工作流编排:
ProbeAgent.js:AI Agent 主循环、prompt 构建、工具调用tools.js:search/extract/query 等工具定义 + XML 格式解析search_code 和 extract_code 两个工具LSP 守护进程(lsp-daemon/):为代码理解提供 Language Server Protocol 支持,支持 rust-analyzer、pylsp、gopls、TSServer 等语言服务器,实现符号解析、引用查找、悬停信息等功能。
可选重排层(examples/reranker/):基于 ms-marco-tinybert 的重排模型,可对 BM25 初筛结果做二次精排。
项目有极高的工程品质:Rust 最低版本要求 1.88.0(最新版),使用 clap 4.x 做 CLI 参数解析,anyhow/thiserror 规范化错误处理,tracing 全链路日志追踪,完整测试覆盖含单元测试、集成测试、属性测试(proptest)、LSP mock server 测试。
Probe 提供三种部署路径:
路径一:install.sh 一键安装
curl -fsSL https://raw.githubusercontent.com/probelabs/probe/main/install.sh | sh
自动下载预编译二进制,Linux/macOS/Windows 全支持。
路径二:npm 全局安装
npm install -g @probelabs/probe
probe search "authentication" --lang python
Node.js SDK 方式,适合已在 Node.js 生态的团队。
路径三:docker-compose 一键启动
# 启动 probe CLI 工具
# 启动 probe-chat CLI(交互式对话)
# 启动 probe-chat Web UI(浏览器访问 localhost:3000)
完整 docker-compose.yml 包含 3 个服务(probe CLI + probe-chat CLI + probe-chat Web),开箱即用,无需本地装 Rust。
硬件需求极低:无 GPU 要求,2GB 内存 + 500MB 磁盘,无需任何外部服务。
Probe 不是一个单一工具,而是一个工具矩阵,从 CLI 到 AI Agent 逐层递进:
MCP 协议集成:以 MCP 服务器身份暴露 search_code 和 extract_code 工具,可被 Claude Code、Cursor 等 AI 编程工具直接调用。Claude Code 用户在项目中安装 Probe 后,Claude 会自动识别 CLAUDE.md 中的指示,优先使用 Probe 而非原始 grep。
Probe Agent 模式:内置 AI Agent,内置"如何使用 Probe"的专业知识,能自主规划搜索策略、自动重试和降级、单次调用捕获完整上下文,减少 AI 工具内的循环次数(官方称可从 10+ 循环降低到 1 次)。
交互式 CLI:probe-chat 提供交互式对话界面,probe search / probe extract / probe query 等命令直接操作。
probe-chat Web UI:localhost:3000 的 Web 界面,非技术用户也能使用。
Probe 的出现反映了 2024 年以来 AI 编程工具的一个深层演进方向:从"能用就行"到"精确上下文"。 当 AI 编程工具在简单项目上已经够用,下一个瓶颈就是大型代码库的场景理解能力。AST 感知搜索正在成为这个方向的标准技术路径。
同时,Probe 的 MCP 协议集成代表了一个生态趋势:AI 工具之间通过标准协议互操作的成熟度在提升,工具即插即用成为可能。
需要正视的是,Probe 并非万能:
Probe 是 AI 代码搜索领域的一个精品级项目,定位清晰——做 AI 编程工具的"眼睛",不自己做应用层。它的技术选型(Rust + tree-sitter + BM25)务实而高效,工程质量和文档完备度在同类开源项目中属于顶尖水平。
如果你在构建 AI 编程助手、需要给大型代码库提供精确上下文、或想让 AI 代码理解能力更上一层楼,Probe 值得深入研究。对于普通开发者,docker-compose 一键启动的 probe-chat Web UI 也能带来直观体验提升。
项目地址:https://github.com/probelabs/probe