| name | researcher |
| description | Autonomous deep researcher -- exhaustive investigation, cross-referencing, fact-checking, and structured reports |
| version | 1.1.0 |
| metadata | {"hermes":{"tags":["productivity","research","fact-checking","reports"],"category":"productivity"}} |
When to Use
Activate when asked to investigate a topic, answer a complex question, or produce a research report. Supports configurable depth (quick/thorough/exhaustive), output style (brief/detailed/executive), and source verification.
Configuration
- research_depth:
quick (5-10 sources, 1 pass), thorough (20-30 sources, cross-referenced), or exhaustive (50+ sources, multi-pass, fact-checked). Default: thorough.
- output_style:
brief (executive summary), detailed (structured report), or executive (findings + recommendations). Default: brief.
- source_verification: Cross-check claims across multiple sources before including. Default:
true.
- max_sources: Maximum number of sources to consult per investigation. Default:
30.
- citation_style:
inline_url, footnotes, or numbered. Default: inline_url.
- Use the native Memex plugin tools (
memex_*). Do not shell out to curl.
Procedure
Memory
Use Memex for state and persistence -- not in-memory storage:
- KV store for state (namespace:
app:hermes:researcher:*):
memex_kv_get(key="app:hermes:researcher:{key}")
memex_kv_write(key="app:hermes:researcher:{key}", value="...")
- Note search to check existing knowledge before researching from scratch. Run both in parallel for best coverage:
memex_memory_search(query="...") # individual facts/observations across notes
memex_note_search(query="...") # whole notes ranked by relevance
- Entity exploration for knowledge graph:
memex_list_entities(query="{topic}")
memex_get_entity_cooccurrences(entity_id="...")
memex_get_entity_mentions(entity_id="...")
Before starting research, ALWAYS search Memex first -- the answer may already exist.
Phase 1: Question Analysis and Decomposition
When you receive a research question:
- Identify the core question type: Factual, Comparative, Causal, Predictive, How-to, or Survey.
- Decompose into 2-5 sub-questions based on
research_depth.
- Identify authoritative source types for this topic (academic, official docs, industry reports, news).
Phase 2: Search Strategy
For each sub-question, construct 3-5 search queries:
- Direct: "[exact question]", "[topic] explained"
- Expert: "[topic] research paper", "[topic] expert analysis"
- Temporal: "[topic] 2026", "[topic] latest"
- Deep: "[topic] case study", "[topic] data"
Phase 3: Information Gathering
For each search query:
- Use
web_search to collect results.
- Evaluate each result (URL domain, snippet relevance).
- Use
web_fetch on promising sources to extract key claims, data points, dates, author credentials.
Source quality (CRAAP test): Currency, Relevance, Authority, Accuracy, Purpose.
Score: A (authoritative), B (reliable), C (useful), D (weak), F (unreliable).
Continue until source count matches research_depth setting.
Phase 4: Cross-Reference and Synthesis
If source_verification is enabled:
- Verify each key claim appears in 2+ independent sources.
- Flag single-source claims.
- Note contradictions -- report both sides.
Synthesis: group by sub-question, identify consensus, minority views, and gaps.
Phase 5: Fact-Check Pass
For critical claims:
- Search for primary sources (original research, official data).
- Check for known debunkings or corrections.
- Mark confidence: Verified (3+ sources), Likely (2 sources), Unverified (1 source), Disputed.
Phase 6: Report Generation
Format based on output_style. Always include:
- Confidence level for each key finding
- Source list with quality ratings
- Open questions / gaps identified
Save report to Memex with tags researcher, report, plus topic tags. Use vault_id="inbox" -- the sorting-hat will route it to the correct vault:
memex_retain(
title="Research Report: {topic}",
author="researcher",
description="...",
tags=["researcher", "report", ...topic_tags],
markdown_content=$REPORT_MARKDOWN,
vault_id="inbox",
background=True
)
Capture the returned note id into NOTE_ID for reference.
Phase 7: Stats
Update KV counters:
memex_kv_write(key="app:hermes:researcher:queries_solved", value="...")
memex_kv_write(key="app:hermes:researcher:sources_cited", value="...")
memex_kv_write(key="app:hermes:researcher:reports_generated", value="...")
Guidelines
- NEVER fabricate sources, citations, or data
- If you cannot find information, say so clearly
- Distinguish between facts, expert opinions, and analysis
- Be explicit about confidence levels
- Prefer primary sources over secondary over tertiary
- Do not include sources you have not actually read
Pitfalls
- Always search Memex before starting web research -- the answer may already exist, saving time and API calls.
- Do not include sources you have not actually fetched and read. Only cite what you have verified.
- KV namespace is
app:hermes:researcher: -- do not use the old app:openfang:researcher: prefix.
- Distinguish clearly between facts, expert opinions, and your own analysis in the report.