SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2608.13786 · 2026

Do AI chatbots find what experts would? Effects of model, user role, and sample size on study retrieval for medical questions

Qiao Jin, Zhiyong Lu, Qingfang Liu, Joe Menke, Thorsten Kahnt

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 31 functions out of this paper's own repositories and ran 25 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
QingfangLiu/llm-evidence-retrieval-bias canonical 25 of 31
FunctionStatusWhere it lives
calculate_mann_whitney_test Ran QingfangLiu/llm-evidence-retrieval-bias/demo/overlap_metrics.py
pointer only (licence: NONE) · get_code("2d0de3f9a753d906")
calculate_multi_set_jaccard Ran QingfangLiu/llm-evidence-retrieval-bias/demo/overlap_metrics.py
pointer only (licence: NONE) · get_code("0843b6bce84576ef")
calculate_replicate_consistency Ran QingfangLiu/llm-evidence-retrieval-bias/demo/overlap_metrics.py
pointer only (licence: NONE) · get_code("68c30d932a7949aa")
cell Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/reference_indexing_schema.py
pointer only (licence: NONE) · get_code("25480657033da448")
citation_identity_note Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD000510/analyze_cd000510_roles.py
pointer only (licence: NONE) · get_code("a15ecee30950237e")
collect_review_pdfs Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/cochrane_review_source.py
pointer only (licence: NONE) · get_code("d5c2b8646741a30a")
compact Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/build_reference_indexing_from_cochrane_ris.py
pointer only (licence: NONE) · get_code("cd382468e750cf17")
compact Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/reference_indexing_schema.py
pointer only (licence: NONE) · get_code("744acc2017757c05")
dimension_summaries Ran QingfangLiu/llm-evidence-retrieval-bias/figures/make_paper_figures.py
pointer only (licence: NONE) · get_code("31ff80b0e0d7f9b7")
extract_claude_list Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD001452/analyze_cd001452_roles.py
pointer only (licence: NONE) · get_code("a504f8f552b1365c")
extract_terminal_list Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD007654/analyze_cd007654_roles.py
pointer only (licence: NONE) · get_code("274aeac953e50576")
is_review_pdf_path Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/cochrane_review_source.py
pointer only (licence: NONE) · get_code("c667163c27e05788")
last_heading_index Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD001452/analyze_cd001452_roles.py
pointer only (licence: NONE) · get_code("9c02250cd6cbdd4a")
load_matches Ran QingfangLiu/llm-evidence-retrieval-bias/demo/build_demo.py
pointer only (licence: NONE) · get_code("f1b49bfb18520d40")
load_model_metadata Ran QingfangLiu/llm-evidence-retrieval-bias/demo/build_demo.py
pointer only (licence: NONE) · get_code("2effd1f8b982f74e")
load_role_labels Ran QingfangLiu/llm-evidence-retrieval-bias/demo/build_demo.py
pointer only (licence: NONE) · get_code("62eb804824fdba32")
normalize Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD000510/analyze_cd000510_roles.py
pointer only (licence: NONE) · get_code("4ebd7f5545fabcde")
normalize Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD005354/analyze_cd005354_roles.py
pointer only (licence: NONE) · get_code("d6054082d8efea8b")
normalize Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD007654/analyze_cd007654_roles.py
pointer only (licence: NONE) · get_code("e9816484b1b198c7")
normalize_text Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/build_reference_indexing_from_cochrane_ris.py
pointer only (licence: NONE) · get_code("20c568d253ca23b7")
resolve_candidate Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD000510/analyze_cd000510_roles.py
pointer only (licence: NONE) · get_code("c900c29ec5e5f4c2")
review_collection_name Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/cochrane_review_source.py
pointer only (licence: NONE) · get_code("90f97f1529633b9d")
ris_records Ran QingfangLiu/llm-evidence-retrieval-bias/reviews/CD005354/analyze_cd005354_roles.py
pointer only (licence: NONE) · get_code("6eae04cab3d1e143")
title_tokens Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/build_reference_indexing_from_cochrane_ris.py
pointer only (licence: NONE) · get_code("a25acaf2819e6f17")
unique_preserve_order Ran QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/reference_indexing_schema.py
pointer only (licence: NONE) · get_code("9ac2ddedf8b5c895")
pmids_to_pmc_info Not yet run QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/pubmed_utils.py
pointer only (licence: NONE) · get_code("e8edea7b748fea72")
pubmed_efetch_details Not yet run QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/pubmed_utils.py
pointer only (licence: NONE) · get_code("d300858d9f7ff348")
pubmed_esearch Not yet run QingfangLiu/llm-evidence-retrieval-bias/benchmark_tools/pubmed_utils.py
pointer only (licence: NONE) · get_code("c68386fb79c34681")
resolve_candidate Not yet run QingfangLiu/llm-evidence-retrieval-bias/reviews/CD007654/analyze_cd007654_roles.py
pointer only (licence: NONE) · get_code("e07b0c7b9ac66d23")
review_clustered_bootstrap_intervals Not yet run QingfangLiu/llm-evidence-retrieval-bias/figures/make_paper_figures.py
pointer only (licence: NONE) · get_code("a4f47fcd6ecf26a1")
zip_text Not yet run QingfangLiu/llm-evidence-retrieval-bias/reviews/CD005354/analyze_cd005354_roles.py
pointer only (licence: NONE) · get_code("cfff32b3ef1e3c4e")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Large language model (LLM) chatbots are increasingly used to answer clinical questions with citations to relevant clinical studies. Prior research has largely focused on citation fabrication, leaving a gap in evaluating the quality of the retrieved studies and the factors driving their selection, particularly for newer models with stronger reasoning capabilities. In this study, we evaluated three recent, general-purpose LLM chatbots: Claude Sonnet 5, Gemini 3.1 Pro, and ChatGPT GPT-5.5. We prompted the models with clinical questions adapted from 20 review questions in Issues 6 and 7 of the 2026 Cochrane Database of Systematic Reviews, simulating patient, clinician, and evidence-synthesis researcher user roles. For each review question, we queried each of the three chatbots under each of the three user roles, with four independent repetitions per chatbot-role combination, yielding 720 responses in total (3 chatbots × 3 user roles × 4 repetitions × 20 review questions). Each chatbot was asked to support its answers with primary clinical citations, which we then benchmarked against the included and excluded study sets of the corresponding Cochrane reviews. On average, a single chatbot response retrieved 39.2% ± 29.8% (mean ± SD across all 720 responses) of Cochrane included studies, while citing 5.0% ± 9.4% of Cochrane excluded studies. Recall of Cochrane included studies varied significantly by model and user role. ChatGPT achieved higher recall than Claude or Gemini (63.1% ± 29.5% vs. 37.0% ± 23.8% vs. 17.3% ± 13.1%; blocked permutation test, p = 2.0 × 10 -5 ). The researcher role yielded higher recall than the clinician or patient roles (42.8% ± 30.8% vs. 38.6% ± 28.9% vs. 36.1% ± 29.3%; p = 2.0 × 10 -5 ). Controlling for publication year, citations per year, and open-access status, sample size was the only independently significant predictor of retrieval (odds ratio 1.80 per 1-unit increase in log sample size, 95% CI 1.37-2.36, p = 2.34 × 10 -5 ). These findings suggest that while LLM chatbots can retrieve some studies identified by expert reviewers, their performance varies by model and user role, and they exhibit a bias toward clinical trials with larger sample sizes. Collected LLM responses and analysis code are available at https://github.com/QingfangLiu/llm-evidence-retrieval-bias.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2608.13786")
get_code_for_paper("2608.13786")
have("2608.13786")

Connect an agent — have() is free.