Inside bio-agent's live PubMed LLM audit chain

Sections
bio-agent dashboard showing an accepted biomedical answer with caveats, audit checks, and claim-level evidence items
A live PubMed run with the LLM stages enabled: planner, extractor, synthesis, verifier, revision, and claim-logic parsing all leave audit state behind.

The most interesting bio-agent path is the expensive one: live PubMed retrieval with every LLM stage switched on. Planner, extractor, synthesis, advisory verifier, revision, and claim-logic parser all get to help. None of them gets to be the final judge.

That is the design I want to show. The model is allowed into the chain at the places where language is genuinely hard: planning a biomedical search, extracting claims from abstracts, drafting a cited answer, parsing claim logic, checking the draft, and revising weak wording. The system then stores the modes, model names, prompt hashes, fallback reasons, trace steps, citation audit, and logic audit beside the answer.

Live PubMed LLM planner LLM extractor LLM synthesis LLM verifier LLM revision LLM claim logic
Design thesis

The LLM chain is useful only because every LLM output becomes a typed, auditable artifact. If a stage fails, falls back, overclaims, or rewrites too aggressively, the trace should say so without asking a reviewer to trust the model's tone.

01 Retrieve

Use live PubMed as the source, but persist manifests and warnings before synthesis.

02 Generate

Let LLM stages plan, extract, draft, verify, revise, and parse logic frames.

03 Audit

Recheck the final claims with citation and deterministic logic audits.

Planner is bounded

The LLM can propose subquestions, but source policy and result caps still apply.

Extractor is typed

Evidence leaves the model as structured claims, entities, limitations, and spans.

Synthesis is audited

The draft is parsed again instead of being trusted because it used a packet.

Logic is checked

LLM-parsed frames feed deterministic entailment rules, not another vibes check.

The hard run starts with real literature

Mock literature is useful for tests, but the run I care about here uses live PubMed and a real provider-backed LLM path. The request shape is intentionally explicit: source="pubmed", use_llm_planner=true, use_llm_extractor=true, use_llm_synthesis=true, use_llm_verifier=true, use_llm_revision=true, and use_llm_claim_logic=true. In the full live run I also turn on execute_support_refute=true and export_logic_facts=true, because I want the system to look for opposing evidence and leave symbolic audit facts behind.

That combination is where ordinary RAG starts to get slippery. There are many places for a model to overreach: it can broaden the search, extract a convenient claim, drop a limitation, draft too strongly, wave through its own answer, or revise away a caveat. So the live path treats each LLM call as a stage with metadata, not as one big hidden prompt.

PubMed search still produces normal retrieval artifacts: source, compiled query, API parameters, result counts, warnings, stored paper IDs, and returned paper IDs. The LLM does not get to smuggle search results into the answer by memory. It receives retrieved evidence through the service contract, and the run keeps enough trace data to replay what happened.

The dashboard screenshot shows the result of that design. The final answer can be accepted with caveats because "accepted" means the displayed claims survived the checks, not that the system is pretending the literature is complete or clinically actionable.

Source

Live PubMed produces retrieval manifests, stored paper IDs, warnings, and abstract coverage before any answer is drafted.

LLM flags

Planner, extractor, synthesis, verifier, revision, and claim-logic parsing are enabled independently.

Trace

Each stage records mode, model, prompt hash, fallback reason, and audit metadata where it applies.

Each model call has a narrow job

The LLM planner does not answer the question. It decomposes the question into retrieval intents and subquestions. The LLM extractor does not summarize the literature. It converts retrieved papers into structured evidence items: claims, methods, entities, limitations, confidence, source scope, and spans. The LLM synthesizer does not get the whole search log. It drafts from the curated packet.

That separation is small, but it changes the failure mode. If retrieval is weak, the packet says so. If extraction falls back, the evidence item says so. If synthesis uses an unknown citation, the post-draft audit catches it. The model is useful at every stage, but each stage has less room to hide.

use_llm_planner

Plans subquestions and retrieval intents, then records planner mode and validation.

use_llm_extractor

Converts PubMed records into structured evidence, not free-form summary text.

use_llm_synthesis

Drafts from packet evidence and must keep supplied citation labels intact.

use_llm_verifier

Produces advisory disagreements, never the final audit verdict.

use_llm_revision

Repairs unsupported or overstrong wording, then triggers another audit.

