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;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目