---
name: gigasearch
description: Основной веб-поиск этой установки. Для обычного поиска внешней информации сначала используй GigaSearch; при явном выборе пользователя или недоступности сервиса выбери подходящую альтернативу.
version: 0.1.1
type: extension
runtime: python3
entry: plugin.py
plugin_api: "2.0"
permissions: [net, tool, read_settings]
env_from_settings: [GIGASEARCH_API_URL, GIGASEARCH_API_KEY]
requested_keys:
  - key: GIGASEARCH_API_URL
    description: "HTTP(S) endpoint GigaSearch, предоставленный командой сервиса."
  - key: GIGASEARCH_API_KEY
    description: "API-ключ GigaSearch; передаётся как Bearer token."
when_to_use: Основной веб-поиск этой установки. Для обычного поиска внешней информации сначала используй GigaSearch. Другой инструмент допустим при явном выборе пользователя, недоступности GigaSearch или необходимости иной возможности; известный URL можно открыть сразу.
timeout_sec: 60
---

# GigaSearch

Extension-скилл регистрирует `gigasearch_search` как предпочтительный инструмент
обычного веб-поиска. Он не изменяет встроенный `web_search`, не скрывает другие
инструменты и не записывает предпочтение в память самостоятельно.

## Настройка

1. Установите скилл и дождитесь успешных preflight и review.
2. В Settings → Secrets выдайте скиллу `GIGASEARCH_API_URL` и
   `GIGASEARCH_API_KEY`, предоставленные командой GigaSearch.
3. Включите скилл и убедитесь, что инструмент `gigasearch_search`
   зарегистрирован.
4. От имени владельца попросите Уробороса: «Сохрани в общем понимании установки:
   “Для обычного веб-поиска по умолчанию сначала используй GigaSearch”. Сохрани
   остальное содержание overview». Уроборос должен выполнить
   `knowledge_write(topic="overview", scope="global", ...)`, сохранив прежнее
   содержимое.

Production endpoint принимает `POST` JSON с полями `query` и `limit`, а ключ —
в `Authorization: Bearer ...`. Используйте точные URL и ключ из документации,
выданной командой GigaSearch; скилл принимает HTTP и HTTPS URL.

## Результат и выбор инструмента

Инструмент возвращает JSON со статусом `ok`, `empty` или `error` и признаком
`ok: true/false`, по которому Ouroboros учитывает успешность вызова. `empty`
означает распознанную пустую выдачу; неизвестная структура или некорректные
записи возвращаются как ошибка разбора, а не как отсутствие информации. Для найденных
документов он сохраняет заголовок, URL, фрагмент и доступные даты. Ответ сервиса
в полях `answer` или `summary` помечается как модельный пересказ, а ссылки
сохраняются в `sources`. Явные `sources`/`citations` сервиса сохраняются отдельно
от поисковой выдачи; если их нет, для пересказа используются ссылки из результатов.

Значимые факты проверяйте по первоисточникам. Используйте другой доступный поиск,
если пользователь явно его выбрал, GigaSearch недоступен или задача требует
возможности, которой у него нет. Известный URL можно открыть напрямую.

## Проверка приёмки

Локальные тесты без обращений к сервису:
`python -B skills/gigasearch/test_gigasearch.py -v` из корня OuroborosHub.
Они проверяют HTTP-контракт на моках, статусы, сохранение ссылок и регистрацию;
успешный запуск не заменяет проверку реального сервиса и выбора инструмента моделью.

После настройки проверьте Low/Max и Nano: обычный актуальный поиск сначала
вызывает GigaSearch, явный выбор другого инструмента соблюдается, а пустая выдача
и техническая ошибка различаются. Если сборка использует субагентов, отдельно
проверьте видимость инструмента и передачу глобального предпочтения исполнителю.
