probelabs/probe

AI-friendly semantic code search engine for large codebases. Combines ripgrep speed with tree-sitter AST parsing. Powers AI coding assistants with precise, context-aware code understanding.

Probe – AI 感知代码搜索与推理引擎

一句话总结 – Probe 是一个本地的、具备 AST 感知能力的代码搜索引擎,可直接从命令行或通过内置的 LLM 代理进行驱动。它让大型语言模型助手能够理解企业级存储库中的完整函数、类或结构,而无需任何索引或嵌入步骤。


功能说明 (摘自 README)

  • 使用 Tree‑sitter 解析源代码文件,为每种支持的语言建立抽象语法树 (AST)。
  • 语义搜索:使用 Elasticsearch 风格的布尔查询 (AND, OR, NOT, 字段筛选, 文件类型筛选等)。
  • 返回 完整的代码块 (函数、类、结构),而非片段。
  • 提供 AST 模式匹配 (probe query),让您可以搜索结构化模板,例如 fn $NAME($$$) -> Result<$RET>。
  • 零设置索引 – 引擎即时扫描文件系统;无需嵌入模型、向量数据库或外部服务。
  • 确定性排名:采用 BM25/TF‑IDF (以及可选的混合 BERT 重排序) 与 Token 预算控制 (--max‑tokens)。
  • 内置代理 (probe agent):可与任何 LLM 提供者 (Anthropic, OpenAI, Google, Bedrock) 对话,并协调多步骤搜索、提取甚至代码编辑。
  • MCP 集成 – 代理可注册为 Claude Code 等编辑器的 MCP 服务器,让编辑器直接调用 Probe 工具。
  • Node.js SDK 与 Vercel AI SDK 绑定,开发者可将搜索/代理功能嵌入自己的应用程序中。
  • 完全本地化 – 所有搜索工作皆在您的机器上完成;仅 LLM 调用会发送至所选提供者。

核心功能 (简要列表)

功能 详细说明
AST 感知解析 使用 Tree‑sitter 支持超过 20 种语言 (Rust, Python, TS/JS, Go, C/C++, Java 等)。
语义搜索 布尔查询语言、文件类型 (ext:) 与目录 (dir:) 筛选、BM25/TF‑IDF 排名。
零索引 无需预先计算嵌入;任何存储库皆可即时获得结果。
确定性输出 相同的查询 → 相同的结果,无随机向量相似度漂移。
Token 感知预算 --max‑tokens 限制发送给 LLM 的代码量。
内置 LLM 代理 处理多步骤推理、代码编辑、委派、bash 执行。
MCP 服务器模式 注册为 probe 服务器,供 AI 辅助编辑器 (Claude Code, Codex 等) 使用。
CLI 与 SDK `probe search
混合排名 可选的 BERT 重排序器以获得更高质量的结果。
跨平台安装 npm 全局安装、curl 脚本、PowerShell 脚本或从源代码构建 (Rust/Cargo)。

典型使用场景

  • 规格驱动开发 – 向代理询问“验证机制是如何实现的?”并获取实现该功能的完整函数。
  • 代码审查与入职 – 无需手动 grep,即可快速呈现变更周围所有相关的符号。
  • 自动化重构 – 结合 agent 与 --allow-edit,让 LLM 提出并应用编辑建议。
  • 工具集成 – 将 CLI 工具插入自定义 IDE 扩展或 CI 管线进行静态分析。
  • 离线环境 – 在无网络隔离机器上执行,因为搜索过程无需外部服务。

快速开始 (摘自 README)

# 通过 npm 全局安装 (推荐)
npm install -g @probelabs/probe

# 使用内置代理进行单次提问 (任何 LLM 提供者)
npx -y @probelabs/probe agent "How is authentication implemented?"

# 从终端机进行语义搜索
npx -y @probelabs/probe search "authentication AND login" ./src

# AST 模式查询 (Rust 示例)
npx -y @probelabs/probe query "fn $NAME($$$) -> Result<$RET>" --language rust

若要进行编辑器集成,请将一小段 JSON 块加入 ~/.claude/claude_desktop_config.json 以注册 Probe MCP 服务器 (请参阅 README 以获取确切片段)。


支持的语言 (列表)

Rust, JavaScript/JSX, TypeScript/TSX, Python, Go, C/C++, Java, Ruby, PHP, Swift, Solidity, Crystal, C#, Bash, QML, Markdown, HTML, YAML 以及其他通过 Tree‑sitter 支持的语言。


安装选项

方法 指令
npm (全局) npm install -g @probelabs/probe
curl (macOS/Linux) `curl -fsSL https://raw.githubusercontent.com/probelabs/probe/main/install.sh
PowerShell (Windows) `iwr -useb https://raw.githubusercontent.com/probelabs/probe/main/install.ps1
从源代码 git clone https://github.com/probelabs/probe.git && cd probe && cargo build --release && cargo install --path .

授权条款

存储库说明了 License 章节,但未在 README 中指定确切的 SPDX 标识码。请检查存储库中的 LICENSE 文件以了解确切条款。


了解更多

  • 完整文档:https://probelabs.com/probe
  • CLI 参考:docs/probe-cli/*
  • Agent SDK:docs/probe-agent/sdk/*
  • 社区:GitHub Issues 与 Discord (链接位于 README)。

以上所有信息均直接取自项目的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目