VeriScite runs as a graph of steps in LangGraph. Most of the graph is a fixed pipeline. One part, the disagreement-resolution step, is a genuine agent: a model that chooses its own next action on the fly.
These are the same six steps below. Click one to jump to it.
A language model reads the pasted body text and bibliography together. For each claim attributed to a citation marker, it finds the full bibliography entry that marker points to. Any claim whose citation cannot be resolved in the reference list gets skipped.
The bibliography entry becomes a search query for Semantic Scholar. A raw reference string makes a poor keyword search, so the query is built from the first author, the year, and the title words that follow. If no abstract turns up, the claim is simply marked unresolved.
The claim and the retrieved evidence are checked twice, independently. A fine-tuned DeBERTa-v3 model, carried over from clAIm, gives a three-way verdict: support, contradict, or not enough information. A separate zero-shot language model is asked the same question, blind to the first model's answer. Agreement between the two settles the result.
On disagreement, a third model takes over with three tools: retry the search, ask for a blind second opinion, or conclude. It decides which to use, in what order, up to three actions. "Not enough information" counts as a legitimate answer.
For any support or contradict verdict, the decisive sentence is passed through Integrated Gradients, again reused from clAIm, producing a token-level attribution showing which words moved the model toward its answer.
Results across every claim are aggregated: how many verifiers agreed at the outset, how many needed the agent, and how many actions the agent took on average when called in.
A common distinction in agent design separates a workflow, where an LLM's output feeds into fixed code paths chosen in advance, from an agent, where the model itself chooses its next action and decides when it is done. Most of VeriScite's pipeline is a workflow: the steps run in a fixed order. The disagreement step is different. The planner model gets three tools and no instructions about which to use or in what sequence. It reads the situation and decides.
Search again with a new, self-written query, in case the first retrieved passage missed the relevant part of the source.
Ask a language model to judge the claim against the evidence blind, with no knowledge of the earlier disagreement, to avoid anchoring on either prior answer.
End the investigation with a final label, a confidence, and a written justification. If three actions pass without a conclusion, the agent is asked once more to conclude on what it has.
Below is a real disagreement from testing: two verifiers split on whether transformer models need more labeled data than recurrent architectures. Call the agent's tools in whatever order you like, up to three actions, then conclude. The scripted responses below are drawn from the actual run.
"Transformer models require substantially more labeled training data than recurrent architectures to reach comparable accuracy."
The two disagree. It's the planner's turn.
The demo does not wait for the pipeline to finish before showing a result. Each step, and each tool call inside the agent's reasoning, reaches the browser the moment it happens, over a live connection. The Demo page shows the agent working, in the order it actually worked.