CASE STUDY

Academic DeepSearch

Abundance: a deep-research application that turns a complex question into an evidence-backed report – with counterevidence, calibrated confidence and citations that may only point at admitted sources.

Role
Concept, architecture and development
Status
Open source (MIT) on GitHub, release v1.0.0
Abundance start screen with the history of previous research runs, model selection and the input field for a new question
Screenshot of the application.

STARTING POINT

Problem

Deep-research tools sound convincing, but the chain from claim to source breaks quickly: the model decides for itself which tools run, cites pages nobody ever checked and reports a confidence nobody can recompute. For academic questions that is useless – every sentence has to trace back to a piece of evidence, and the counterevidence belongs in the report too.

HOW IT WORKS

Solution & architecture

Research

The graph decides, not the model

A research run is a deterministic LangGraph workflow with eight stages. The model plans falsifiable evidence questions and synthesises at the end, but which capability runs when is fixed by the graph. Evidence is collected in parallel and read-only; source admission, deduplication and quote binding are code, not prompts. Three modes set hard budgets of 9, 30 or 60 evidence records per run.

  • 8 stages, from scoping to publication
  • Quick, Balanced, Thorough: at most 9, 30 or 60 evidence records
  • Retrieved text is treated as untrusted data
Schematic view of the research flow from inquiry through parallel evidence search and admission to the report, with the three budget modes

Verification

Every claim has to point at its evidence

Citations in the report may only reference admitted evidence – the code enforces that. On top, a pinned DeepSeek V4 Flash profile checks in shadow mode whether the bound evidence supports a claim, contradicts it or is insufficient. Such a model is only promoted through a reproducible gate: three trials on a versioned dataset of twelve cases on which the old citation check passed 0 of 12.

  • Verdicts supports, contradicts, insufficient – each with a verbatim quote
  • 3 trials: 11/12, 10/12 and 11/12 passed
  • Shadow mode: measures the report but cannot rewrite it
Schematic view of a claim with its bound quote, the three verdicts and the three-trial promotion gate

ARCHITECTURE

The path through the system

Inquiry

a complex question

Plan

falsifiable evidence questions

Evidence

parallel, read-only search (Tavily)

Admission

URL policy and dedup enforced in code

Synthesis

structured claims with evidence IDs

Verification & report

quote binding, deterministic rendering

  • Streaming

    SSE events with a stable contract; a cancel propagates from the browser into the graph

  • Persistence

    PostgreSQL for runs, reports, metrics and LangGraph checkpoints

Quality gates: CI with tests, mypy, ruff and pip-audit; an eval harness with 30 reference cases and a three-trial promotion gate for claim verification

From the question to an evidence-backed report

Results

deterministic stages in the LangGraph workflow
8deterministic stages in the LangGraph workflow
evidence records per run, hard-budgeted by mode
up to 60evidence records per run, hard-budgeted by mode
mean claim-verification pass rate across 3 trials (12 cases)
89 %mean claim-verification pass rate across 3 trials (12 cases)
pass rate of the previous citation check on the same dataset
0/12pass rate of the previous citation check on the same dataset

EVIDENCE & SCOPE

What is evidenced — and where the claim ends

These four fields separate my contribution, the project context, the measurement basis and the limits of the results.

My contribution
Concept, architecture and development of the eight-stage LangGraph workflow, source admission, quote binding, persistence, streaming interface and evaluation gate.
Team & context
The project is public on GitHub as an MIT-licensed v1.0.0 release. The case study does not quantify other team contributions and does not infer sole authorship from its open-source status.
Measurement basis
The promotion gate uses twelve versioned claim-verification cases and three trials with 11/12, 10/12 and 11/12 passes, a mean of 89 %. The previous citation check scored 0/12 on the same dataset; the complete evaluation harness contains 30 reference cases.
Limitations
The 89 % applies to twelve cases and one pinned model profile, not arbitrary research questions or models. Verification runs in shadow mode: it measures the report but cannot rewrite it.

BUILT WITH

Tech stack

  • Python
  • FastAPI
  • LangGraph
  • LangChain
  • OpenRouter
  • Tavily
  • PostgreSQL
  • Next.js
  • React
  • Upstash Redis
  • Docker
  • GitHub Actions

Does this match what you have in mind?

I build systems that are meant to run in production, not just to demo. If that matches what you have in mind, get in touch.

All case studies