The Ecosystem · 2026
The Saurus
A synthesis you cannot follow back to its sources is just confident prose, so every sentence the machine writes must carry the address of its evidence.
A literature-review pipeline that devours a corpus of scientific PDFs and hands back a review where every claim carries its address, paper, page and paragraph, plus a chat that only knows what the pipeline actually extracted.
The Saurus papers view, one uploaded paper expanded into its extracted themes as colored chips and fifty-five claims, each claim carrying its address in the source, page and paragraph.
The load
A model will summarize anything. That is the problem.
Reviewing a corpus of papers is exactly the work a language model seems built for, and the naive version of it fails in a specific, dangerous way: the output reads perfectly and cannot be audited. The failure is not bad prose. It is prose whose relationship to the sources is unknowable.
-
The confident summary
Hand a model twelve papers and ask for a review, and a fluent one comes back. Which paper backed which sentence, whether two papers actually disagreed, whether a finding was one study or five: none of it is recoverable from the text. Reading it means trusting it.
-
Citation by vibes
Asked to cite, a model produces things that look like citations: plausible authors, real journals, page numbers with the right typography. Some point at papers not in the corpus, some at nothing at all. A bibliography is decoration unless every reference can be walked.
-
The context window is not a corpus
Stuffing the PDFs into one giant prompt fails quietly: content is truncated without notice, material in the middle is systematically underweighted, and the whole reading happens in one pass with no intermediate artifacts anyone can inspect.
-
The chat that knows too much
A typical assistant over documents blends what it retrieved with what the model already believed. The answer sounds grounded either way, and there is no way to ask which parts came from your papers and which from the model's general opinions about the field.
-
One crash, the whole bill again
A multi-stage run over a real corpus is minutes of LLM calls with real cost. Naive orchestration ties its fate to one process: a crash at the last stage throws away every finished one, and the retry pays for all of it a second time.
-
Quality asserted, never measured
Most LLM pipelines ship with no evaluation at all: quality claims rest on a handful of cherry-picked runs, and every prompt edit is a blind change to the system's behavior. Whatever the demo showed, nobody can say whether yesterday's tweak made it worse.
The difference that matters
The reframe
The unit of synthesis is the claim, and a claim has an address.
The Saurus never asks a model to read a pile and write an essay. It decomposes the work into stages whose outputs are inspectable artifacts: claims extracted per paper with page and paragraph, themes deduplicated across the corpus with authorship kept, a review assembled from that structure with the addresses carried through into the prose.
The assistant only knows what the pipeline extracted. What was not extracted is not said.
The second reframe: hallucination is an interface problem
The usual framing treats hallucination as a model defect to be prompted away. The design here treats it as an interface defect: a system that lets ungrounded text reach the reader unlabeled has already failed, whatever the model did. So the pipeline's job is to make the grounded path the only path, extraction before synthesis, addresses carried through, and a reading side that is structurally unable to reach past the store.
That is why the assistant is deliberately poorer than the model behind it. It could answer from general knowledge; it is not allowed to. Six typed tools over the extracted claims are its entire world, which is precisely what makes its answers worth something.
What the system carries
Four stages of writing, one narrow door for reading
Each piece exists to keep the chain of custody intact: from a page in a PDF to a sentence in the review to an answer in the chat, without any link where the evidence goes anonymous.
Extraction, per paper
One agent reads one paper and emits themes and claims as structured output, each claim stamped with its page and paragraph. Papers run in parallel lanes, stateless, throttled by a shared semaphore, so the corpus scales without the agents ever sharing a context.
paper analyzer
Deduplication with authorship
The same finding phrased six ways across six papers is one theme, not six. The merge is semantic, and it keeps the ledger: which papers contributed to the theme survives the merge, because attribution lost here is unrecoverable later.
theme dedup
Synthesis that carries addresses
The review is assembled from the extracted structure, themes reviewed in batches, then aggregated into cohesive prose whose inline citations resolve to paper, page and paragraph. The style of a literature review, with the audit trail of a ledger.
reviewer · aggregator
The narrow-door assistant
An embedded chat answers questions about the corpus through six typed tools over the claim store, and through nothing else. It cites what it reads. Ask it something the pipeline never extracted and the honest answer is that it does not know.
agno team · mcp
The evaluation gate
Faithfulness and relevance are scored by RAGAS and DeepEval against reference cases, traces are scored automatically in Langfuse, and prompt changes run as regression tests: the same fixed suite, before and after, with the diff as the verdict.
ragas · deepeval · langfuse
The journal
Pipeline stages run as durable steps whose results are journaled by Restate. A crash mid-run replays the journal, returns the finished stages from the record, and re-executes only from the point of failure. The retry costs the failure, not the run.
restate
The walk
One corpus, from drop to review, on screen
The same flow the diagrams argue, photographed from the running app: papers go in, the pipeline narrates itself stage by stage, and what comes out is a review whose every bracket can be walked back to a page.
1 · Feed it your papers
2 · Watch it narrate itself
3 · Read the review, hold the receipts
4 · Ask, and it cites what it read
Architecture
One side writes, one side reads, and the store is the whole vocabulary
Two decisions carry the design. The first is the write/read split: the pipeline is the only writer of the claim store, the assistant its only reader, so grounding is a property of the wiring rather than a promise in a prompt. The second is that execution is durable and observable end to end, because a pipeline of paid LLM calls that cannot resume or be traced is a demo, not a system.
The write/read split
The separation is what makes both halves honest. The writing side can be aggressive, parallel agents, semantic merging, batch synthesis, because everything it produces is a file someone can open: claims, themes and reviews land as YAML, events as NDJSON. The reading side can be trusted precisely because it is weak: a federated chat panel, lazy-loaded into the app, whose backend reaches the corpus only through the MCP server's typed tools over the vector store.
The same discipline extends downward. Every LLM call is traced in Langfuse with cost and latency attached, and two standalone test clients exercise the full stack over HTTP, WebSocket and Socket.IO, so a deployment can be verified end to end from a terminal, by a person or by a coding agent.
One corpus, end to end
The stage boundaries are not just checkpoints, they are the places where the system's claims become checkable. After analysis you can read exactly what was extracted from each paper; after deduplication, exactly which papers back each theme; after aggregation, exactly which claims back each sentence. The pipeline's honesty is the sum of its intermediate artifacts.
Durability comes from Restate journaling each stage as a workflow step. The choice is pragmatic rather than ideological: a run over a real corpus is minutes of metered calls, and the difference between resuming and restarting is the difference between an error and a bill.
The substrate
Five services in one repository: the React host app, the federated chat UI, the FastAPI pipeline, the Socket.IO chat backend, and the MCP server, with Qdrant and Langfuse alongside. State is YAML on disk, events are NDJSON, and the vector store is a graceful side-effect: the pipeline produces its review even with Qdrant switched off.
The whole surface is covered the way a production system would be, 309 unit tests across the four backend services, evaluation suites, tracing, Terraform for AWS and a Helm chart for Kubernetes, because the point of the piece is precisely that coverage. It is a demonstration project, and what it demonstrates is the full checklist.
- Appupload, live pipeline trace, the review
- Assistantthe narrow-door chat, federated into the app
- Pipelinefour agents, durable stages, structured output
- Papers MCPsix typed tools over the claim store
- EvalsRAGAS, DeepEval, prompt regression, Langfuse scoring
What survives a prompt edit
Quality is a number with a history, not an impression
The part of the system that outlives any single run is the evaluation harness. Reference cases, LLM judges, automated scoring on traces: together they turn the vaguest sentence in AI engineering, this prompt seems better, into a measured comparison on a fixed suite.
The Saurus is the studio’s demonstration piece for one discipline: keeping the chain of custody on machine-written claims. It is a public repository built to cover the whole production surface, multi-agent orchestration, structured extraction, durable execution, evaluation suites, observability, infrastructure definitions, and it is exactly what it says it is: a demonstration, not a system serving real traffic. The honesty cuts both ways. The coverage is real, 309 unit tests, RAGAS and DeepEval suites, Langfuse tracing, Terraform and Helm, and so is the label.
The argument it makes lands beyond literature review. Any system that lets a model synthesize over private documents faces the same three questions: can each output sentence be walked back to evidence, can the conversational layer be structurally prevented from knowing too much, and can a prompt change be shipped with a number attached instead of a feeling. The Saurus answers all three with architecture, extraction before synthesis, a write/read split with typed tools as the only door, and an evaluation gate in front of every behavioral change.
The name is the joke it appears to be, a thesaurus crossed with a dinosaur that eats papers, and the repository’s own tagline is “feed The Saurus your papers.” The piece takes its discipline seriously and itself less so, which is roughly the studio’s preferred ratio.