docs(search): document SearXNG setup (#2435)

Co-authored-by: Aqil Aziz <aqilaziz@users.noreply.github.com>
This commit is contained in:
Aqil Aziz
2026-05-22 17:51:24 -07:00
committed by GitHub
co-authored by Aqil Aziz
parent d42835f006
commit 33dc4ec412
3 changed files with 32 additions and 4 deletions
+2 -2
View File
@@ -19,13 +19,13 @@ A plugin-only model means tools live in different processes, behind RPC, with th
* Consistent error handling.
* Zero install friction.
* All output passes through [Smart Token Compression](../token-compression.md) for free.
* Predictable security boundary - filesystem tools respect workspace scoping, network tools go through the OpenHuman proxy.
* Predictable security boundary - filesystem tools respect workspace scoping, and network tools use the managed OpenHuman proxy by default unless you opt into a self-hosted path such as SearXNG.
## The toolbelt
| Family | What it covers |
| ------ | -------------- |
| [Web Search](web-search.md) | Search the live web without bringing your own API key. |
| [Web Search](web-search.md) | Search the live web via the managed proxy, or opt into self-hosted SearXNG. |
| [Web Scraper](web-scraper.md) | Pull clean text out of any URL - articles, docs, READMEs. |
| [Coder](coder.md) | Read/write/edit/patch files, glob, grep, git, lint, test. |
| [Browser & Computer Control](browser-and-computer.md) | Open URLs, screenshot, click, type, move the mouse. |
+29 -1
View File
@@ -5,7 +5,7 @@ icon: magnifying-glass
# Web Search
The agent can search the live web on its own. Backed by a server-side proxy (Parallel) so you don't carry a search API key, the tool returns titles, snippets, and URLs ready to follow up on.
The agent can search the live web on its own. By default this is backed by a server-side proxy (Parallel) so you don't carry a search API key. If you run your own [SearXNG](https://docs.searxng.org/) instance, you can enable `searxng_search` as a private, self-hosted search tool.
## What it's good for
@@ -13,11 +13,39 @@ The agent can search the live web on its own. Backed by a server-side proxy (Par
* Citation hunting - "find me three sources for Y".
* Fact-checking before answering - the agent runs a quick search if it isn't confident.
## Self-hosted SearXNG
SearXNG search is opt-in. When enabled, OpenHuman registers `searxng_search` for agents and MCP clients. The tool calls your configured SearXNG `/search?format=json` endpoint and returns normalized `{ title, url, snippet, source }` results.
Enable it in `config.toml`:
```toml
[searxng]
enabled = true
base_url = "http://localhost:8080"
max_results = 10
default_language = "en"
timeout_seconds = 10
```
Or via environment:
```bash
OPENHUMAN_SEARXNG_ENABLED=true
OPENHUMAN_SEARXNG_BASE_URL=http://localhost:8080
OPENHUMAN_SEARXNG_MAX_RESULTS=10
OPENHUMAN_SEARXNG_DEFAULT_LANGUAGE=en
OPENHUMAN_SEARXNG_TIMEOUT_SECONDS=10
```
Per call, the tool accepts `query`, optional `categories` (`web`, `news`, `images`), optional `language`, and optional `max_results` up to 50. Empty queries, unsupported categories, non-2xx SearXNG responses, and timeout failures return structured tool errors instead of silently falling back to a cloud search provider.
## How it differs from generic HTTP
A pure `http_request` tool can fetch a URL but can't *find* one. Web Search is the discovery layer: it picks the right URLs for the agent, which then hands them off to the [Web Scraper](web-scraper.md) for the actual reading.
## See also
* [MCP Server](../../developing/mcp-server.md) - how `searxng_search` appears to MCP clients.
* [Web Scraper](web-scraper.md) - fetch and clean a specific URL.
* [Smart Token Compression](../token-compression.md) - search snippets are compressed before they hit the model.
+1 -1
View File
@@ -36,7 +36,7 @@ OpenHuman is designed so that the **memory of your life lives on your machine**.
| | |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **LLM calls** | Proxied through the backend under one subscription, then forwarded to the underlying provider (Anthropic / OpenAI / Google / etc.) per the [model router](model-routing/). |
| **Web search proxy** | The native [web search tool](native-tools/web-search.md) calls a backend proxy so you don't carry a search API key. |
| **Web search proxy** | The native [web search tool](native-tools/web-search.md) uses the backend proxy by default so you don't carry a search API key. If you call the optional SearXNG tool, that query goes to your configured SearXNG instance instead. |
| **Integration OAuth & tool proxy** | Token storage and rate-limited request brokering for [118+ integrations](integrations/README.md). |
| **TTS streaming** | Hosted [text-to-speech](native-tools/voice.md) audio streams. Audio is generated and discarded - not retained. |