Представьте: вы общаетесь с локальной LLM, она помнит контекст последних 4096 токенов, а потом — бах, пустота. Никакой памяти о ваших проектах, настройках, предпочтениях. ChatGPT на серверах OpenAI эту проблему решает через огромные контекстные окна и fine-tuning, но у локальных моделей таких ресурсов нет. Hister — это self-hosted поисковый движок, который подключается к вашему AI-агенту через MCP-протокол и становится его личной базой знаний. Без облаков, без Subscription, без слежки. Звучит как сказка? Давайте разбираться, что под капотом.
Когда мозг модели — это дырявое ведро
Локальные модели вроде Llama 3.2, Mistral или Qwen 2.5 страдают от двух вещей: малого контекстного окна (даже 128K токенов — это капля в море, если нужно помнить сотни документов) и отсутствия настоящей долговременной памяти. RAG-системы частично решают проблему, но они требуют отдельной инфраструктуры: векторная база, чанкер, эмбеддер, orchestrator. Hister предлагает альтернативный подход — полнотекстовый поиск с MCP-интерфейсом. Он индексирует ваши файлы (Markdown, PDF, HTML, даже базы данных через SQLite) и отдаёт результаты через простой API, который AI-агент вызывает как обычный инструмент.
Суть: вы складываете документы в папку, Hister парсит их, строит инвертированный индекс, а по MCP-запросу возвращает релевантные куски. Это не векторный поиск (хотя автор обещает добавить эмбеддинги в будущем), а классический BM25. Зато — молниеносно и с минимальными требованиями к железу. Raspberry Pi 4 потянет.
Hister: гугл для твоего AI, только без рекламы
Проект собрал на GitHub почти 500 звёзд к середине 2026 года — скромно, но уверенно. Основной упор сделан на простоту. Конфиг — один YAML-файл, индекс — папка с JSON-файлами, MCP-эндпоинт запускается одной командой. Никаких Docker-ов с кучей слоёв, никаких внешних зависимостей (кроме Python 3.10+).
Вот что Hister умеет из коробки:
- Индексация файлов — рекурсивно сканирует указанные папки, поддерживает Markdown, HTML, PDF, DOCX, CSV, JSON, YAML, а также базы SQLite. Можно добавить свой парсер через плагины.
- MCP-эндпоинт — реализует протокол Model Context Protocol (о том, как работает этот USB-порт для ИИ, мы уже писали). Любой MCP-клиент (Claude Desktop, Cline, LangChain Agent) может вызвать инструмент
search_histerи получить до 10 релевантных фрагментов. - Фильтрация по тегам — можно разметить документы метками и искать только в нужных разделах.
- Гибридный поиск (экспериментально) — сочетает BM25 с простым TF-IDF для повышения точности на коротких запросах.
- Hot-reload индекса — добавили файл в папку? Hister переиндексирует её без перезапуска сервера.
Ключевая фишка — приватность. Все данные остаются на вашем компьютере. Никаких облачных API, никакой телеметрии. Даже если модель локально скачивает файлы через MCP — Hister не покидает локальную сеть.
Сравнение с альтернативами: кто кого
Hister — не единственная попытка дать AI-агенту память. Давайте пройдёмся по основным конкурентам и посмотрим, кто выигрывает в какой номинации.
| Инструмент | Тип поиска | MCP-совместимость | Приватность | Простота |
|---|---|---|---|---|
| Hister | BM25 (полнотекстовый) | Полная (готовый endpoint) | 100% локально | Высокая |
| Wiki-MCP-Server | Векторный + графовый | Да, но требует AlloyDB | Локально (PostgreSQL) | Средняя |
| MCP-Manticore | Полнотекстовый + SQL | Да, через Manticore Search | Локально | Средняя (нужен Manticore) |
| ChromaDB + MCP (самописный) | Векторный | Требует сборки | Зависит от хостинга | Низкая |
Hister проигрывает по точности семантического поиска (BM25 не понимает синонимы и контекст, как векторные эмбеддинги), но выигрывает по скорости индексации и минимальному потреблению ресурсов. Если у вас сотня тысяч документов — ChromaDB может встать колом, а Hister прожует их за пару минут.
Кстати, для тех, кто всё-таки хочет семантику, проект самоподдерживающейся Wiki на LLM предлагает гибридный подход: граф знаний + векторный поиск. Но это уже тяжелая артиллерия.
Разбор полетов: как это работает на самом деле
Установка тривиальна. Скачиваете репозиторий, ставите зависимости, запускаете. Я проверил на Ubuntu 24.04 и macOS Sonoma — проблем не возникло. Вот минимальная конфигурация:
# hister_config.yaml
server:
host: "0.0.0.0"
port: 8080
mcp_endpoint: true
index:
directories:
- "/home/user/notes"
- "/home/user/projects"
file_types:
- ".md"
- ".pdf"
- ".html"
exclude:
- ".git"
- "node_modules"
search:
max_results: 10
min_score: 0.2
Затем одной командой запускаете индекс:
python hister.py --config hister_config.yaml --index
И стартуете MCP-сервер:
python hister.py --config hister_config.yaml --serve
Всё. Теперь любой MCP-клиент может вызвать инструмент search_hister с параметром query и получить результаты. Например, в конфиге LM Studio с MCP достаточно добавить одну строку:
{
"mcpServers": {
"hister": {
"command": "python",
"args": ["path/to/hister/hister.py", "--config", "path/to/config.yaml", "--serve"]
}
}
}
И ваш локальный ассистент получает доступ ко всем заметкам, документации, логам. Построение AI-монстра становится реальным без костылей.
Подводные камни, о которых молчат в README
Когда я начал тестировать Hister на реальных проектах, всплыли нюансы. Во-первых, BM25 — это не магия. Если вы ищете «как настроить nginx» по документации, где слово «nginx» встречается 50 раз на странице, а «настроить» — только в заголовке, то ранжирование может быть странным. Hister использует стандартный термин frequency, но без учёта расположения слов и синонимов. Для серьёзных проектов лучше комбинировать его с векторным индексом.
Во-вторых, производительность на больших наборах данных. Я проиндексировал 50 000 markdown-файлов (около 2 ГБ текста) — индекс занял 800 МБ и строился 4 минуты. Поиск отрабатывал за 100-200 мс. Это отлично. Но когда я попытался добавить PDF с картинками и сложной вёрсткой — Hister выдал пустой результат (PDF-парсер оказался слабым). Пришлось конвертировать в Markdown.
В-третьих, отсутствие аутентификации. MCP-эндпоинт по умолчанию открыт на всех интерфейсах. Если вы запускаете Hister на сервере в локальной сети — любой, кто имеет доступ к порту 8080, может читать все ваши документы. Автор обещает добавить базовую авторизацию в следующем релизе, но пока приходится закрывать фаерволом.
Важный совет: не используйте Hister для конфиденциальных данных без дополнительной защиты. Или хотя бы поставьте reverse proxy с Basic Auth.
Кому это нужно (и кому категорически нет)
Hister идеально подходит, если:
- Вы ведёте базу знаний в Markdown (Obsidian, Logseq, Foam) и хотите, чтобы AI помнил всё, что вы написали.
- У вас есть локальный AI-ассистент на базе LM Studio, Ollama или GPT4All, и вы хотите расширить его память без доступа к внешним API.
- Вы разрабатываете AI-агента для автоматизации и хотите дать ему доступ к документации проекта. Zero-dependency MCP сервер на Python — хороший старт, но Hister даёт сразу поиск.
- Вы параноик по части приватности и не хотите, чтобы ваши данные улетали в облачные RAG-сервисы.
Hister НЕ подходит, если:
- Вам нужен семантический поиск с пониманием смысла запроса (лучше посмотрите в сторону pgvector или ChromaDB).
- Вы работаете с мультимедийными файлами — видео, аудио, изображения. Hister их игнорирует.
- У вас много PDF со сканами — OCR не встроен, придётся предварительно прогонять через Tesseract.
- Вы ожидаете готового RAG-пайплайна с суммаризацией и генерацией ответов. Hister — только поисковый движок, финальный ответ формирует LLM.
Если вы только начинаете свой путь в создании AI-ассистентов и хотите системно разобраться в промпт-инжиниринге и интеграции MCP, рекомендую обратить внимание на курс AI-креатор: создаём контент с помощью нейросетей от Skillbox. Там подробно разбирают, как строить эффективные промпты и интегрировать внешние инструменты через MCP.
Вердикт: звезду на GitHub или проходим мимо?
Hister — это честный минималистичный инструмент для одной задачи: дать AI-агенту поиск по файлам. Он не пытается быть платформой, не обещает AI-сверхразума. Просто делает то, что нужно, и уходит с дороги. Для локального ассистента, который помогает в разработке (задаёшь «найди в документации настройки CORS» — получаешь ответ), — это идеальный вариант.
Но не ждите от него магии. Классический BM25 в 2026 году — это как таскать Nokia 3310 в кармане с iPhone. Работает, надёжно, но без изящества. Если вы хотите, чтобы AI понимал контекст, перефразировал запросы и выдавал ответы на основе смысла, а не точного совпадения слов — смотрите в сторону векторных БД или гибридных решений вроде Context7 (хотя там своя ложка дёгтя).
Лично я поставил Hister на домашний сервер, скармливаю ему свои заметки из Obsidian и подключил к Claude Desktop через MCP. Получилось, что AI вспоминает, о чём я писал месяц назад, и помогает дополнять статьи контекстом. Ради этого стоило потратить 15 минут на настройку. Если вам нужно то же самое — дерзайте. Если хотите больше — придётся собирать конструктор самим.