How to use DeepSeek Search and Fetch in Hermes Agent
Hermes can answer questions using a DeepSeek model, but a current answer with links requires a working web search provider. This guide covers one community plugin, deepseek-search-fetch, which connects Hermes' existing web tools to DeepSeek's Search and Fetch APIs.
The instructions below follow the plugin's published documentation for version 1.0.10. They have not been tested in a live Hermes installation for this article. Menu names and behavior may change as Hermes or the plugin updates.
What do Search and Fetch do?
| Tool | What it does | Example |
|---|---|---|
| Search | Finds web pages matching a query. | Find recent DeepSeek documentation on tool calls. |
| Fetch | Retrieves the content of a page by URL. | Read a selected documentation page before summarizing it. |
| Model | Interprets results and writes a response. | Compare the retrieved pages and cite their URLs. |
These are separate services. A successful model reply does not prove that Hermes searched the web or read a page.
What do you need before installing?
- Hermes Agent 0.22.0 or later, in the profile you intend to use.
- A direct DeepSeek API key and an account with usable API balance. A chat login is not an API key.
- Permission to install a community plugin and run code in your Hermes environment.
- A working model in Hermes. It can be a DeepSeek model, but the web provider and chat model are configured separately.
This plugin is community maintained. Review its code and permissions before installing: a plugin runs inside the Hermes environment and may have access to credentials available there. Keep your API key out of screenshots, chat messages and shell history.
Queries and the URLs you ask Fetch to read are sent to DeepSeek. Fetch retrieves pages from DeepSeek's servers, so use public pages for testing and avoid submitting private URLs or sensitive search terms. If Hermes falls back to another provider, that provider may receive the query or URL instead.
If you are starting from scratch, use our Hermes and DeepSeek setup guide first. A Coding Plan key or another provider's key may use a different endpoint and entitlement; do not assume it works with the direct DeepSeek Search API.
How do you install and configure the plugin?
Back up your current Hermes profile configuration before changing web backends. Record the existing search and extract settings so you can restore them. Use the same profile for the plugin, key and Hermes session.
1. Install the community plugin
In a terminal where the intended Hermes profile is active, install and enable the plugin:
hermes plugins install deepseek-search-fetch --enableStart a new Hermes session after installation. If a Desktop or gateway process already runs, restart it so it can load the plugin. Check that the plugin is listed and enabled:
hermes plugins list
hermes tools2. Add your direct DeepSeek API key
Store DEEPSEEK_API_KEY in the intended Hermes profile's private secrets or environment settings. If Hermes already uses a direct DeepSeek key in that profile, confirm that the plugin can access it. Do not paste the key into a prompt or place it in a command that will be saved in shell history.
3. Select the web backends
Point both web operations at the provider registered by this specific plugin:
hermes config set web.search_backend deepseek
hermes config set web.extract_backend deepseekThe provider name deepseek here belongs to deepseek-search-fetch. Other similarly named plugins can use a different provider name or setup; do not mix their instructions. Ensure the web search and extraction tools are enabled in Hermes. Keep your previous settings handy for rollback.
How can you check whether it works?
Test search and extraction separately in a fresh session. Use public information and a non-sensitive query for the first run.
- Search: Ask Hermes to find the current DeepSeek documentation for Search and Fetch and return two result URLs. Check the visible
web_searchactivity and the returned links. - Fetch: Ask it to read one public result URL and summarize a detail from that page. Check for a separate
web_extractcall and compare the answer with the page. - Check the provider: Review your backend settings and available diagnostics or usage records. A plausible answer or a successful tool call alone does not prove DeepSeek handled the request.
For a useful record of your own test, note the Hermes version, plugin version, profile, time and whether search and extraction each returned a result. Check logs or account usage if they identify the provider, without recording your key or private query. If the evidence does not identify the backend, mark the provider as unconfirmed.
When should you use this instead of your current search provider?
Consider this plugin if you already have a direct DeepSeek API account and want Hermes to use DeepSeek for both search and page extraction. Keep your current provider if it already meets your needs or you do not want another paid service. This guide does not compare search quality, speed or reliability across providers.
Search results are leads, not proof. Open the returned page, check its date and verify the relevant statement in the page itself. Fetch can fail on some sites, and a returned page may contain outdated or misleading information.
How much does it cost?
DeepSeek's published prices checked on November 9, 2026 are below. Search and Fetch are separate APIs; model input and output tokens are charged separately. Prices and eligibility can change.
| Service | Published price | Illustrative cost |
|---|---|---|
| Search | $0.75 per 1,000 successful requests | 100 successful searches: $0.075 |
| Fetch | $0.75 per 1,000 successful requests | 100 successful fetches: $0.075 |
For example, 100 successful searches plus 100 successful fetches total $0.15 in Search and Fetch fees, before model tokens and any other service charges. DeepSeek says a billable request must return HTTP 200 and produce a result; unsuccessful or empty results and timeouts are not billed under its published rules. Check your account and current pricing before relying on this example.
What should you check if search fails?
| Symptom | Where to start |
|---|---|
| Chat works, but no search happens | Confirm web_search is enabled, the plugin is enabled in the active profile, and the search backend points to deepseek. |
| Key missing or HTTP 401 | Check that the direct API key is available to the same profile and process. Do not share or print it while diagnosing. |
| HTTP 402 | Check the DeepSeek account balance and billing access before retrying. |
| HTTP 429 or a temporary server error | Reduce request frequency and retry after a delay. DeepSeek applies account limits and a separate per-domain limit to Fetch. |
| Search returns links, but a page cannot be read | Test another public page. The site may block automated access or require rendering that the fetch service cannot provide. |
| The answer works, but the provider is uncertain | Check backend configuration, tool activity and available usage evidence. An enabled fallback can mask a failed DeepSeek request. |
For broader model, key and profile issues, see the Hermes troubleshooting guide.
How do you return to your previous search setup?
Restore the search and extract backend values you recorded before installation, then disable the plugin if you no longer need it:
hermes plugins disable deepseek-search-fetchIf neither backend had a value before, the plugin documentation gives these commands to remove the explicit settings:
hermes config unset web.search_backend
hermes config unset web.extract_backendUnsetting them does not restore a different provider you had configured previously. Start a new session and confirm that your intended search provider works. Leave unrelated model, memory and tool settings in place.
Frequently asked questions
Is DeepSeek Search included when I choose a DeepSeek model?
No. Model inference and Search and Fetch are separate services. Configure and test the web provider on its own.
Is the plugin official?
No. The plugin described here is community maintained. Its listing says it is not affiliated with DeepSeek.
Does every web search necessarily use DeepSeek?
No. Your active backend and fallback settings determine the route. A fallback may answer a failed request through another provider.
Can the plugin read every website?
No. A page may block automated access or depend on browser rendering. Test the pages you need and check the returned content.
Can I use my Coding Plan key?
Only if your provider explicitly supports the DeepSeek Search and Fetch APIs with that key and endpoint. Do not assume model access includes search access.
Need to set up the model connection first? Start with the DeepSeek and Hermes guide, then return here to configure web search.