Project releases
Agentic Search v2 searches your own documents and cites them by hash
No API key, no remote model, no semantic claim it cannot support. The September 10 revival gives Agentic Search deterministic BM25 ranking, SHA-256 citations of the original source text, and an MCP surface with real limits.
GitHub activity: · Published:
What it does
Agentic Search indexes documents you already have and returns ranked passages with a SHA-256 of the original source text attached. That hash is the whole point: a citation you can verify rather than a page number you have to trust.
Ranking is BM25 and the README is careful to call it lexical. There is no claim of semantic understanding, because nothing in the default path produces a learned embedding.
What changed
Commit aa2662d, merged as pull request #3 on September 10, revives a 2024 repository as a bounded v2 runtime: BM25 ranking, hash citations, a loopback HTTP surface with a bearer token and origin rejection, a CLI, an MCP server with a policy resource, and MetaHarness profiles.
An optional hybrid mode uses pinned native RuVector with 256-dimensional lexical feature hashes and reciprocal rank fusion. The README is explicit that these are lexical features, not learned embeddings, and reports hybrid p95 at 0.508 ms against BM25 at 0.0039 ms on a three-document fixture — which is why BM25 remains the default.
Get started
Node 22 or newer:
git clone https://github.com/ruvnet/agentic-search.git
cd agentic-search
npm ci --ignore-scripts
node src/cli.js search "signed federation"
Expected result: ranked passages, each carrying the SHA-256 of the source text it came from.
To run the loopback HTTP service, generate the token rather than inventing one:
SEARCH_TOKEN=$(openssl rand -hex 32) npm start
MCP uses stdio with the repository as the working directory:
{"mcpServers":{"agentic-search":{"command":"node","args":["/absolute/path/agentic-search/src/cli.js","mcp"],"cwd":"/absolute/path/agentic-search"}}}
Only the operator configures corpus paths and origins. Returned content is untrusted data. Validation and benchmark tools require RUV_ALLOW_VALIDATION=1.
Use it today
Practical case: an internal handbook or incident archive that must never leave the machine. Input is your document corpus. Workflow is index, search, then follow each hash back to the source. Output is an answer whose provenance you can check line by line.
Acceptance test: run a search, then alter one character of the source document and search again. The citation hash must change. If it does not, the citation is decorative.
Push it further
Experimental commentary. Hybrid mode is worth enabling on a corpus far larger than the fixture, where the fusion step has something to fuse. Set SEARCH_MODE=hybrid and measure it yourself rather than trusting the three-document numbers.
Limitation: the private temporary native index is removed on a normal exit, but an abrupt kill can leave a temporary directory behind. Falsifiable test: compare hybrid and BM25 results on your own corpus. If fusion does not change the top-ranked passage anywhere, the extra latency is buying nothing.
Read the original on GitHub commit
Commit aa2662d — implement bounded v2 runtime with MCP, CLI and validation gates (#3)