Skip to main content

Overview

Hermes Agent can use Perplexity as the backend for its web_search and web_extract tools. web_search returns ranked results from the Search API, while web_extract returns passages relevant to each URL. This integration changes Hermes’s web tools, not the model that runs the agent. You can keep your existing model provider and use a separate Perplexity API key for search and extraction.
The Perplexity provider is included in Hermes v0.21.1 (tag v2026.9.7) and later through Hermes PR 102055. Hermes v0.21.0 (tag v2026.8.31) does not include it. If Perplexity does not appear in hermes tools, update Hermes before continuing.

Prerequisites

  • A Hermes model provider configured for reasoning and writing
  • A Perplexity API key
  • Hermes v0.21.1 (tag v2026.9.7) or later

Get a Perplexity API key

Generate a key in the Perplexity API Console.

Set up the integration

1

Install or update Hermes

For a new command-line installation, run the installer for your platform:
For an existing installation, update Hermes and confirm that you are running v0.21.1 or later:
See the Hermes installation guide and update guide for Docker, package-managed, and other installation methods. For a tag-pinned deployment, use v2026.9.7 or later.
2

Choose your model provider

Run the model setup wizard if Hermes cannot already complete a normal chat:
Choose the provider and model that Hermes should use for reasoning and writing. This choice is independent of the Perplexity web backend.
3

Select Perplexity for web tools

Open the tool setup wizard:
Choose Web Search & Extract, select Perplexity, and enter your Perplexity API key when prompted. By default, Hermes stores secrets in ~/.hermes/.env and non-secret settings in ~/.hermes/config.yaml.If you use a custom Hermes home or profile, Hermes writes the files in that profile’s data directory. The wizard sets the shared web.backend selection but does not replace existing web.search_backend or web.extract_backend overrides. If you previously set either override, update or remove it before testing.
Treat your API key like a password. Do not put it in prompts, command history, screenshots, source control, or shared logs. If it is exposed, rotate it in the API Console.

Configure manually

The wizard is the recommended path. To configure the integration manually, add the key to your existing ~/.hermes/.env:
Merge these values into the existing web section of ~/.hermes/config.yaml:
search_backend and extract_backend take precedence over backend. Setting all three to perplexity prevents an older per-tool override from routing one of the calls elsewhere. If an installation already has a saved web provider, adding the API key by itself does not change that selection.

Verify the connection

During verification, temporarily disable caching and keyless fallback in the same web section. This makes a failed Perplexity request visible instead of allowing a cached response or another provider to satisfy it.
Start a fresh session with the web toolset:
Paste this smoke-test prompt:
A successful test has both of these properties:
  • Hermes shows a web_search call with the requested query.
  • The tool returns usable titles, URLs, and descriptions.
Do not count a prose answer without a tool call as a successful integration test. Search results can change, so do not require specific rankings or URLs.
Hermes rounds upstream search limits into cache buckets before slicing the response to your requested size. A verbose provider log can therefore show limit=10 for this limit 3 prompt even though Hermes returns three results.

Tutorial: build a source-grounded decision brief

This tutorial uses both tools to answer a bounded engineering question: does Python 3.13 disable the GIL by default, and what should you verify before trying a free-threaded build? Keep the verification configuration above and remain in the same Hermes session.

1. Find candidate sources

Paste:
Inspect the returned URLs before continuing. The prompt asks Hermes to identify official sources; it does not apply an API-enforced domain filter.

2. Extract evidence from a pinned page

Paste:
Perplexity extraction returns query-relevant passages, not a guaranteed complete copy of the page. It can preserve a reference such as “the new function” while omitting the function’s exact name. A missing-evidence answer is valid and prevents the agent from guessing details that were omitted from the extracted text.

3. Turn the evidence into a brief

Paste:
Count the walkthrough as successful when search returns usable results, extraction returns nonempty passages without a per-URL error, every factual claim is supported by those passages, and missing evidence remains explicit.

How the tools behave

Hermes’s Perplexity provider sends requests directly over HTTP. You do not need the Perplexity SDK, CLI, or an MCP server for this setup.

Troubleshooting

After verification, you can restore cache_enabled: true to reduce repeated requests. Decide separately whether to enable keyless rescue: it improves availability, but a failed Perplexity call may then be served by another provider.

Next steps

Search API quickstart

Call the underlying Search API directly.

Search API pricing

Review Search API request pricing before production use.

Hermes web tools

Learn about provider selection, caching, and fallback in Hermes.

Hermes integration source

Review the implementation and upstream validation.