use_llm_claim_logic

Parses claim and evidence frames for deterministic entailment checks.

The verifier and revision stages are intentionally advisory. The verifier can point out a mismatch between answer and evidence. The revision stage can soften, remove, limit, abstain, or refuse. But if the revised answer changes, the system audits the revised answer again. A nicer rewrite does not get a free pass.

The draft is parsed again after the model writes it

The citation audit path is blunt on purpose. It extracts atomic claims from the answer, reads the cited paper IDs, compares them with the evidence packet, and returns verdicts: supported, partial support, contradicted, insufficient evidence, irrelevant citation, or not cited. If a sentence says something biomedical, it has to carry a citation that can survive that check.

The important part is timing. The model can draft from an evidence packet, but the draft is not trusted because it used the packet. The post-draft audit re-parses the answer, checks the cited IDs, and stores a separate audit object. Retrieval produces evidence, synthesis produces text, audit decides what the text is allowed to claim.

The audit records claim support rate, citation precision, packet citation utilization, unsupported claim rate, overclaim rate, uncertainty calibration, failed claims, and a recommended action. That is why the dashboard can show "claim citation support 100%" and still warn that packet limitations are high. Those metrics answer different questions.

I like this separation because it kills a common trick in generated biomedical writing. The model can cite a real paper and still make a claim the paper does not support. The audit does not reward the presence of brackets. It asks whether the cited evidence actually grounds the claim on the page.

The boring detail that matters:

The same citation audit runs behind the dashboard, the service layer, tests, and release evaluation. It is not a paragraph of prompt instructions. It is a reusable contract.

The LLM parses logic, deterministic rules judge it

Citation audit catches a lot, but biomedical overclaiming often hides in the verb. A paper reports an association; the answer says it causes disease. A mouse result becomes a human claim. A mechanism becomes a treatment recommendation. A moderate trial result turns into a universal no-effect statement. Good lexical overlap will not catch those mistakes.

The claim-logic LLM stage is allowed to parse messy biomedical language into frames: predicate, polarity, modality, population, study design, scope terms, qualifiers, hedging, and source spans. Then the frame has to pass schema validation before deterministic rules run. Parser mode, model, prompt hash, parser warnings, and fallback reason stay attached to the audit trace.

That split is the clever bit. The LLM does semantic parsing, not final judging. Association does not entail causation. Animal and in-vitro evidence do not by themselves entail a human claim. Mechanistic evidence does not entail treatment. Inconclusive evidence cannot support an unhedged positive claim. Suggestive evidence does not support definitive wording. A biomarker association does not establish diagnostic utility.

  • Parser layer: turn answer claims and evidence items into validated logical frames.
  • Rule layer: run deterministic no-entailment checks over predicate, population, modality, scope, and study design.
  • Trace layer: persist parser mode, triggered rules, mismatch axes, entailment score, and fallback warnings.
  • Second audit: rerun citation and logic checks after revision changes the answer.

The part I trust

I want the strongest path to use the model heavily. Live PubMed plus LLM planner, extractor, synthesis, verifier, revision, and claim-logic parsing is more interesting than a cautious deterministic demo.

But the trust comes from the shape of the chain. Each LLM stage has a narrow job. Each important output becomes structured state. Each generated claim is audited after the model writes it. If revision changes the answer, the answer is audited again.

That is the design I care about: not avoiding LLMs, and not letting them float above the workflow either. Use them where language is hard. Keep the final authority in the trace, the citation audit, and the deterministic logic rules.

Revision History · 24

The hard run starts with real literature

Current wording1 consecutive revision

The hard run starts with real literature Mock literature is useful for tests, but the run I care about here uses live PubMed and a real provider-backed LLM path. The request shape is intentionally explicit: source="pubmed" , use_llm_planner=true , use_llm_extractor=true , use_llm_synthesis=true , use_llm_verifier=true

  • 82ede5941ef4bdb47cbc7416a99b7f4aee83d8d2fix: restore authored article section names
Former wording12 consecutive revisions

