XERJ: Công cụ tìm kiếm AI tự host cho AI Agent
XERJ cho phép coding agent truy xuất đúng đoạn cần thay vì đọc từng token của cả file. Trong nghiên cứu kiểm soát, nó đạt cùng tỷ lệ giải quyết như grep với 2.7x ít token đầu ra hơn, người dùng thực tế báo cáo khoảng 5x. Đánh đổi là bạn phải chạy và vận hành dịch vụ tự host. Nếu đang trả tiền cho context-window retry trên codebase lớn, đánh đổi này xứng đáng.
XERJ là gì?
XERJ là search engine tự host, đánh chỉ mục code, docs, logs và PDF, truy xuất qua Elasticsearch REST API. Hỗ trợ full-text, semantic và vector search, tự động đánh chỉ mục không cần cấu hình schema, và có MCP server để desktop AI assistant gọi như một tool. Lợi ích cốt lõi là tiết kiệm token: agent truy xuất đoạn trích thay vì đọc cả file.
Vấn đề lãng phí token cho AI agent
WordPress core có khoảng 5.2M token, tương đương 26 cửa sổ context đầy đủ — không khả thi để agent đọc tuần tự. XERJ đánh chỉ mục corpus trước và phục vụ đoạn trích, thay truy vấn kilobyte cho việc đọc file tốn token.
Các tính năng cốt lõi
- ✓Autoindexing không cần cấu hình schema: XERJ tự nhận diện loại file và tạo typed indices, xử lý code qua tree-sitter, định dạng có cấu trúc như CSV và SQLite, và tài liệu bao gồm PDF và DOCX
- ✓Truy xuất tiết kiệm token: agent truy vấn đoạn trích thay vì load cả file, README đo được 2.7x ít token đầu ra hơn grep ở cùng tỷ lệ giải quyết
- ✓Tương thích API Elasticsearch: client hiện có, Kibana, và thư viện chính thức kết nối không cần sửa đổi; bộ test conformance đạt 1366/1369 cases
- ✓MCP server tích hợp trong binary: 13 công cụ expose qua stdio để desktop assistant và function-calling host kết nối XERJ như một tool mà không cần biên dịch riêng
- ✓Hybrid và vector search trong một truy vấn: full-text, semantic và kNN retrieval mà không cần vector database riêng
- ✓Single static binary, không JVM: linux, macos và windows đều có binary prebuilt cho x86_64 và arm64
Ứng dụng thực tế
- •Reference coding: đánh chỉ mục các repo open-source tương tự, truy xuất cách họ giải quyết vấn đề trước khi viết code của mình, rồi trích dẫn những gì mình dùng
- •Codebase Q&A: đánh chỉ mục một repo và trả lời câu hỏi về mechanism với citation dạng file:số_dòng thay vì liệt kê thư mục
- •Với security audit, có thể trỏ vào một target tree và tìm dangerous calls, sink patterns và secrets qua tất cả loại file cùng lúc
- •Agent memory: dùng API /_memory/{namespace} để lưu những gì agent học được và recall theo nghĩa trong session tiếp theo
- •Mixed format trở thành typed indices với aggregations cho log và incident analysis, xử lý log analysis giống như code search
Bắt đầu với XERJ
Chạy script cài đặt: `curl -fsSL https://xerj.org/get | sh` Windows: `irm https://xerj.org/get.ps1 | iex` Binary mặc định nằm ở ~/.local/bin. Thêm vào PATH nếu cần. Với air-gapped deployment, làm theo recipe trong docs.
Điểm mạnh
- ✓Tiết kiệm token được đo lường, không phải ước lượng: README dẫn nghiên cứu kiểm soát với 8 task, 4 ngôn ngữ, và 16 runs mỗi arm dùng số token thực tế từ `claude -p`
- ✓Single binary không JVM, không dependency bên ngoài, prebuilt cho các OS và kiến trúc desktop và server phổ biến
- ✓Autoindexing xử lý nhiều loại file mà không cần định nghĩa schema thủ công, bao gồm code qua tree-sitter parsing để extract symbol chính xác
- ✓Tương thích Elasticsearch API nên tooling, dashboard và client library hiện có hoạt động không cần sửa đổi
- ✓MCP server tích hợp expose 13 công cụ qua stdio để desktop AI assistant dùng XERJ như tool native
- ✓Local reranking qua endpoint /_decide dùng labeled examples của chính bạn mà không gửi data ra server bên ngoài
Những điểm cần lưu ý
- △Chỉ tự host: bạn vận hành và bảo trì service không có option managed hay SLA, và chế độ neural embedding cần đặt ba file model locally trước lần sử dụng đầu tiên
- △Tương thích Elasticsearch có khoảng trống: 3 trong 1369 conformance cases thất bại, scroll có giới hạn cứng về result set trả 400 error nếu vượt quá
- △Reranking với Jev là tùy chọn nhưng gửi text kết quả đến server của TypeSafe khi bật; mặc định off nhưng cần biết trước khi bật
- △p99 read latency giảm performance dưới concurrent write flood, điểm duy nhất thua Elasticsearch 8.13.4 trong benchmark đã công bố
- △Flag --insecure tắt TLS và tất cả auth, biến mọi caller thành superuser; đây là dev-machine flag, không phải production configuration
XERJ vs. Elasticsearch và alternatives
Ai nên dùng XERJ?
Developer chạy AI coding assistant đang theo dõi chi phí token tích lũy từ context-window retry và file read. Security team audit codebase nơi agent cần truy vấn pattern trên tree lớn mà không load mọi file. Team thay thế Elasticsearch cluster tự host mà operational overhead vượt quá lợi ích. Bỏ qua nếu codebase là thư viện public phổ biến mà model của bạn đã có trong context; tiết kiệm token bị giới hạn bởi việc model đã thuộc lòng.
Câu hỏi thường gặp
XERJ được cấp phép Apache-2.0, không có hạn chế sử dụng hay yêu cầu CLA cho việc sử dụng thông thường. Quy trình đóng góp field-report được miễn CLA.
XERJ đánh chỉ mục codebase thành các đoạn trích. Thay vì load cả file vào context, agent truy vấn index và nhận đúng đoạn cần. README dẫn 2.7x ít token đầu ra hơn grep trong nghiên cứu kiểm soát, người dùng thực tế báo cáo khoảng 5x tiết kiệm.
Reference coding nghĩa là đánh chỉ mục các project open-source tương tự, rồi truy xuất cách họ giải quyết vấn đề trước khi viết code của mình. Agent trích dẫn những gì nó dùng. README báo cáo tỷ lệ giải quyết 16/16 trong test với approach này.
Có. XERJ implement Elasticsearch REST API bao gồm indices, documents, bulk, search, aggregations, mappings, kNN, scroll, reindex và _cat endpoints. README nói 1366 trong 1369 conformance cases đạt.
Chỉ khi bạn bật Jev reranking. Cài đặt đó gửi top results đến server của TypeSafe để scoring. XERJ có chế độ local decision dùng labeled examples của chính bạn mà không có transfer data bên ngoài.
XERJ autoindexes code qua tree-sitter, định dạng có cấu trúc như CSV, JSON, JSONL, XML, YAML và SQLite, cộng PDF, DOCX, PPTX, XLSX, EPUB, Jupyter notebook, man page, HTML, email và các log format phổ biến. Unity project được xử lý đặc biệt với record ở cấp GameObject.
Repo liên quan
Muốn nghe thêm một ý kiến về xerj?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về xerj.
