XERJ:面向 AI Agent 的本地搜索引擎
本地优先的 Rust 搜索引擎兼 MCP Server,为 AI Agent 索引代码、文档和日志,返回带引用的结果。
- 浏览
- 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 整理,以原仓库为准。
更新记录
- v1.0.0-rc.100当前版本
修复 autoindex 概览跟随前缀、命中结果共享 locator 字段;为 xerj_code_search 增加请求超时;修复 musl 发布构建编译;本地回环客户端绕过代理环境变量;新增 Kimi CLI 的 MCP 配置支持与站点文案更新。
评论