Workflow

Research Briefing Loop

A repeatable research workflow that gathers sources, extracts claims, and produces a decision brief.

Workflow field plateResearch Briefing Loophx-workflow-research-briefing-loopLoading visual preview…
View full-size visual

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.
  • 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 tools and 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.

Official references