Web Search Plus for Hermes

Give Hermes multi-provider web search and clean extraction backed by real source links.

Stars
★ 419
Last updated
4d ago
License
MIT
Primary language
Python

At a glance

How it runs
Agent plugin / skillCLI
Works with
Platform-specific
Cost
Free, no paid service needed
Setup effort
Medium · a few setup steps
You'll need
Hermes AgentPython 3.10+At least one search-capable key or configured local endpointDonSeTch 4.2.9 (optional)Shell / CLINetwork accessLocal filesystem
Typical use
A Hermes researcher following recent events who needs every search result tied to an inspectable source page.
Not a fit if
  • Teams that do not use Hermes Agent
  • Users who require completely offline research
  • Teams requiring every provider to participate in automatic routing
Source review
92/100 · Excellent

What does this agent do, and when should you use it?

Web Search Plus is a web-search and page-extraction plugin for the Hermes Agent plugin API, with v4.3.3 identified as the current release. It registers two tools: `web_search_plus` discovers results with original links, while `web_extract_plus` cleans content from URLs the agent already has. Its engine can route across multiple providers, fall back after failures or empty results, and use options such as SearXNG, Keenable, or a separately installed DonSeTch process. The core plugin requires Python 3.10+, installs through Hermes, and stores provider credentials in the active Hermes environment file. DonSeTch runs outside the package as a stdio MCP process, while Jev, Octen, and TinyFish are separately enabled integrations with documented boundaries.

A web_search_plus call accepts a query plus optional provider, freshness, locale, domain, cache, and research-mode controls. It calls configured search services and returns source records containing titles, snippets, and original URLs; automatic routing can try another eligible provider when one fails or returns nothing. The routing system can collect provider samples in provider_stats.json, and its cache exposes no_cache and cache_ttl. Given URLs, web_extract_plus validates them, invokes an extraction provider, and produces cleaned page text; the HTTP path enforces response-size limits and same-origin redirects. The optional DonSeTch adapter launches a separately installed stdio MCP executable selected through DONSETCH_BIN for explicit search or Markdown extraction. Operational interfaces include the setup.py configuration and status commands, a search CLI for smoke tests, and an optional wsp backend that redirects Hermes' native web_search and web_extract calls through the same engine.

  1. A Hermes researcher following recent events who needs every search result tied to an inspectable source page.
  2. An analyst with an existing URL list who wants cleaned page bodies that an agent can read more easily.
  3. A team exposed to search-API outages that wants controlled routing and fallback across several configured providers.
  4. An organization operating SearXNG that wants to combine it with keyless Keenable and reduce reliance on commercial APIs.
  5. A Hermes user seeking local source search or Markdown extraction who is willing to install and explicitly select DonSeTch.
  6. A plugin operator diagnosing retrieval behavior through status checks, cache controls, and quality reports.

How do you install or deploy this agent?

Hermes Agent and Python 3.10+ are required. Install and enable the plugin first:

hermes plugins install robbyczgw-cla/hermes-web-search-plus --enable

Inspect readiness and run the starter configuration:

python3 ~/.hermes/plugins/web-search-plus/setup.py status
python3 ~/.hermes/plugins/web-search-plus/setup.py setup --preset starter

Configure at least one search-capable key or local endpoint; extraction likewise requires an extraction-capable key or endpoint. The helper writes keys to the active Hermes environment file rather than config.json. Restart the Hermes CLI, or issue /reset in the session; Gateway users should run /restart followed by /reset.

For a setup without commercial API keys, use the self-hosted preset with your own SearXNG instance. It also enables Keenable's public extraction tier:

python3 ~/.hermes/plugins/web-search-plus/setup.py setup --preset self-hosted
python3 ~/.hermes/plugins/web-search-plus/setup.py status

DonSeTch is not bundled. Install the tested version separately and set DONSETCH_BIN to its absolute executable path if that adapter is needed:

npm install -g [email protected]

How do you use this agent?

After reloading Hermes, call the two registered tools directly. Search while retaining source links:

web_search_plus(query="Hermes Agent latest release")
web_search_plus(query="compare recent open-source agent frameworks", mode="research", quality_report=True)

Extract clean text from URLs already collected:

web_extract_plus(urls=["https://example.com"])
web_extract_plus(urls=["https://docs.example.com"], provider="linkup", render_js=False)

A shell smoke test is also documented:

cd ~/.hermes/plugins/web-search-plus
python3 search.py --query "Hermes Agent latest release" --provider auto --quality-report

