Architecture · LikeC4
SciX Agent
Agent-navigable knowledge layer: turns 32.4M papers + 299M citation edges into MCP-navigable structural topology
The whole picture
System landscape
The system in context, then opened up into its containers.
Inside each box
Containers & components
Each part decomposed into the components that implement it. Every box links to its source in the interactive explorer.
Ingest & sync — components
ingestContainerAcquires the corpus from ADS + external sources, normalizes, and loads via COPY with OA/preprint gating
Retrieval stack — hybrid RRF + Qdrant dense lane
retrievalContainerHybrid search: INDUS dense (Qdrant) + BM25/lexical (ts_rank_cd) fused via RRF, optional cross-encoder rerank
Citation-graph engine — components
graphContainerGraph analytics (PageRank/HITS/Leiden) + citation-context intent, claim provenance, and replication inference
Entity & knowledge layer — components
entityContainerLLM + NER extraction, multi-vocabulary concept substrate, and multi-lane entity resolution (~9M entities, 57.7M links)
MCP server — the 15-tool agent surface
mcpContainerAgent interface: 15 tools (search, citation, entity, provenance, graph, session) over stdio + HTTP, with a pinned contract
Visualization layer — components
vizContainerFastAPI JSON API + SSE trace streaming + static dashboards (sankey / heatmap / streamgraph / umap / ego / provenance)
How it runs
Walkthrough flows
Dynamic views — the narrative spine of the system, step by step.
Walkthrough — corpus ingest pipeline
ingestFlowMetadata harvests universally; body text only through the OA/preprint gate (publisher TDM-clause risk). Validate any new index with a ≤50k scratch build + forced-index-scan smoke test before a multi-hour build.
Walkthrough — hybrid search request
searchFlowRRF (k=60) fuses the INDUS dense lane (Qdrant, ADR-013) with the BM25/lexical lane (ts_rank_cd + body GIN); the cross-encoder rerank is an optional final stage.
Walkthrough — claim_blame provenance
claimBlameFlowWalks reverse references over citation_contexts to the earliest non-retracted origin, weighted by citation intent. Structural-citation coverage is sparse, so the hop chain is best-effort over the covered subgraph.
Walkthrough — entity resolution (M13 multi-lane)
entityFlowresolve_entities is the single entry point. The router tries cache, then a 5% local_ner canary, then a bulkheaded live_jit lane, degrading to static-core. local_ner is currently a CPU stub.
Explore it live
The figures above are static exports. The interactive explorer lets you pan, zoom, follow relationships, and jump from any box to the source.