
Research Lookup
Run scientific and technical literature lookups from your agent with automatic routing between fast search and deeper reasoning models.
Overview
research-lookup is an agent skill most often used in Idea (also Build, Launch) that routes research queries to Sonar lookup or reasoning models with optional batch and override controls.
Install
npx skills add https://github.com/davila7/claude-code-templates --skill research-lookupWhat is this skill?
- Automatic model selection between fast lookup (Sonar Pro Search) and analytical queries (Sonar Reasoning Pro)
- Manual model override for budget- or latency-sensitive batches
- Batch query processing for multiple research prompts in one session
- Hooks into scientific writing workflows via the ResearchLookup Python client
- Example script documents expected model routing for simple vs comparative queries
- Demonstrates two routing modes: Sonar Pro Search for fast lookup and Sonar Reasoning Pro for analytical comparison queri
Adoption & trust: 513 installs on skills.sh; 27.8k GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need current, nuanced answers from the literature or web but do not want to manually pick models or glue API calls for every question.
Who is it for?
Solo builders validating technical ideas, writing science-heavy docs, or batching comparable research questions inside Claude Code or similar agents.
Skip if: Teams that only need static SEO keyword lists with no live retrieval, or workflows forbidden from external network calls to third-party search APIs.
When should I use this skill?
You need live research answers with automatic or manual Sonar model selection inside a Python or agent workflow.
What do I get? / Deliverables
Your agent returns model-labeled lookup results with a repeatable Python workflow you can embed in validation notes, specs, or draft articles.
- Model-labeled lookup result objects per query
- Repeatable example patterns for automatic and manual model selection
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Idea because the skill is built for evidence gathering before you commit to a product or write-up. Research subphase matches literature review, competitor science, and fact-checking workflows shown in the example scripts.
Where it fits
Pull 2024 CRISPR advances before choosing a biotech side-project angle.
Compare vaccine efficacy claims while scoping a health-education micro-SaaS.
Embed lookup results into README or internal spec sections during implementation.
Refresh landing-page statistics with a fast Sonar Pro Search pass before publishing.
How it compares
Use instead of asking the model to invent citations in chat—this skill is a structured research client, not a generic brainstorming prompt.
Common Questions / FAQ
Who is research-lookup for?
Indie builders and small teams who ship with coding agents and need trustworthy, query-sized research with sensible model routing.
When should I use research-lookup?
During Idea research on competitors and science, during Validate when scoping claims, during Build when drafting technical docs, and during Launch when refreshing messaging with current facts.
Is research-lookup safe to install?
Review the Security Audits panel on this Prism page for pass/fail signals, verify API keys stay in environment variables, and restrict network use to trusted Sonar endpoints before enabling in production agents.
SKILL.md
READMESKILL.md - Research Lookup
#!/usr/bin/env python3 """ Example usage of the Research Lookup skill with automatic model selection. This script demonstrates: 1. Automatic model selection based on query complexity 2. Manual model override options 3. Batch query processing 4. Integration with scientific writing workflows """ import os from research_lookup import ResearchLookup def example_automatic_selection(): """Demonstrate automatic model selection.""" print("=" * 80) print("EXAMPLE 1: Automatic Model Selection") print("=" * 80) print() research = ResearchLookup() # Simple lookup - will use Sonar Pro Search query1 = "Recent advances in CRISPR gene editing 2024" print(f"Query: {query1}") print(f"Expected model: Sonar Pro Search (fast lookup)") result1 = research.lookup(query1) print(f"Actual model: {result1.get('model')}") print() # Complex analysis - will use Sonar Reasoning Pro query2 = "Compare and contrast the efficacy of mRNA vaccines versus traditional vaccines" print(f"Query: {query2}") print(f"Expected model: Sonar Reasoning Pro (analytical)") result2 = research.lookup(query2) print(f"Actual model: {result2.get('model')}") print() def example_manual_override(): """Demonstrate manual model override.""" print("=" * 80) print("EXAMPLE 2: Manual Model Override") print("=" * 80) print() # Force Sonar Pro Search for budget-constrained rapid lookup research_pro = ResearchLookup(force_model='pro') query = "Explain the mechanism of CRISPR-Cas9" print(f"Query: {query}") print(f"Forced model: Sonar Pro Search") result = research_pro.lookup(query) print(f"Model used: {result.get('model')}") print() # Force Sonar Reasoning Pro for critical analysis research_reasoning = ResearchLookup(force_model='reasoning') print(f"Query: {query}") print(f"Forced model: Sonar Reasoning Pro") result = research_reasoning.lookup(query) print(f"Model used: {result.get('model')}") print() def example_batch_queries(): """Demonstrate batch query processing.""" print("=" * 80) print("EXAMPLE 3: Batch Query Processing") print("=" * 80) print() research = ResearchLookup() # Mix of simple and complex queries queries = [ "Recent clinical trials for Alzheimer's disease", # Sonar Pro Search "Compare deep learning vs traditional ML in drug discovery", # Sonar Reasoning Pro "Statistical power analysis methods", # Sonar Pro Search ] print("Processing batch queries...") print("Each query will automatically select the appropriate model") print() results = research.batch_lookup(queries, delay=1.0) for i, result in enumerate(results): print(f"Query {i+1}: {result['query'][:50]}...") print(f" Model: {result.get('model')}") print(f" Type: {result.get('model_type')}") print() def example_scientific_writing_workflow(): """Demonstrate integration with scientific writing workflow.""" print("=" * 80) print("EXAMPLE 4: Scientific Writing Workflow") print("=" * 80) print() research = ResearchLookup() # Literature review phase - use Pro for breadth print("PHASE 1: Literature Review (Breadth)") lit_queries = [ "Recent papers on machine learning in genomics 2024", "Clinical applications of AI in radiology", "RNA sequencing analysis methods" ] for query in lit_queries: print(f" - {query}") # These will automatically use Sonar Pro Search print() # Discussion phase - use Reasoning Pro for synthesis print("PHASE 2: Discussion (Synthesis & Analysis)") discussion_queries = [ "Compare the advantages and limitations of different ML approaches in genomics", "Explain the relationship between model interpretability and clinical adoption", "Analyze