跳到正文
发现
XERJ:面向 AI Agent 的本地搜索引擎
命令行工具开发者工具

XERJ:面向 AI Agent 的本地搜索引擎

本地优先的 Rust 搜索引擎兼 MCP Server,为 AI Agent 索引代码、文档和日志,返回带引用的结果。

admin
发布于 2026-10-28
浏览
5
访问
0
下载
0
版本
v1.0.0-rc.100
平台
Windows、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

XERJ 是一个面向 AI Agent 的本地优先搜索引擎和 MCP Server。它以单个 Rust 二进制文件的形式运行,可以把代码、文档、规格说明、日志、JSONL/CSV、PDF、SQLite 等数据自动索引,提供 BM25 全文检索、向量检索和混合检索,并对外暴露兼容 Elasticsearch 的 API。Claude Code、Cursor 等任何 MCP 客户端都可以直接接入。

它的核心场景是「参考式编程」(reference coding):让 Agent 先把与当前任务最接近的开源仓库克隆并索引,检索出别人如何解决同类问题,再动手写代码,而不是靠 grep 把整个文件读进上下文。README 中给出的实测数据(8 个任务、4 种语言、每种 16 次运行、真实 claude -p token 计数)为:纯凭记忆输出 260,916 token、解决 11/16;grep 驱动输出 26,477 token、解决 16/16;使用 XERJ 输出 9,982 token、解决 16/16。

主要功能

  • 一键索引任意目录:xerj autoindex <folder> 会嗅探每个文件的类型,为识别出的每类数据集自动建立索引,无需写 schema 或配置流水线。
  • 代码感知:通过 tree-sitter 提取符号和行号,而不是把代码当作纯文本。
  • 多种检索方式:BM25 全文、向量和混合检索,并支持 xerj_code_search 等 MCP 工具。
  • 代码定位:xerj def 提供类似 go-to-definition 的能力,返回 file:line 和函数签名。
  • 批量查询:xerj batch-search --input queries.json 或 MCP 的 xerj_batch_search,返回有序结果、引用和逐项错误。
  • Agent 长期记忆:/_memory/{namespace} 命名空间用于存放 Agent 学到的东西,下次会话可按语义召回。
  • 数据地图:xerj autoindex map --html xerj-map.html --redact-paths 生成可离线分享的报告,含数据集数量、符号名、跳过的文件和建议查询。
  • 效果统计:xerj gain 统计它为你节省的实际开销。

可以索引的数据包括代码仓库、日志与故障分析、安全审计目标树、文档与 RAG 语料等。

安装与使用

Linux 等平台:

curl -fsSL https://xerj.org/get | sh

Windows PowerShell:

irm https://xerj.org/get.ps1 | iex

启动并接入:

xerj --insecure --data-dir ~/xerj-data &
xerj init                                        # 把 XERJ 接入 Claude Code/Cursor(MCP + skill)
xerj autoindex ~/my-project
xerj search "how do we rotate the WAL segment"   # 返回排序后的段落和 file:line

也可以让 Agent 按 https://xerj.org/llms.txt 的步骤自行安装、启动服务和索引项目。更多可复用的用法见 https://xerj.org/docs/recipes/。

注意事项

  • --insecure 会关闭 TLS 和 API Key 认证,任何能访问该端口的调用方都等同于超级用户,可读写删除所有索引。它只适合单用户开发机:新节点默认只绑定 127.0.0.1,在其它网卡上明文绑定会拒绝启动,除非显式允许。完整模型见 docs/SECURITY_MODEL.md。
  • 不要把数据目录放在随后会被 autoindex 的目录里面:data/ 不在内置忽略列表中,否则节点会索引自己的存储。
  • 启动时会打印 Data dir、Data source 和 Data status;换用新的数据目录可能让旧节点的索引或账户看起来「消失」,需要改回原来的 --data-dir 或 --config,XERJ 不会自动发现或迁移其它数据目录。
  • 检索带来的收益受模型记忆程度影响:在私有、内部、冷门或训练截止后的代码上效果最好,对模型已经熟悉的流行开源库可能无益甚至有害。
  • 项目以 Apache-2.0 许可发布。

本作品整理自 GitHub 开源项目 xerj-org/xerj,原作者 @xerj-org,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.0.0-rc.100当前版本

    修复 autoindex 概览跟随前缀、命中结果共享 locator 字段;为 xerj_code_search 增加请求超时;修复 musl 发布构建编译;本地回环客户端绕过代理环境变量;新增 Kimi CLI 的 MCP 配置支持与站点文案更新。

评论