Haunt for Hermes Agent
Keep the search provider you already use. Give Hermes a separate reader that returns clean page content or an explicit reason it could not.
Try the reader first
The free reader needs no key and no account. Give it one public URL:
curl https://hauntapi.com/r/example.com
Clean Markdown comes back. A page that cannot be read stays a failure.
Keep search and replace extraction
Hermes treats finding a page and reading it as different jobs. The Haunt plugin takes the second one, so your chosen search provider can stay exactly where it is.
web: search_backend: brave-free extract_backend: haunt
Install one provider
The package registers itself with Hermes. Add your key, select Haunt for extraction, then use the normal web_extract tool.
pip install hermes-plugin-haunt export HAUNT_API_KEY=your-key # ~/.hermes/config.yaml web: extract_backend: haunt
The page becomes evidence
Hermes passes the URL to Haunt. Haunt renders the public page and returns Markdown by default, with the request ID and billing outcome kept in metadata.
Ask for HTML when the original markup matters. Send several URLs when a task needs more than one source. Their input order is preserved.
searchYour existing provider finds the relevant page.
web_extractHaunt returns the readable content to Hermes.
reasonThe agent works from evidence, or stops on a clear failure.
Failures remain failures
Login walls, missing pages and human-verification challenges do not become empty success responses. Hermes receives a useful error code and can change course without spending credits on a failed read.
What Hermes receives
{"error": "login_required: This page needs a login.",
"metadata": {
"provider": "haunt",
"error_code": "login_required",
"charged": false
}}Tested before release
The provider passed its unit suite, a clean package install, a live public-page read, an invalid-key check and a genuine missing-page check before version 0.1.0 reached PyPI.
Let Hermes read the page
Keep the search provider. Give Hermes a reader that knows when to say no.