Skip to main content

Bathys

Bathys

Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов. Это самостоятельный продукт, а не обёртка над чужими сервисами: Bathys реализует весь конвейер сам — метапоиск с дедупликацией и живучестью к блокировкам, двухъярусное извлечение (HTTP-движок по умолчанию, headless-браузер только для JS-страниц), пятистадийную дистилляцию под запрос с жёсткими бюджетами, TTL-кэш сырца, robots-этику, метрики и диагностику. Метапоиск и извлечение оформлены как сменные внутренние движки (SearXNG, Crawl4AI) — их можно заменить, продукт останется Bathys. Облачных квот нет; LLM внутри нет — синтез остаётся за вызывающим агентом, дистилляция детерминированная (BM25).

Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.

python version mcp license

Навигация: ⚡ Quick start · 🧹 Удаление · 🔌 Подключение · 🧠 Научить агента · 🧭 Кейсы · 🛠 Инструменты · 📊 Экономия токенов · 📚 Документация · 📍 Статус

⚡ Quick start

Вариант 1 — установочный скрипт (рекомендуется; Python ≥ 3.10):

curl -fsSL https://raw.githubusercontent.com/Korrnals/bathys/main/install.sh | bash

Скрипт ставит пакет с PyPI в приватный venv (~/.local/share/bathys/venv, без sudo), добавляет его в PATH и запускает полную настройку. Повторный запуск — безопасное обновление.

Вариант 2 — pip (то же самое вручную):

pip install bathys
bathys setup

Что делает bathys setup:

Шаг Действие
1 ставит headless-браузер — нужен только для JS-страниц (обычные страницы читает встроенный HTTP-движок)
2 прописывает MCP-сервер во все найденные харнессы (zcode, Claude, Cursor, VS Code-семейство и другие — всего 14, см. Подключение)
3 копирует субагента-ресёрчера в каталоги найденных харнессов
4 печатает итог и подсказки (bathys doctor — самодиагностика)

SearXNG устанавливать отдельно не нужно — бэкенд поднимается автоматически при первом поиске: сначала проверяется внешний инстанс, затем docker/podman, затем нативный режим (клон в BATHYS_SEARXNG_HOME).

Альтернативные пути — npm, исходники, откат версии

npm (Node-first окружения; обёртка ставит Python-пакет сама):

npm install -g bathys-mcp
bathys-mcp setup

Из исходников (разработка):

git clone https://github.com/Korrnals/bathys.git && cd bathys
python3.12 -m venv .venv && .venv/bin/pip install -e .
.venv/bin/bathys setup

Откат на конкретную версию — переменная установочного скрипта:

BATHYS_INSTALL_VERSION=0.7.0 bash install.sh

Минимальный образ без ensurepip: скрипт и setup сами бутстрапят pip через get-pip.py — подробности в docs/getting-started/install.md.

🧹 Удаление

bathys uninstall               # снять Bathys со всех харнессов
bathys uninstall hermes zcode   # точечно, только указанные
bathys uninstall --purge        # + удалить venv, кэш и данные

uninstall удаляет только записи bathys из конфигов харнессов (перед изменением создаётся бэкап *.bathys-backup-*; чужие серверы и субагенты не затрагиваются). --purge дополнительно удаляет каталоги ~/.local/share/bathys и ~/.cache/bathys; строку bathys/venv/bin из .profile/.bashrc удалите вручную. Подробности и восстановление из бэкапа — в runbook.

🔌 Подключение к харнессу

Автоматически — весь стек: bathys setup (см. выше) прописывает сервер во все найденные харнессы.

Точечно — когда нужно именно здесь:

bathys install                # автодетект всех установленных харнессов
bathys install hermes         # только Hermes (отсутствующий конфиг создастся)
bathys install --list         # все поддерживаемые таргеты с путями
bathys install --print-config # готовые блоки для ручной вставки

Детектируются zcode, Claude Code, Claude Desktop, Cursor, VS Code-семейство (Cline / Roo Code / Kilo Code), Gemini CLI, Windsurf, Zed, opencode, goose, Hermes; форматы каждого — свои (JSON-схемы и YAML-контуры goose/hermes), запись идемпотентна с бэкапом. Для Pi (badlogic pi-mono), у которого нет MCP-конфига, — дроп-ин в AGENTS.md. Кастомные интеграции — в каталоге integrations/.

