MULTI-AGENT AI / RESEARCH
OmniMind — Autonomous Multi-Agent Research Scientist
Thirteen specialised agents decompose a research question, gather evidence across nine modalities, adjudicate every claim against its sources, and attack their own answer before you see it. Built to say what the evidence does not establish — an unsupported claim is reported as unsupported, not smoothed over.
Public demo
13 — specialised agents orchestrated
The problem
Most 'chat with your PDF' systems retrieve a few passages and ask a model to summarise them, which means the answer's confidence is the model's prose style rather than a property of the evidence. Coordinating thirteen agents without them collapsing into a chain of brittle direct calls — and keeping a single agent's failure from killing the run — is the actual engineering problem.
The approach
Agents never call each other. Each reads typed slots written upstream on a shared blackboard and writes its own, so the dependency graph is explicit, independent steps run concurrently in waves, and any agent is testable alone. Dependencies point inward: the domain layer imports Pydantic and nothing else, and a single container module maps ports (Repository, VectorStore, GraphStore, Cache, LLMProvider) to adapters — so identical application code runs on SQLite + NumPy + NetworkX with zero infrastructure or against PostgreSQL + Qdrant + Neo4j + Redis. Retrieval transforms the query (rewrite, multi-query, HyDE), fuses dense and BM25 by Reciprocal Rank Fusion, then reranks listwise, diversifies by MMR, and compresses. Verification judges each falsifiable claim in isolation against the passages alone, deliberately stopping the surrounding prose from corroborating itself.
The results
Runs stream over SSE with per-agent verdicts and wall-clock latency; answers carry inline [S#] markers bound to real passages and a confidence computed from verification verdicts rather than chosen by the model. Claims come back supported / partially supported / unsupported / contradicted, with cross-source contradictions surfaced side by side; gaps are scored on novelty, feasibility and impact and turned into runnable protocols with named datasets, baselines, ablations and threats to validity. A 300-entity, 206-relation knowledge graph ranks influence by blending PageRank with betweenness — betweenness finds bridges between subfields, which is usually where the interesting work is. The suite runs entirely offline behind a deterministic LLM provider and pins the invisible regressions: RRF asserted scale-invariant, hallucinated [S99] markers rejected, workspace isolation returning 404 rather than 403 so existence is never confirmed.
Stack: Next.js 15, React 19, FastAPI, Pydantic v2, SQLAlchemy 2, Qdrant, Neo4j, NetworkX, gpt-4o, Firebase