> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Поиск SearXNG

OpenClaw поддерживает [SearXNG](https://docs.searxng.org/) как **самостоятельно размещаемый
провайдер без ключа** `web_search`. SearXNG — это метапоисковая система с открытым исходным кодом,
которая объединяет результаты из Google, Bing, DuckDuckGo и других источников.

Преимущества:

* **Бесплатно и без ограничений** -- ключ API или коммерческая подписка не требуются
* **Конфиденциальность / изолированная сеть** -- запросы никогда не покидают вашу сеть
* **Работает везде** -- нет региональных ограничений коммерческих поисковых API

## Настройка

**1. Установите плагин**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw plugins install @openclaw/searxng-plugin
```

**2. Запустите экземпляр SearXNG**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
docker run -d -p 8888:8080 searxng/searxng
```

Либо используйте любое существующее развертывание SearXNG, к которому у вас есть доступ. Инструкции по
настройке для рабочей среды см. в [документации SearXNG](https://docs.searxng.org/).

**3. Настройте**

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw configure --section web
# Выберите "searxng" в качестве провайдера
```

Либо задайте переменную окружения, чтобы она была найдена автоматически:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
export SEARXNG_BASE_URL="http://localhost:8888"
```

## Конфигурация

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  tools: {
    web: {
      search: {
        provider: "searxng",
      },
    },
  },
}
```

Настройки экземпляра SearXNG на уровне плагина:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  plugins: {
    entries: {
      searxng: {
        config: {
          webSearch: {
            baseUrl: "http://localhost:8888",
            categories: "general,news", // необязательно
            language: "en", // необязательно
          },
        },
      },
    },
  },
}
```

`baseUrl` также принимает объект SecretRef (например, `{ source: "env", id: "SEARXNG_BASE_URL" }`).

## Переменная окружения

Вместо конфигурации задайте `SEARXNG_BASE_URL`:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
export SEARXNG_BASE_URL="http://localhost:8888"
```

Порядок разрешения: настроенная строка `baseUrl`, затем встроенный SecretRef переменной окружения в
`baseUrl`, затем `SEARXNG_BASE_URL`. Если ни один из путей конфигурации не задан,
присутствует `SEARXNG_BASE_URL` и провайдер не выбран явно, при автоматическом обнаружении
выбирается SearXNG.

## Справочник по конфигурации плагина

| Поле | Описание |
| - | - |
| `baseUrl` | Базовый URL вашего экземпляра SearXNG (обязательно) |
| `categories` | Категории через запятую, например `general`, `news` или `science` |
| `language` | Код языка результатов, например `en`, `de` или `fr` |

Вызов инструмента `web_search` также принимает `count` (1-10 результатов), `categories`
и `language` как переопределения для отдельного вызова.

## Примечания

* **JSON API** -- используется нативная конечная точка SearXNG `format=json`, а не извлечение данных из HTML
* **URL результатов поиска изображений** -- результаты категории изображений содержат `img_src`, если SearXNG
  возвращает прямой URL изображения
* **Без ключа API** -- работает с любым экземпляром SearXNG без дополнительной настройки
* **Проверка базового URL** -- `baseUrl` должен быть допустимым URL `http://` или `https://`
* **Защита сети** -- базовые URL `http://` должны указывать на доверенный частный
  или loopback-хост (для публичных хостов необходимо использовать `https://`); к базовым URL `https://`, которые
  разрешаются в частный/внутренний адрес, применяется то же разрешение для самостоятельно размещаемых экземпляров,
  а для базовых URL `https://`, которые разрешаются в публичный адрес, сохраняется строгая защита от SSRF
* **Порядок автоматического обнаружения** -- для SearXNG требуется настроенный `baseUrl` (порядковый номер
  200 среди провайдеров, у которых уже есть необходимые учетные данные). Провайдеры без ключа,
  такие как DuckDuckGo или Ollama Web Search, никогда не выбираются автоматически
  неявным образом; они активируются только при явном выборе `provider`
* **Самостоятельное размещение** -- вы контролируете экземпляр, запросы и вышестоящие поисковые системы
* **Категории** по умолчанию имеют значение `general`, если они не настроены
* **Резервная категория** -- если запрос категории, отличной от `general`, завершается успешно, но
  возвращает ноль результатов, OpenClaw один раз повторяет тот же запрос с `general`,
  прежде чем вернуть пустой набор результатов
* **Кэширование результатов** -- идентичные запросы (с одинаковыми запросом, количеством, категориями,
  языком и базовым URL) кэшируются внутри процесса на короткое время жизни
* **Требование к версии** -- плагин объявляет `minHostVersion: >=2026.6.9`

> [!TIP]
>
> Чтобы JSON API SearXNG работал, убедитесь, что в вашем экземпляре SearXNG включен формат `json`
> в `settings.yml` в разделе `search.formats`.

## Связанные материалы

* [Обзор веб-поиска](https://docs2.openclaw.ai/ru/tools/web.md) -- все провайдеры и автоматическое обнаружение
* [Поиск DuckDuckGo](https://docs2.openclaw.ai/ru/tools/duckduckgo-search.md) -- еще один провайдер без ключа
* [Поиск Brave](https://docs2.openclaw.ai/ru/tools/brave-search.md) -- структурированные результаты с бесплатным тарифом
