ajainvivek
Check out the docs: https://docs.ballet.dev
We ran a small benchmark on a real-world insurance corpus: • 4 policy documents • ~1,900 hierarchical nodes • 100 queries across 6 complexity tiers
Comparing ReasonDB to a typical RAG pipeline (LangChain / LlamaIndex defaults):
Metric ReasonDB Typical RAG Pass rate 100% (12/12) 55–70% Context recall 90% avg 60–75% Median latency 6.1 s 15–45 s
The key difference is that ReasonDB performs BM25 candidate selection + LLM-guided traversal, rather than flat chunk similarity.
⸻
Example reasoning case
One query asked:
“What conditions define recurrent disability?”
The answer was split across two sections: • disability definition clause • policy schedule clause
Flat chunk retrieval returned only the first section.
ReasonDB followed the cross-reference extracted during ingestion, which raised recall from 67% → 100%.
Show HN: Vector databases are the wrong primitive for AI agents
https://github.com/brainfish-ai/ReasonDB
Hi HN,We built ReasonDB because vector databases break down when agents need to reason over structured relationships.ReasonDB combines: • knowledge graphs • reasoning queries • LLM-friendly APIsExample:agent.reason("Why did the refund fail?")which traces relationships across events, policies and logs.Repo: https://github.com/brainfish-ai/ReasonDBWould love feedback.
Curious, did you evaluate any structure-aware retrieval approaches on this benchmark, or purely embedding-based?
ReasonDB takes a different approach. Instead of shredding documents into flat chunks and hoping cosine similarity finds the answer, it preserves document hierarchy as a tree and lets the LLM navigate through it – like a human scanning a table of contents and drilling into the right section.
How it works: - Documents are ingested as hierarchical trees (headings, sections, subsections) with LLM-generated summaries at each node - When you query, a 4-phase pipeline kicks in: BM25 narrows candidates → tree-grep filters by structure → LLM ranks by summary → parallel beam-search traversal extracts answers - The LLM visits ~25 nodes out of millions instead of searching a flat vector space
It also has RQL, a SQL-like query language with SEARCH (BM25) and REASON (LLM) clauses:
SELECT * FROM contracts REASON 'What are the termination conditions?'
Built in Rust (redb, tantivy, axum, tokio). Single binary. ACID-compliant. Supports OpenAI, Anthropic, Gemini, Cohere and Open Source Models. Runs with one Docker command.GitHub Link: https://github.com/reasondb/reasondb
Would love feedback and criticism – especially from anyone who's fought the same RAG quality battles.