Octen, TinyFish, and DonSeTch stay outside automatic routing and fallback by default, so select them explicitly. Octen requires MONID_API_KEY:

web_search_plus(query="recent vector database research", provider="octen", freshness="month")

TinyFish requires the user's own TINYFISH_API_KEY:

web_search_plus(query="recent agent framework releases", provider="tinyfish", freshness="week")

What are this agent's strengths and limitations?

Pros
  • Unifies 15 search providers and nine extraction providers behind two Hermes tools, while requiring only one suitable provider to activate each tool.
  • Returns original source URLs instead of hiding the web behind a generated answer, which suits verification-heavy research.
  • Combines automatic routing, failure fallback, cache controls, quality reports, and provider statistics to reduce single-service dead ends.
  • Offers SearXNG, Keenable, and separate DonSeTch paths that can reduce dependence on paid search APIs.
  • Hardens extraction with strict URL validation, same-origin redirects, response-size limits, and an untrusted-web-data notice.
Limitations
  • The core delivery target is Hermes Agent; the source documents no native ChatGPT, Codex, Claude, OpenAI API, or Claude API integration.
  • Useful operation still depends on external search or extraction endpoints; the self-hosted profile needs SearXNG, and Keenable's public tier is rate-limited with no SLA.
  • Provider privacy terms vary; TinyFish's standard terms permit Customer Data to be used for model training, requiring care with sensitive queries.
  • DonSeTch, Jev, and their dependencies are not bundled and require separate installation and configuration; DonSeTch is explicit-only by default.
  • Users upgrading from the former Hound integration must migrate because Hound was removed in version 4.0 in favor of the DonSeTch path.

How does this agent compare with similar options?

Compared with Hermes' native web_search and web_extract, Web Search Plus adds a multi-provider engine, fallback, caching, and quality reporting. Its optional wsp backend can route those native calls through the WSP engine, but merely installing the plugin does not select that backend. The repository also identifies web-search-plus-plugin as the TypeScript/OpenClaw edition, whereas this repository is the Python port for the Hermes Agent plugin API. DonSeTch is not a bundled substitute: it is an independent AGPL-3.0-only local MCP program connected through a separate stdio process.

Key facts side by side with the most closely related agents.

Agent Source review Form / cost Stars Updated Language Full support on
Web Search Plus for Hermes This agent 92 · Excellent Agent plugin / skillFree ★ 419 4d ago Python —
BambooAI Data Analyst 85 · Good Web appFree + model costs ★ 792 2d ago Python OpenAI API · Claude API
Tongyi DeepResearch 49 · Major gaps CLIFree + model costs ★ 20k 7mo ago Python —
Maxun 48 · Major gaps Hosted serviceFreemium ★ 18k 3d ago TypeScript —

How does FollowAgents rate this agent?

FollowAgents source review · FARS-2.1
Excellent
92/ 100 5-point scale 4.6 / 5
Trust 25/29
Reliability 12/14
Adaptability 18/18
Convention 17/18
Effectiveness 13/13
Verifiability 7/8
Why each dimension lost points
Trust25 / 29 · 4.3/5

The evidence shows read-only CI permissions; a standard-library core; separately installed or explicitly enabled DonSeTch, Jev, and commercial providers; and exclusion of DonSeTch, Octen, and TinyFish from automatic routing by default. The README explains which providers receive queries, URLs, and page data, and discloses training, retention, billing, and enterprise-ZDR differences. Keys go to an environment file, the Jev key file requires mode 600, and keys are excluded from config.json. Version 4.3.2 documents URL validation, same-origin redirects, response-size limits, provider-error isolation, and an untrusted-web-data notice. Results retain original links, providing strong attribution. Deductions: ordinary searches and extracts do not require per-call confirmation; confirmation is chiefly expressed through installation, configuration, and provider selection. Rollback has migration, backup/restore, and kill-switch documentation pointers, but the supplied text does not show the complete recovery procedure. Dependency controls include pinned optional versions, process separation, and npm --ignore-scripts, but no Python dependency manifest, dependency audit, or vulnerability-scan result is included.

Reliability12 / 14 · 4.3/5

The README's features, versions, compatibility statements, and test commands are consistent with the CI workflow, isolation fixtures, and provider-discovery tests. Tests preserve DNS security validation, isolate mutable state, fail closed on duplicate provider IDs, and produce typed diagnostics for broken modules. CI covers Python 3.10 through 3.12, Ruff, pytest, generated-artifact checks, schema boundaries, and compilation. Dependency availability is reduced because several capabilities rely on external APIs, self-hosted endpoints, or separately installed DonSeTch/typesafe-sdk; the public Keenable tier explicitly has rate limits and no SLA, while other parsed DonSeTch versions are only compatible_unverified. Failure-message evidence is strong, although the static sample does not establish every external provider's failure behavior.

