feat: Add SearXNG self-hosted web search backend#2572
Closed
bhovig wants to merge 1 commit into
Closed
Conversation
- Add SearXNG client functions (_get_searxng_url, _searxng_search) - Update backend selection logic to support 'searxng' backend - Add SearXNG dispatch to web_search_tool - Support SEARXNG_URL environment variable for instance configuration - Normalize SearXNG results to standard web search format - Add documentation with setup instructions and Docker example - Enable self-hosted, privacy-respecting web searches with no API costs Closes: Self-hosted search infrastructure for users wanting data sovereignty
a935573 to
18d14f9
Compare
kshitijk4poor
pushed a commit
that referenced
this pull request
Apr 17, 2026
Adds SearXNG (https://docs.searxng.org) as a self-hosted, privacy-first web search backend alongside Firecrawl, Tavily, Exa, and Parallel. SearXNG is a meta-search engine that aggregates results from 70+ search engines. No API key needed -- just set SEARXNG_URL to your instance. Changes: - tools/web_tools.py: _get_searxng_url(), _searxng_search(), search dispatch, extract falls back to Firecrawl (SearXNG is search-only) - hermes_cli/tools_config.py: SearXNG provider in web tool picker - hermes_cli/config.py: SEARXNG_URL env var, diagnostics, set command - tests/tools/test_web_tools_searxng.py: 15 tests - optional-skills/research/searxng-search/: agent-guided skill - Docs: configuration.md, environment-variables.md, skills catalogs Based on #6071 by @gnanam1990, #8106 by @cro, #2572 by @bhovig, #2710 and #9961 by @StreamOfRon, #7258 by @coldxiangyu163
5 tasks
Collaborator
|
Merged via PR #11562 which consolidates SearXNG integration from multiple community PRs. Your config/env var approach informed the final implementation. Thank you for the contribution! |
venyon2k
pushed a commit
to venyon2k/hermes-agent
that referenced
this pull request
May 3, 2026
Adds SearXNG (https://docs.searxng.org) as a self-hosted, privacy-first web search backend alongside Firecrawl, Tavily, Exa, and Parallel. SearXNG is a meta-search engine that aggregates results from 70+ search engines. No API key needed -- just set SEARXNG_URL to your instance. Changes: - tools/web_tools.py: _get_searxng_url(), _searxng_search(), search dispatch, extract falls back to Firecrawl (SearXNG is search-only) - hermes_cli/tools_config.py: SearXNG provider in web tool picker - hermes_cli/config.py: SEARXNG_URL env var, diagnostics, set command - tests/tools/test_web_tools_searxng.py: 15 tests - optional-skills/research/searxng-search/: agent-guided skill - Docs: configuration.md, environment-variables.md, skills catalogs Based on NousResearch#6071 by @gnanam1990, NousResearch#8106 by @cro, NousResearch#2572 by @bhovig,
BestJoester
pushed a commit
to BestJoester/hermes-agent
that referenced
this pull request
May 8, 2026
Adds SearXNG (https://docs.searxng.org) as a self-hosted, privacy-first web search backend alongside Firecrawl, Tavily, Exa, and Parallel. SearXNG is a meta-search engine that aggregates results from 70+ search engines. No API key needed -- just set SEARXNG_URL to your instance. Changes: - tools/web_tools.py: _get_searxng_url(), _searxng_search(), search dispatch, extract falls back to Firecrawl (SearXNG is search-only) - hermes_cli/tools_config.py: SearXNG provider in web tool picker - hermes_cli/config.py: SEARXNG_URL env var, diagnostics, set command - tests/tools/test_web_tools_searxng.py: 15 tests - optional-skills/research/searxng-search/: agent-guided skill - Docs: configuration.md, environment-variables.md, skills catalogs Based on NousResearch#6071 by @gnanam1990, NousResearch#8106 by @cro, NousResearch#2572 by @bhovig,
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What This Does
Adds SearXNG as a self-hosted, privacy-respecting web search backend for Hermes Agent.
Motivation
Many users want self-hosted search infrastructure with:
Changes
tools/web_tools.py (+54 lines): SearXNG client implementation
_get_searxng_url()- Reads SEARXNG_URL from env_searxng_search()- Searches via SearXNG APIwebsite/docs/user-guide/configuration.md (+29 lines): Documentation
Testing
✅ Tested and working with self-hosted SearXNG instance at https://searxng.duckbill-eagle.ts.net/
✅ Auto-detects SEARXNG_URL environment variable
✅ Returns results in standard format compatible with existing tools
✅ Fallback to other backends if SearXNG unavailable
Setup
Implementation Notes