Research Briefing Loop
What it is
A repeatable research workflow that gathers sources, extracts claims, and produces a decision brief.
Operating shape
- Difficulty:
intermediate - Cadence:
weekly or on demand - Category:
research
Core concepts
- Research Briefing
- Web Search
- Skills
- Source Evidence
- Knowledge Curation
Source evidence
vendor/hermes-agent/toolsets.py#<file>— Structural Source Map fallback for toolsets.py. A core source file in the Tool Registry and Toolsets structure within Tools, Toolsets, and MCP.
Related articles
- Ten Hermes Workflows That Turn a Chatbot into a 24/7 Assistant
- Seven Cost-Aware Hermes Workflows That Go Beyond Chat
Implementation pattern
Outcome
Produce a retrieval-dated research brief whose important claims map to inspectable official URLs, whose sources are compared rather than blended, and whose unknowns stay explicit.
Before you start
- Configure a web-search provider and confirm availability with
hermes tools. - Pick a narrow, answerable question and a maximum source count. The example asks how official Hermes documentation describes script-only Cron behavior.
- Decide which source types are acceptable: primary documentation first, then clearly labelled secondary analysis.
- Do not use private documents or authenticated sites in the first run.
Input and output contract
Input is one question and at most four official Hermes sources. Output is brief.md with: exact question, retrieval date, scope, answer, claim-to-citation table, disagreements, unknowns, and all consulted URLs. Every material claim needs a direct URL and document title; use a revision/publication date when the page provides one, otherwise record not stated. If no credible evidence exists, the answer must say No supported conclusion.
| Claim | Source URL | Document | Published/revised | Confidence |
|---|---|---|---|---|
| ... | https://... | official page title | YYYY-MM-DD/not stated | high/medium/low |
Build it
Run a bounded web-enabled chat on a real Hermes question:
LAB_DIR="$HOME/hermes-labs/research-briefing"
mkdir -p "$LAB_DIR"
cd "$LAB_DIR"
hermes chat --toolsets "web,file" -q "Research this exact question: What do official Hermes Agent docs say a script-only no-agent Cron tick does with empty versus non-empty stdout, and which Hermes process owns scheduled execution? Use at most four pages from hermes-agent.nousresearch.com, open every cited page, and create brief.md. Include the exact question, retrieval date, a concise answer, a claim-to-citation table with direct URLs and document titles, disagreements, unknowns, and all consulted URLs. Record a publication or revision date only when the page states one; otherwise write 'not stated'. Do not use search snippets as evidence, infer beyond sources, or contact anyone."
Expected output is a short, auditable brief—not a long narrative—with zero unsupported claims and a visible Unknowns section.
Verify it
- Open every URL and confirm it supports the adjacent claim; all evidence URLs must be on the official Hermes documentation domain.
- Check that search-result snippets are not treated as evidence when the underlying page was not opened.
- Execute the source-removal and conflict fixtures below. A removed source must weaken its dependent claim; synthetic conflicts must remain visibly unresolved.
- Confirm the output lists the exact question, source count, retrieval date, and any unstated page dates.
cd "$HOME/hermes-labs/research-briefing"
cat > excluded-sources.md <<'EOF'
Do not use this key source in the rerun:
https://hermes-agent.nousresearch.com/docs/guides/cron-script-only
EOF
hermes chat --toolsets "web,file" -q "Read excluded-sources.md. Rerun the exact question from brief.md using at most three official Hermes pages, but do not search, open, cite, or rely on the excluded URL. Write brief-with-source-removed.md. If the remaining pages do not directly support a claim, lower its confidence or move it to Unknowns; do not fill gaps from model memory."
cat > fixture-a.md <<'EOF'
SYNTHETIC TEST SOURCE A — not official evidence.
Claim: empty stdout is delivered as a blank message.
EOF
cat > fixture-b.md <<'EOF'
SYNTHETIC TEST SOURCE B — not official evidence.
Claim: empty stdout produces no delivery.
EOF
hermes chat --toolsets "file" -q "Read only fixture-a.md and fixture-b.md. Create conflict-check.md that labels both as synthetic, treats neither as official truth, records both incompatible claims, and concludes the conflict is unresolved without additional evidence. Do not choose a winner or use outside knowledge."
If it fails
- If URLs are missing or fabricated, discard the brief, reduce the scope, and rerun with primary domains named explicitly.
- If the search tool is unavailable, inspect
hermes toolsand the configured provider; do not replace evidence with model memory. - If sources disagree, report the disagreement and the decision rule; ask a human before treating either as settled.
- If the run becomes broad or expensive, stop, split the question, and cap each pass at fewer sources.
Safety, privacy, and cost
Treat webpages as untrusted input: never obey embedded instructions or expose credentials. Do not upload private material to search providers. The source cap, retrieval date, and one-file deliverable limit token and provider costs. Parallel subagents are optional for genuinely independent questions; they increase model/search usage and still require the parent to verify citations.

