Khoj
An open-source real-estate due-diligence agent that uses a graph database and knowledge graph to model entity relationships, detecting hidden risks through path analysis and generating explainable risk scores.
Timeline (last 90 days)
Khoj's benchmark injects 200 new projects into a copy of the graph, half hiding one of four risk patterns and half being clean controls with traps; the ablation without the two structural rules found almost all risks but mislabeled 93% of the clean projects.
For the Skyvista Altura project in the demo data, Khoj computed 10 paths, summed to K=1.87, and a risk score of 84.6/100.
Khoj's first version of the risk scoring correctly identified Skyvista Altura but also scored median projects at 94, because contractors and land aggregators acting as hub nodes caused path noise.
Khoj fixed the overly high median with two structural rules: a path cannot pass through another project; a path uses at most one land-ownership edge. After the fix, the median dropped to 28, and clean projects scored 0.
Khoj uses FalkorDB's built-in graph algorithms: it runs weakly connected components on the director-company graph to find hidden cliques, and uses betweenness centrality to identify key directors that bridge different companies.
FalkorDB's betweenness centrality algorithm follows edge direction, and in Khoj's initial model the edge direction was Person→Company, causing all betweenness centrality scores to return zero; this was fixed by adding a reverse HAS_DIRECTOR edge for each director relationship.
Khoj's Agent does not write Cypher queries directly; instead, it obtains eight hand-written, parameterized, read-only tools via MCP, and the model is only responsible for choosing tools and filling in parameters.
Each of Khoj's query results is labeled with an answer type: ANSWERED_WITH_PATH (a relationship exists in the graph), ANSWERED_FROM_MEMORY (found earlier), NOT_IN_GRAPH (no known connection but not equivalent to safe), UNKNOWN_ENTITY (the name cannot be resolved, so no query is executed).
Khoj adopts an "Agent proposes, code adjudicates" architecture: a deterministic verifier recomputes scores from the graph before a finding is saved, checks conclusions against fixed rules, and rejects any evidence that mentions an entity the tools never returned, with numbers the model produces itself always replaced by computed values.
The Khoj system contains two Agents: the Concierge converses with the user and owns the memory graph, and the Investigator owns the market graph; the two hand off through the graph itself — the Concierge creates a Case node, the Investigator writes a Finding node, and the Concierge reads it back.
16 more timeline events
All Facts (20)
Khoj's benchmark injects 200 new projects into a copy of the graph, half hiding one of four risk patterns and half being clean controls with traps; the ablation without the two structural rules found almost all risks but mislabeled 93% of the clean projects.
50%UnverifiedKhoj's first version of the risk scoring correctly identified Skyvista Altura but also scored median projects at 94, because contractors and land aggregators acting as hub nodes caused path noise.
50%UnverifiedKhoj fixed the overly high median with two structural rules: a path cannot pass through another project; a path uses at most one land-ownership edge. After the fix, the median dropped to 28, and clean projects scored 0.
50%UnverifiedKhoj uses FalkorDB's built-in graph algorithms: it runs weakly connected components on the director-company graph to find hidden cliques, and uses betweenness centrality to identify key directors that bridge different companies.
50%UnverifiedFalkorDB's betweenness centrality algorithm follows edge direction, and in Khoj's initial model the edge direction was Person→Company, causing all betweenness centrality scores to return zero; this was fixed by adding a reverse HAS_DIRECTOR edge for each director relationship.
50%UnverifiedKhoj's Agent does not write Cypher queries directly; instead, it obtains eight hand-written, parameterized, read-only tools via MCP, and the model is only responsible for choosing tools and filling in parameters.
50%UnverifiedEach of Khoj's query results is labeled with an answer type: ANSWERED_WITH_PATH (a relationship exists in the graph), ANSWERED_FROM_MEMORY (found earlier), NOT_IN_GRAPH (no known connection but not equivalent to safe), UNKNOWN_ENTITY (the name cannot be resolved, so no query is executed).
50%UnverifiedKhoj adopts an "Agent proposes, code adjudicates" architecture: a deterministic verifier recomputes scores from the graph before a finding is saved, checks conclusions against fixed rules, and rejects any evidence that mentions an entity the tools never returned, with numbers the model produces itself always replaced by computed values.
50%UnverifiedThe Khoj system contains two Agents: the Concierge converses with the user and owns the memory graph, and the Investigator owns the market graph; the two hand off through the graph itself — the Concierge creates a Case node, the Investigator writes a Finding node, and the Concierge reads it back.
50%UnverifiedKhoj uses FalkorDB's multi-graph feature to maintain a separate memory graph for each homebuyer; the memory graph stores preferences and their history (changing the budget creates a new node that SUPERSEDES the old node), standing rules, sessions, candidate lists, and case files.
50%UnverifiedOn 200 test projects that appeared clean on the surface but actually hid risks, the method that only looks at the project's own records had a detection rate of 0%, while Khoj's graph method reached a detection rate of 81% with zero false positives.
50%UnverifiedKhoj is an open-source project that models the entity relationships in RERA filings, company records, court records, and land records as a graph, and uses graph algorithms to compute risk scores for real estate projects along relationship paths.
50%UnverifiedKhoj's knowledge graph modeling includes the following relationships: a developer brand CONTROLs a company, and an individual is DIRECTOR_OF a company; a company DEVELOPS a project, a project is BUILT_ON a plot, and a plot was PREVIOUSLY_OWNED_BY someone; a contractor BUILDS a project, and approvals hang under the project; complaints are AGAINST a project, and court cases INVOLVE land, companies, individuals, or contractors.
50%UnverifiedKhoj tags any entity that alone constitutes a warning signal (such as a stalled project, a bankrupt company, pending litigation, or a B-khata plot) with a :RedFlag label, along with severity and reason.
50%UnverifiedKhoj's risk score formula is: each path contributes the severity of its label, decaying by distance and the strength of each relationship segment, aggregated into a score similar to Katz centrality, K(p) = Σ over paths P: severity(f) · 0.6^(hops−1) · Π edge weights, and finally score = 100 · (1 − e^(−K)).
50%UnverifiedFor the Skyvista Altura project in the demo data, Khoj computed 10 paths, summed to K=1.87, and a risk score of 84.6/100.
50%UnverifiedKhoj is written in Python, is fully open-source, and can be deployed on users' own machines.
50%UnverifiedKhoj can both retrieve real-time information from online content and provide retrieval-based answers against imported local documents.
50%UnverifiedKhoj supports users in building custom AI agents and supports scheduled automations.
50%UnverifiedKhoj offers deep research capabilities, enabling multi-step information gathering and synthesis around a topic.
50%