fix(web): honor Hermes config-aware SEARXNG_URL lookup

This commit is contained in:
Kailigithub 2026-05-29 11:12:38 +08:00 committed by kshitijk4poor
parent 0c0fbf763b
commit 2ee8c983c0

View file

@ -31,6 +31,19 @@ from agent.web_search_provider import WebSearchProvider
logger = logging.getLogger(__name__)
def _searxng_url() -> str:
"""Return SEARXNG_URL from Hermes config-aware env, falling back to process env."""
try:
from hermes_cli.config import get_env_value
val = get_env_value("SEARXNG_URL")
except Exception:
val = None
if val is None:
val = os.getenv("SEARXNG_URL", "")
return (val or "").strip()
class SearXNGWebSearchProvider(WebSearchProvider):
"""Search via a user-hosted SearXNG instance."""
@ -44,7 +57,7 @@ class SearXNGWebSearchProvider(WebSearchProvider):
def is_available(self) -> bool:
"""Return True when ``SEARXNG_URL`` is set."""
return bool(os.getenv("SEARXNG_URL", "").strip())
return bool(_searxng_url())
def supports_search(self) -> bool:
return True
@ -56,7 +69,7 @@ class SearXNGWebSearchProvider(WebSearchProvider):
"""Execute a search against the configured SearXNG instance."""
import httpx
base_url = os.getenv("SEARXNG_URL", "").strip().rstrip("/")
base_url = _searxng_url().rstrip("/")
if not base_url:
return {"success": False, "error": "SEARXNG_URL is not set"}