Chapter I · Live PubMed path The hard run starts with real literature Mock literature is useful for tests, but the run I care about here uses live PubMed and a real provider-backed LLM path. The request shape is intentionally explicit: source="pubmed" , use_llm_planner=true , use_llm_extractor=true , use_llm_synthesis=

  • c1a47e8b232223a3e3f1a70641e4dc255cfcbacafeat: remove public subtitle cues
  • ccecdfe8f112b04746a417c4cf7486174a350466feat: gate article history on measurement
  • c0f8f7488ce83322aa402f8c4b449d5d0f8fc891fix: centralize review callout rhythm
  • c97f88a4f0b5c64fcd31e69ce81cc0f513d07642refactor: unify review article rhythm
  • cbafe29b0f7d842f3126edebd0bebc26146a53defeat: add editorial depth to writing planes
  • 2860e3c8aa59f2fb2251ac6bdcff5f22471fc944feat: turn systems into a shared atlas instrument
  • 704980d41d0a77f95ffb8ef046f8400bde15f3dafix: unify writing routes and social metadata
  • 34230927302d744c5ec74fb0935bc41b91d4be8bperf: defer liquid field and optimize media
  • fa2c98a14ad06a381b3478c33c80118620b34cc7feat: give long reads canonical links, measure, and wayfinding
  • 32d4eb6d0f0fa07bb5f0ba085d745dbe1b625e32style: decardify technical article surfaces
  • 9670957573a49c742fdb3a45fb98f515a001c05eunify design language across site
  • 8f314a227cee5629187485462ddb1b47dccee49arewrite biomedical LLM audit chain post

Each model call has a narrow job

Current wording1 consecutive revision

Each model call has a narrow job The LLM planner does not answer the question. It decomposes the question into retrieval intents and subquestions. The LLM extractor does not summarize the literature. It converts retrieved papers into structured evidence items: claims, methods, entities, limitations, confidence, source

  • 82ede5941ef4bdb47cbc7416a99b7f4aee83d8d2fix: restore authored article section names
Former wording12 consecutive revisions

Chapter II · LLM chain Each model call has a narrow job The LLM planner does not answer the question. It decomposes the question into retrieval intents and subquestions. The LLM extractor does not summarize the literature. It converts retrieved papers into structured evidence items: claims, methods, entities, limitatio

  • c1a47e8b232223a3e3f1a70641e4dc255cfcbacafeat: remove public subtitle cues
  • ccecdfe8f112b04746a417c4cf7486174a350466feat: gate article history on measurement
  • c0f8f7488ce83322aa402f8c4b449d5d0f8fc891fix: centralize review callout rhythm
  • c97f88a4f0b5c64fcd31e69ce81cc0f513d07642refactor: unify review article rhythm
  • cbafe29b0f7d842f3126edebd0bebc26146a53defeat: add editorial depth to writing planes
  • 2860e3c8aa59f2fb2251ac6bdcff5f22471fc944feat: turn systems into a shared atlas instrument
  • 704980d41d0a77f95ffb8ef046f8400bde15f3dafix: unify writing routes and social metadata
  • 34230927302d744c5ec74fb0935bc41b91d4be8bperf: defer liquid field and optimize media
  • fa2c98a14ad06a381b3478c33c80118620b34cc7feat: give long reads canonical links, measure, and wayfinding
  • 32d4eb6d0f0fa07bb5f0ba085d745dbe1b625e32style: decardify technical article surfaces
  • 9670957573a49c742fdb3a45fb98f515a001c05eunify design language across site
  • 8f314a227cee5629187485462ddb1b47dccee49arewrite biomedical LLM audit chain post

The draft is parsed again after the model writes it

Current wording1 consecutive revision

The draft is parsed again after the model writes it The citation audit path is blunt on purpose. It extracts atomic claims from the answer, reads the cited paper IDs, compares them with the evidence packet, and returns verdicts: supported, partial support, contradicted, insufficient evidence, irrelevant citation, or no

  • 82ede5941ef4bdb47cbc7416a99b7f4aee83d8d2fix: restore authored article section names
Former wording12 consecutive revisions