Ручное подключение (когда правите конфиги сами)

Bathys — stdio MCP-сервер: блок mcpServers один и тот же везде, от харнесса зависит только файл, в который его кладут. command — абсолютный путь к бинарнику (~ внутри JSON не раскрывается); BATHYS_SEARXNG_HOME опциональна. Готовые блоки под каждый клиент: bathys install --print-config.

{
  "mcpServers": {
    "bathys": {
      "command": "/path/to/bathys",
      "env": { "BATHYS_SEARXNG_HOME": "/path/to/searxng-home" }
    }
  }
}
Харнесс Гайд
zcode docs/integrations/zcode.md
Claude Code / Claude Desktop docs/integrations/claude-code.md
Cursor docs/integrations/cursor.md
Любой другой MCP-клиент docs/integrations/generic-mcp.md

🧠 Научить агента работать эффективно

Конфиг — только половина дела. Из коробки харнесс получает instructions-playbook (матрицу выбора инструментов), annotations и три стратегии-промпта — bathys_deep_research, bathys_source_audit, bathys_fresh_scan, — так что выбирает инструменты Bathys уже нативно. Сильнее — профиль: субагент agents/bathys-researcher.md с двумя скиллами, которому глубокий ресёрч делегируется целиком; для клиентов, не показывающих MCP instructions, — дроп-ин agents/HARNESS-DROPIN.md в AGENTS.md / CLAUDE.md / .cursor/rules.

Пошаговая инструкция «из коробки → субагент → дроп-ин» и таблица сигналов футеров — в «Живых кейсах», раздел C.

🧭 Ходовые кейсы

Сравнение технологий. На вопрос «что выбрать под нагрузку в 2026?» агент делает один deep_research, доуточняет запрос терминами из найденного и верифицирует вывод по двум источникам: один вызов вместо цепочки «поиск + N чтений», в контекст попадает 7.5k символов вместо ~35k.

[bathys: 34 raw hits, top 8 considered · dove 3 pages · 35669 ch fetched → 7508 ch returned · 1.3s]

Аудит спорного утверждения. «Правда ли, что в X упали замеры?» — агент берёт стратегию bathys_source_audit: пакетно читает ссылки из обсуждения, ищет опровержения и выносит вердикт по каждому тезису с URL. Битая ссылка стоит одну строку, а не сорванный вызов.

Свежий срез. «Что нового в Y за две недели?» — стратегия bathys_fresh_scan: поиск с time_range=week, пакетное чтение, сводка с датами; протухший cache HIT лечится одним refresh=true.

Полный разбор всех кейсов — пользовательских, автономных агентов и эксплуатации — с живыми диалогами: docs/getting-started/cases.md.

🛠 Инструменты

Инструмент Что делает
deep_research(query, max_sources=3, …) ищет, параллельно читает топ-источники, возвращает слитый дистиллят под запрос. Первый вызов для любого ресёрч-вопроса.
web_search(query, max_results=8, …) ранжированный список ссылок со сниппетами без содержимого страниц; as_json=true — чистый JSON для программ.
read_url(url, query=None, max_chars=8000) читает одну страницу; с query — только релевантные пассажи.
read_urls(urls, query=None, total_chars=12000) пакетно читает до 10 известных страниц; бюджет делится между успешными, сбой страницы — одна строка, не сорванный вызов.

Поиск сужается общими фильтрами time_range, category, engines, language. Живой футер ответа показывает сжатие и кэш: [bathys: 41 raw hits, top 3 considered · dove 3 pages · 35669 ch fetched → 7508 ch returned · 3.2s].

📊 Экономия токенов

Шкала честная и символьная, токены ≈ chars/4; каждая цифра взята из футера реального вызова.

Вызов Из сети Агенту Сжатие
web_search 37 549 симв. 1 986 симв. 18.9×
read_url 17 063 симв. 2 325 симв. 7.3×
deep_research (3 страницы) 35 669 симв. 7 508 симв. 4.7×
  • Двухъярусное извлечение — обычные страницы читает собственный HTTP-движок (миллисекунды, без браузера), JS-оболочки — headless-Chromium; дальше дистилляция под запрос с жёсткими бюджетами символов.
  • Кэш сырца до дистилляции — SQLite хранит сырой текст, поэтому перечитать страницу под другим углом можно бесплатно и без сети.
  • Ноль облачных квот — deep_research заменяет цепочку «поиск + N чтений», то есть N+1 списаний квоты, одним локальным вызовом.

