Project

SciX Agent

An agentic research assistant over the NASA SciX / ADS corpus, bridging AI agents with scholarly search infrastructure.

PythonAgentsMCPRetrieval

SciX Agent connects agentic workflows to the NASA Science Explorer corpus, letting an agent search, read, and reason over the scholarly literature the way a researcher would. Behind the agent sits a retrieval platform: 32.4 million papers spanning 1800–2026, 299 million citation edges at 99.6% resolution, full-corpus 768-dimensional embeddings, and 14.9 million full-text bodies, all on one workstation with PostgreSQL as the authoritative substrate for papers, metadata, both BM25 lanes, the citation graph, and the extracted-entity graph. The dense-vector lane began in that same Postgres via pgvector, on the bet that one database with transactional joins beats a separate vector engine; running 32 million vectors well past the comfort zone of an HNSW index eventually moved the INDUS dense lane onto Qdrant (ADR-013, June 2026), while Postgres stays the source of truth for everything else.

A query fans out across parallel lanes (lexical over titles and abstracts, BM25 over full-text bodies, dense retrieval over the embeddings) and fuses results with reciprocal rank fusion. Agents reach all of it through an MCP server capped at 15 tools, because a premortem flagged that much past that point agent tool-selection accuracy degrades; a 28-tool surface was consolidated down with mode multiplexing, and the old names survive as deprecated aliases.

Negative results are kept as evidence rather than discarded. Binary quantization would halve storage but measured a greater-than-40% nDCG@10 loss on scientific text, so it is banned without an explicit recall gate. On the 50-query citation-grounded eval, no reranker beat the RRF baseline by a statistically significant margin: MiniLM led at +0.05 nDCG@10 (not significant) while the NASA domain ranker regressed, so reranking ships off by default pending a stronger, judge-validated gold set. The gold set itself (citation-based ground truth, team-authored queries) is the system’s weakest link, and a judge-validation program anchored to human TREC relevance judgments exists to replace it. Operational lessons are encoded the same way: an UNLOGGED-table write optimization once cost 32 million embeddings to a routine Postgres restart, and every migration since carries explicit persistence assertions.

Current work centers on latency attribution, now partly measured: vector retrieval is the largest single share of tool-side wall clock (about 79% at the median) but only around 370 ms in absolute terms, with LLM synthesis, reranking, and citation walks dominating the full agent loop. The open question is whether a faster index moves that loop at all, or whether the leverage is in better retrieval lanes.

← All projects