Chapter III · Post-synthesis audit The draft is parsed again after the model writes it The citation audit path is blunt on purpose. It extracts atomic claims from the answer, reads the cited paper IDs, compares them with the evidence packet, and returns verdicts: supported, partial support, contradicted, insufficient e

  • c1a47e8b232223a3e3f1a70641e4dc255cfcbacafeat: remove public subtitle cues
  • ccecdfe8f112b04746a417c4cf7486174a350466feat: gate article history on measurement
  • c0f8f7488ce83322aa402f8c4b449d5d0f8fc891fix: centralize review callout rhythm
  • c97f88a4f0b5c64fcd31e69ce81cc0f513d07642refactor: unify review article rhythm
  • cbafe29b0f7d842f3126edebd0bebc26146a53defeat: add editorial depth to writing planes
  • 2860e3c8aa59f2fb2251ac6bdcff5f22471fc944feat: turn systems into a shared atlas instrument
  • 704980d41d0a77f95ffb8ef046f8400bde15f3dafix: unify writing routes and social metadata
  • 34230927302d744c5ec74fb0935bc41b91d4be8bperf: defer liquid field and optimize media
  • fa2c98a14ad06a381b3478c33c80118620b34cc7feat: give long reads canonical links, measure, and wayfinding
  • 32d4eb6d0f0fa07bb5f0ba085d745dbe1b625e32style: decardify technical article surfaces
  • 9670957573a49c742fdb3a45fb98f515a001c05eunify design language across site
  • 8f314a227cee5629187485462ddb1b47dccee49arewrite biomedical LLM audit chain post

The LLM parses logic, deterministic rules judge it

Current wording1 consecutive revision

The LLM parses logic, deterministic rules judge it Citation audit catches a lot, but biomedical overclaiming often hides in the verb. A paper reports an association; the answer says it causes disease. A mouse result becomes a human claim. A mechanism becomes a treatment recommendation. A moderate trial result turns int

  • 82ede5941ef4bdb47cbc7416a99b7f4aee83d8d2fix: restore authored article section names
Former wording12 consecutive revisions

Chapter IV · Claim-logic parser The LLM parses logic, deterministic rules judge it Citation audit catches a lot, but biomedical overclaiming often hides in the verb. A paper reports an association; the answer says it causes disease. A mouse result becomes a human claim. A mechanism becomes a treatment recommendation. A

  • c1a47e8b232223a3e3f1a70641e4dc255cfcbacafeat: remove public subtitle cues
  • ccecdfe8f112b04746a417c4cf7486174a350466feat: gate article history on measurement
  • c0f8f7488ce83322aa402f8c4b449d5d0f8fc891fix: centralize review callout rhythm
  • c97f88a4f0b5c64fcd31e69ce81cc0f513d07642refactor: unify review article rhythm
  • cbafe29b0f7d842f3126edebd0bebc26146a53defeat: add editorial depth to writing planes
  • 2860e3c8aa59f2fb2251ac6bdcff5f22471fc944feat: turn systems into a shared atlas instrument
  • 704980d41d0a77f95ffb8ef046f8400bde15f3dafix: unify writing routes and social metadata
  • 34230927302d744c5ec74fb0935bc41b91d4be8bperf: defer liquid field and optimize media
  • fa2c98a14ad06a381b3478c33c80118620b34cc7feat: give long reads canonical links, measure, and wayfinding
  • 32d4eb6d0f0fa07bb5f0ba085d745dbe1b625e32style: decardify technical article surfaces
  • 9670957573a49c742fdb3a45fb98f515a001c05eunify design language across site
  • 8f314a227cee5629187485462ddb1b47dccee49arewrite biomedical LLM audit chain post

Article-level provenance

No configured section wording recorded for these repository revisions.

  • 4bdf9ecc4777e4a84a6614de780fd1442bf8c14afix: remove project card copy
  • cc6bcc67ec59d6dffed438ac6a4a09c714e25156fix: restore article reader colors
  • 5887e9b76d7c94dbfdd4eb716034e82f0401944drefactor: move technical articles into reading shell
  • a33c9d1f34362dbaa81a1714ac5b30f72cec7128fix article layout consistency
  • d3e0488873ebe1b7546a79e3f89429fce990db5ffix blog body heading consistency
  • 2075c1725fffc35775d6574b3d7df9479094d6b7fix blog title weight consistency
  • 1aa9661d1fd171762c56ca62dfaa1173896fc5afdocs: humanize biomedical articles
  • 4ea9d527795b17ab170355255130dcf7bb5f7ff9style: refine liquid glass design system
  • 6e9f8c8543c4c341022e49d774a51a5e05f5cbf0docs: deepen biomedical evidence article
  • d6fcc4f09eda5d8309b771cb3b4f706390ebe3cadocs: refresh biomedical evidence article
  • d6f29091771136ceb29e3d7f7d06806541d9c2e4feat: add biomedical evidence analysis