Методика и пороги — в docs/operations/metrics.md.

📚 Документация

Раздел Что внутри Кому
docs/index.md Хаб: дерево документации и три маршрута чтения всем — точка входа
getting-started Установка · конфигурация (20 env) · подключение · живые кейсы новичку
integrations Обзор подключения · zcode · Claude Code · Cursor · любой MCP-клиент при подключении харнесса
architecture Компоненты · конвейер очистки · потоки данных контрибьютору
contracts Инструменты · форматы вывода · модули · конфигурация интегратору
operations Runbook · метрики токен-экономии эксплуатация
product Хартия · функции · роадмап · конкуренты владельцу продукта
adr Шесть принятых архитектурных решений контрибьютору
meta Стайлгайд доков · глоссарий авторам доков

Вне docs/: agents/ — субагент, скиллы, дроп-ин · integrations/ — кастомные интеграции (hermes, pi, zcode) · install.sh — установочный скрипт · npm/bathys-mcp/ — NPM-обёртка · tests/ — юнит-тесты · CHANGELOG.md — история выпусков.

📍 Статус

0.8.0. Выпускная история: v0.2 «Качество выдачи» (ретраи, здоровье движков), v0.3 «Паритет с Tavily» (read_urls, JSON-режим), v0.4 «Эксплуатация» (robots-этика, метрики, bathys-doctor), v0.5 «Identity & Harness» (репозиционирование, промпты, субагент), v0.6 «Native Install» (bathys install), v0.7 «Ship & Setup» (двухъярусное извлечение, bathys setup, однострочник, uninstall) — итоги в CHANGELOG.md.

Репозиторий: github.com/Korrnals/bathys. Пакет опубликован: PyPI bathys (pip install), однострочник установки — выше. До 1.0: публикация npm-обёртки bathys-mcp и первый прогон Docker-образа; CI (matrix 3.10–3.12 + shellcheck) уже в репозитории.

🙏 Благодарности

Bathys стоит на плечах выдающихся открытых проектов — спасибо их авторам и сообществам:

  • SearXNG — движок метапоиска (AGPL-3.0): Bathys запускает его как отдельный процесс и говорит с ним по локальному JSON API; исходники не модифицируются и не распространяются внутри пакета.
  • Crawl4AI — браузерный ярус извлечения (Apache-2.0).
  • MCP Python SDK (MIT), httpx (BSD-3), Playwright (Apache-2.0).

Полные атрибуции и условия использования каждого компонента — в THIRD_PARTY_NOTICES.md.

⚖️ Лицензия

Код Bathys — MIT. Компоненты, которые Bathys устанавливает и использует, лицензированы отдельно и перечислены в THIRD_PARTY_NOTICES.md (в частности, SearXNG — под AGPL-3.0, с соблюдением её условий).

Metadata

Release files for bathys 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bathys 0.8.0
File Size Uploaded
bathys-0.8.0.tar.gz 523.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bathys 0.8.0
File Interpreter ABI Platform
bathys-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 582.0 kB

Release files / bathys-0.8.0.tar.gz

Download URL bathys-0.8.0.tar.gz
Size 523.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b7a406dc91aa2ae1f36410ffe8bd83b295ebea1a141cd1e82ed0aeb4cb70f364
BLAKE2b-256 checksum
How to use checksums
79143e68a3a3a828beca8e39be39fc7806d6a33f3449ac7a6d177046b4a8b20d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / bathys-0.8.0-py3-none-any.whl

Download URL bathys-0.8.0-py3-none-any.whl
Size 58.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
567be24d841d510e9d7241f86ae4ca5f7107643b79d55a086a6e018db60e52a7
BLAKE2b-256 checksum
How to use checksums
7bddd6d3feaa28472e7d36e989b3acdd44c46478d9a54d9e05bbf71895eab82f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release history Release notifications | RSS feed

0.14.1

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

This release

0.8.0 This release

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page