Papers › SGHA: Evidence-Grounded Research Problem Discovery with Local Language Models

SGHA: Evidence-Grounded Research Problem Discovery with Local Language Models

18 Aug 2026arXiv:2608.17501added by Syntology

Sarvesh Gharat, Junpei Komiyama

Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).

Recent efforts toward fully automated AI scientists have demonstrated that language-model agents can generate hypotheses, execute experiments, and draft scientific manuscripts. However, during the early stages of research, when research problems are formulated, these AI scientists often rely heavily on proprietary frontier models. Their proposals are shaped by opaque parametric knowledge and by literature searches conditioned on the proposals themselves. Such knowledge is effectively a black box, and this dependence makes the evidential basis and validity of generated research problems difficult to audit and leaves the process vulnerable to model-specific hallucinations and biases. Furthermore, if proprietary research materials are transmitted to external APIs, the use of these models creates confidentiality, privacy, and data-governance concerns. We introduce the Structural Gap Hypothesis Agent (SGHA), a fully automated, corpus-first research-problem discovery system that runs entirely on a local LLM. SGHA structures a scientific literature corpus into evidence-linked paper objects and a typed evidence graph, detects unresolved structural patterns across papers, screens candidate gaps before formulation, and produces traceable research-problem families. In particular, it is able to output assumptions, objectives, success criteria, and remaining ambiguities. All LLM-based components of SGHA are executed using a locally served open-weight 9B language model, without requiring proprietary frontier-model APIs. We compare SGHA with the AI Scientist-v2 idea formulation module in five machine-learning domains. Our results suggest that explicit corpus structure and evidence-constrained reasoning can support promising, inspectable research-problem formulation without relying on frontier models during generation or verification.

PaperPDFCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2608.17501")

Code

Syntology Ran 35 of 46 code samples harvested from 1 repository linked to this paper; 11 have no recorded run. Of those that ran: 4 ran · honoured contract; 28 ran · our draft was wrong; 1 ran · fixture could not drive it; 2 ran with no contract checked.

By repository: found in paper text by Syntology: 46 samples from 1 repository, 35 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

SarveshVGharat/structural-gap-hypothesis-agent found in paper text by Syntology report

Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

46 samples harvested; 35 ran; 4 honoured the contract we drafted; 11 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · honoured contract
28ran · our draft was wrong
1ran · fixture could not drive it
2ran
11unverified

Licence: 0 of the 46 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from SarveshVGharat/structural-gap-hypothesis-agent. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

CandidateGap SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 4fd12cb55d0c3e39 · report
MotifHit SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · metamorphic tier: deterministic Apache-2.0 (permissive) · 1990a33e2eb27c2a · report
_bounded_graph SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 37610c9e350c0fb4 · report
_csv_value SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · c87bdcd9651987a8 · report
_derive_mechanism SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · a1b44bc5609a2a3a · report
_graphml_safe_copy SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · c72d2717c3edd7ca · report
_safe_attr SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · 4f4348f48f92d5ad · report
_summary_rows SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · 044559028ec38a98 · report
add_edge SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 1d98057df833e09b · report
assumption_mismatch SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · decad84f653c39db · report
bounded SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · honoured contract fingerprinted Apache-2.0 (permissive) · 2cec75e36c6b83fc · report
candidate_gap_from_hit SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 80ed8cfaa7625567 · report
candidate_overall SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · honoured contract fingerprinted Apache-2.0 (permissive) · b35ecfd464d446d4 · report
claim_without_measurement SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 109d08404cadc616 · report
conflicting_claims SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 926f6d191c21910c · report
edge_rows SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 2cbba16af2e9a62a · report
ensure_dir SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 618c853a29411feb · report
load_graph SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · honoured contract Apache-2.0 (permissive) · 02ec7d29f5aba8e5 · report
missing_baseline_comparison SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 157e56b5e9c0d18b · report
missing_stress_test SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · honoured contract Apache-2.0 (permissive) · ab80218346933a00 · report
model_dump SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 0bfcf7878847fb49 · report
motif_rows SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · babfc1664ca4860d · report
node_rows SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 79979887a7848830 · report
repeated_unaddressed_limitation SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · adfe356506baf3de · report
shared_failure_condition SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · eadeb9da55964aae · report
shared_unrealistic_assumption SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 8dbe60e4272ff86d · report
sparse_evaluation SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · f50e6ed55ee46158 · report
theory_practice_gap SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · fcdda5866a0f4078 · report
to_jsonable SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 410b43e930daf358 · report
transfer_solution_gap SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · b41a60f12b76e264 · report
unrealistic_assumption SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 95d0d271de00ecaf · report
write_csv SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · c1306d470d6124f0 · report
write_json SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 7cb5283783868c23 · report
write_pyvis_html SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · fixture could not drive it Apache-2.0 (permissive) · d52b043bbbd9a3c7 · report
write_text SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · e68bafb350668e32 · report
_resolve_legacy_activation SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · a8365d7b5c2562c1 · report
_resolve_profile_activation SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 59b9ba25b78b03b7 · report
_run_detector SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 75de469192fc268d · report
add_gap_nodes SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · bb134125988d9921 · report
detect_gaps SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 868fb311a4f7d5bb · report
export_graph SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 32cc20b6d43cb0f5 · report
merge_strict_thresholds SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · bdd1d54718d5e6d7 · report
resolve_motif_activation SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · e152cef3ea78469f · report
run_all_motif_queries SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · b2c432f5adfc00bd · report
stable_id SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 37b58d435c0540df · report
unresolved_tradeoff SarveshVGharat/structural-gap-hypothesis-agent/src/sgha/gap_detection.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 2b667228e0f42ce7 · report

Results from the paper

The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2608.17501, was issued in August 2026, after that date, so the archive has no leaderboard rows for it.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections