skills/research/deep-research/open-researcher-guide/SKILL.md
Open pipeline for generating deep research trajectories with LLMs
npx skillsauth add wentorai/research-plugins open-researcher-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
OpenResearcher is a fully open pipeline for long-horizon deep research trajectory synthesis. It breaks complex research questions into sub-questions, iteratively searches and reads literature, builds internal knowledge representations, and synthesizes comprehensive answers. Unlike single-shot approaches, it models the researcher's thought process — reading, questioning, connecting, and refining understanding over multiple rounds.
from open_researcher import OpenResearcher
researcher = OpenResearcher(llm_provider="anthropic")
# Complex research question
result = researcher.research(
"How do retrieval-augmented generation systems handle "
"knowledge conflicts between parametric and retrieved knowledge, "
"and what are the current mitigation strategies?"
)
# Automatically decomposes into sub-questions:
# SQ1: What types of knowledge conflicts occur in RAG?
# SQ2: How are conflicts detected?
# SQ3: What resolution strategies exist?
# SQ4: How effective are these strategies?
# Each sub-question triggers:
# - Academic search (OpenAlex, arXiv)
# - Paper reading (abstract + key sections)
# - Evidence extraction
# - Follow-up question generation
# Configuration
researcher = OpenResearcher(
search_backends=["openalex", "arxiv"],
max_iterations=5, # Research rounds per sub-question
papers_per_iteration=10, # Papers to read per round
follow_up_questions=True, # Generate follow-up questions
)
# Internally builds a knowledge representation:
# - Claims linked to source papers
# - Relationships between concepts
# - Contradictions flagged
# Access the knowledge graph
kg = result.knowledge_graph
print(f"Concepts: {len(kg.nodes)}")
print(f"Relations: {len(kg.edges)}")
print(f"Contradictions: {len(kg.contradictions)}")
# Multi-section synthesis
report = result.report
# Sections:
# 1. Introduction and scope
# 2. Sub-question answers with evidence
# 3. Cross-cutting themes
# 4. Open questions and future directions
# 5. Full bibliography
report.save("research_report.md")
report.export_bibliography("refs.bib")
researcher = OpenResearcher(
llm_provider="anthropic",
model="claude-sonnet-4-20250514",
search_config={
"backends": ["openalex", "arxiv"],
"max_results_per_query": 20,
},
reading_config={
"sections": ["abstract", "introduction", "methods", "conclusion"],
"max_tokens_per_paper": 3000,
},
synthesis_config={
"style": "academic", # academic, technical, accessible
"include_contradictions": True,
"cite_inline": True,
},
)
# Inspect the research trajectory
trajectory = result.trajectory
for step in trajectory:
print(f"Round {step.round}: {step.action}")
print(f" Query: {step.query}")
print(f" Papers read: {step.papers_read}")
print(f" Key findings: {step.findings[:100]}...")
print(f" Follow-ups: {step.follow_up_questions}")
tools
10 document processing skills. Trigger: extracting text from PDFs, parsing references, document Q&A. Design: parsing pipelines (GROBID, marker) and structured extraction tools.
documentation
Guide to tldraw for infinite canvas whiteboarding and diagram creation
testing
Create graphical abstracts, schematic diagrams, and scientific illustrations
documentation
Create UML diagrams and architecture visualizations with PlantUML