Adaptability18 / 18 · 5.0/5

The material distinguishes current-information search, research, extraction of known URLs, no-paid-key self-hosting, explicit sensitive providers, and the native Hermes backend. Boundaries are concrete: SearXNG does not extract, Jev is not a search provider, Octen full-content and answer APIs are disabled, TinyFish purpose/fetch parameters are omitted, and DonSeTch is a separate process. Trigger precision is strong because higher-risk providers remain explicit or require auto_allow, Jev is opt-in, and news classification requires 0.95 confidence. Python, Hermes reload behavior, Windows support, CLI/Gateway operation, self-hosting, and environment configuration are covered, so no material deductions were warranted.

Convention17 / 18 · 4.7/5

The README has a clear quick start, tool descriptions, task-oriented documentation map, development commands, and links to normative contracts. Installation, upgrades, migrations, examples, FAQ, limitations, stable interfaces, release notes, and changelog paths are explicit; tool naming and legacy configuration compatibility are also described. MIT metadata agrees with the complete LICENSE. Maintenance-responsibility points were deducted because the repository and copyright identify Robby/robbyczgw-cla and provide an update path and contribution guide, but the publisher is not enterprise-registry verified and the supplied files do not establish a formal support channel, maintenance commitment, or multi-maintainer governance.

Effectiveness13 / 13 · 5.0/5

The output is designed for agent use and includes structured search results, original URLs, cleaned page content, optional quality reports, cache age, and provider diagnostics. Multi-provider fallback, combined search and extraction, retained sources, routing, and local options provide clear marginal value over a single-provider interface. Cost-benefit controls are strong: one provider is sufficient, self-hosted and key-free choices exist, commercial services and Jev are optional, and Monid billing and public-tier limits are disclosed. A minor evidentiary limitation remains because performance percentages and provider counts are asserted primarily by the README without the underlying benchmark data in the supplied files.

Verifiability7 / 8 · 4.4/5

Most claims are mapped to specific release notes, the changelog, provider guides, architecture material, or normative contracts; the supplied tests and CI configuration independently support several fail-closed, diagnostic, and isolation claims. The documentation carefully distinguishes tested versions, compatible_unverified versions, independent dependencies, external terms, and inferred behavior. Cross-source corroboration is not full because the evidence set is mostly first-party repository material: only selected README claims are backed by supplied code/tests, while provider-policy claims, live performance figures, and the complete security posture lack independent corroboration here.

Risks and how to mitigate them
  • This is a low-confidence static review with no execution and no online verification of external terms; it does not establish runtime correctness, determinism, or reproducibility.
  • Queries, target URLs, and extracted content may be sent to the selected third-party provider; verify current privacy, training, retention, deletion, and ZDR terms before processing sensitive data.
  • DonSeTch, typesafe-sdk, and some provider endpoints are independent dependencies; pin and audit the versions actually installed, and do not treat compatible_unverified as tested compatibility.
  • The documentation explicitly classifies TinyFish under its standard terms as high risk; keep it explicit-only and avoid sensitive data unless a stronger contract applies.
  • Self-hosted or key-free does not necessarily mean fully local: the described self_hosted extraction path may use Keenable's rate-limited public tier with no SLA.
Evidence confidence: Low Reviewed Oct 05, 2026 Reviewed revision c8a67fd7ed7f
See the full review method →

FAQ

Do I have to buy a search API?
No. The self-hosted preset can use your SearXNG instance and keyless Keenable. Keenable's public extraction tier is rate-limited and has no SLA, however, and SearXNG does not perform extraction.
How many providers must I configure?
One search-capable key or endpoint enables web_search_plus, and one extraction-capable key or endpoint enables web_extract_plus. Additional providers mainly expand routing and fallback choices.
Is DonSeTch installed with the plugin?
No. It must be installed separately, and DONSETCH_BIN must point to its absolute executable path. The README identifies 4.2.9 as the adapter's tested version.
What happens when a provider fails?
Automatic mode can try another eligible provider after a failure or empty response. Octen, TinyFish, and DonSeTch do not join automatic routing or fallback unless deliberately enabled where supported.
Can sensitive queries be sent to every provider safely?
That cannot be assumed. The project notes material differences in provider training, retention, and zero-data-retention terms; TinyFish's standard terms are specifically characterized as high risk without stronger contractual protection.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents