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.

One request, one clear path
search

Your existing provider finds the relevant page.

web_extract

Haunt returns the readable content to Hermes.

reason

The 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.