Страница создана 15 января 2026 г. ## 📑 Оглавление | # | Решение | Фокус | Сем. | 10k+ | Claude | Лока<br>льно | Под ключ | Тихий | Код | Инкре<br>мент | Доки | Разде<br>льно | Доверие | | --: | ------------------------------------------------------------------- | ----------------------------------- | :--: | :--: | :----: | :----------: | :------: | :---: | :-: | :-----------: | :--: | :-----------: | :-----: | | | **🎯 Готовые решения «под ключ»** | | | | | | | | | | | | | | 1 | [[#1. Claude Context (MCP-интеграция)\|Claude Context]] | Облачные эмбеддинги | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | 🟡 | ⚠️ | ✅ | ++ | | 2 | [[#2. Claude Context Local\|Claude Context Local]] | Локальные эмбеддинги | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🟡 | ⚠️ | ✅ | ++ | | 3 | [[#3. Code-Graph-RAG\|Code-Graph-RAG]] | Граф зависимостей | ✅ | ✅ | ✅ | ✅ | ⚠️ | 🟠 | ✅ | ✅ | ⚠️ | ⚠️ | ++ | | 5 | [[#5. Agent Fusion\|Agent Fusion]] | Код + документация | ✅ | ✅ | ✅ | ✅ | ✅ | 🟠 | ✅ | ✅ | ✅ | ✅ | ++ | | 16 | [[#16. RAGex (MCP)\|RAGex]] | Hybrid: semantic + symbolic + regex | ✅ | ✅ | ✅ | ✅ | ✅ | 🟠 | ✅ | ✅ | ⚠️ | ⚠️ | + | | 17 | [[#17. DeepContext MCP\|DeepContext]] | Symbol-aware search | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | 🟡 | ❌ | ✅ | + | | 20 | [[#20. RAG-CLI\|RAG-CLI]] | ChromaDB + Multi-Agent | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | 🟡 | ⚠️ | ❌ | ++ | | 22 | [[#22. Sourcegraph MCP\|Sourcegraph MCP]] | Multi-repo enterprise | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | ❌ | ✅ | ✅ | ⚠️ | ✅ | − | | 23 | [[#23. RAGFlow\|RAGFlow]] | Веб-интерфейс, PDF/таблицы | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | 🟠 | ⚠️ | ⚠️ | ✅ | ✅ | − | | 21 | [[#21. Qodo Open Aware\|Qodo Open Aware]] | Enterprise deep research | ✅ | ✅ | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | ❌ | ⚠️ | ✅ | ++ | | 19 | [[#19. MCP-Local-RAG\|MCP-Local-RAG]] | Zero setup | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | + | | | **🗄️ Векторные базы данных** | | | | | | | | | | | | | | 6 | [[#6. Qdrant (локальный режим)\|Qdrant]] | Миллиарды векторов | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | 🟠 | ✅ | ⚠️ | ✅ | ✅ | ++ | | 7 | [[#7. Chroma\|Chroma]] | Простота, быстрый старт | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | ✅ | ✅ | ⚠️ | ✅ | ✅ | + | | 8 | [[#8. FAISS (Facebook AI)\|FAISS]] | Максимальная скорость, GPU | ✅ | ✅ | ⚠️ | ✅ | ❌ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ++ | | 9 | [[#9. LanceDB\|LanceDB]] | Embedded, как SQLite | ✅ | ✅ | ⚠️ | ✅ | ⚠️ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ++ | | | **📓 Решения для Obsidian** | | | | | | | | | | | | | | 10 | [[#10. Smart Composer (Obsidian Plugin)\|Smart Composer]] | Плагин, Ollama | ✅ | ⚠️ | ⚠️ | ✅ | ✅ | 🟠 | ❌ | 🟡 | ✅ | ❌ | ⚠️* | | 11 | [[#11. ObsidianRAG\|ObsidianRAG]] | LangGraph + графы | ✅ | ✅ | ❌ | ✅ | ✅ | 🟠 | ❌ | 🟡 | ✅ | ❌ | + | | 12 | [[#12. EzRAG\|EzRAG]] | Gemini + MCP endpoint | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | + | | | **🤖 Модели эмбеддингов** | | | | | | | | | | | | | | 13 | [[#13. nomic-embed-text (через Ollama)\|nomic-embed-text]] | Лучшая локальная модель | ⚠️ | ✅ | ⚠️ | ✅ | ⚠️ | 🟠 | ✅ | ❌ | ✅ | ⚠️ | ++ | | 14 | [[#14. all-MiniLM-L6-v2 (через Transformers.js)\|all-MiniLM-L6-v2]] | Для браузера/Node.js | ⚠️ | ✅ | ⚠️ | ✅ | ⚠️ | ✅ | ✅ | ❌ | ✅ | ⚠️ | + | | | **🔄 IDE-интеграции** | | | | | | | | | | | | | | 15 | [[#15. Continue.dev\|Continue.dev]] | VS Code/JetBrains | ✅ | ✅ | ⚠️ | ✅ | ✅ | 🟠 | ✅ | ✅ | ⚠️ | ✅ | + | **Доверие:** ++ Надёжный источник · + Молодой проект или инди-разработчик · − Были инциденты · ⚠️* См. сноску **Лидеры:** - 🏆 **Claude Code + Локально + Под ключ:** Claude Context Local, MCP-Local-RAG, RAGex - 🏆 **Универсальное (код + доки + раздельно):** RAGFlow, Sourcegraph MCP, Continue.dev - 🏆 **Автоинкрементальная индексация (✅):** Agent Fusion, Code-Graph-RAG, RAGex, Continue.dev, EzRAG, Sourcegraph MCP ### Дополнительные разделы - [[#📊 Сравнительная таблица: Когда какой инструмент]] - [[#🚀 Рекомендуемая связка для твоих требований]] - [[#📈 Сравнение производительности]] --- ### Условия/Требования - Кодовая база в 10000+ файлов - База знаний (документация) в 10000+ файлов - Использую Claude Code для работы с кодовой базой и базой знаний - Claude Code будет использовать семантический поиск по кодовой базе и по базе знаний - Отдельно выполняется семантический поиск по кодовой базе и отдельно по базе знаний - Семантический поиск по кодовой базе нужен для того, чтобы избежать дублирования кода при создании дизайн дока - В идеале бы найти готовое решение (под ключ) - Решение должно быть локальным (кодовая база и база знаний находятся на локальном компьютере и не должны отправляться на чужие сервера) - **Обязательна возможность интеграции с Claude Code** (через MCP, API или другие способы) --- ### Чек-лист **Соответствие требованиям:** - [ ] — Семантический поиск - [ ] — Поддержка 10000+ файлов - [ ] — Интеграция с Claude Code - [ ] — Локальное выполнение - [ ] — Готовое решение "под ключ" - [ ] — Поддержка кодовой базы - [ ] — Поддержка документации - [ ] — Раздельный поиск - [ ] — Инкрементальная индексация - [ ] — Тихий запуск ##### Как читать чек-листы решений Каждое решение ниже содержит чек-лист **"Соответствие требованиям"** с оценкой по 8 критериям: **Легенда:** - ✅ — **Полностью соответствует** — работает из коробки, никаких компромиссов - ⚠️ — **Частично соответствует** — работает, но требует дополнительной настройки или имеет ограничения - ❌ — **Не соответствует** — не поддерживает это требование --- ### Можно ли доверять продукту? В этом разделе оценивается, насколько продукт можно считать **доверенным** с точки зрения риска **умышленно вредоносного поведения**: кражи данных, установки закладок (backdoor), скрытого удалённого доступа, вредоносных обновлений и других действий, характерных для зловреда (malware). Основная идея: чем **надёжнее и прозрачнее источник** (вендор/команда/репозиторий), тем **ниже вероятность**, что продукт изначально создан как “приманка” для компрометации. --- ### Как читать метрики производительности Для каждого решения указаны две ключевые метрики: #### Скорость поиска (Search Latency) **Что измеряет:** Время от отправки запроса до получения результатов. | Значение | Интерпретация | |----------|---------------| | **\<10ms** | 🚀 Отлично — мгновенный отклик, не замечаешь задержки | | **10-100ms** | ✅ Хорошо — комфортная работа в реальном времени | | **100-500ms** | ⚠️ Приемлемо — небольшая задержка, но терпимо | | **\>500ms** | ❌ Медленно — заметная задержка, мешает работе | #### Скорость индексации (Indexing Throughput) **Что измеряет:** Скорость добавления данных в поисковый индекс. **Общепринятые единицы измерения:** | Метрика | Описание | Где применяется | | ----------------------------- | -------------------------------------- | ------------------------------------ | | **vectors/sec** | Векторов в секунду | Векторные БД (Qdrant, FAISS, Milvus) | | **docs/sec** | Документов в секунду | RAG-системы | | **tokens/sec** | Токенов в секунду | Модели эмбеддингов | | **Build time for 1M vectors** | Время построения индекса на 1M записей | Бенчмарки БД | | Значение (vectors/sec) | Интерпретация | |------------------------|---------------| | **\>50,000** | 🚀 Отлично — GPU-ускорение или оптимизированный CPU | | **10,000-50,000** | ✅ Хорошо — современный CPU | | **1,000-10,000** | ⚠️ Приемлемо — слабый CPU или неоптимизированный код | | **\<1,000** | ❌ Медленно — узкое место в пайплайне | #### Пример чтения метрик ``` **Скорость поиска:** **4.74ms (p50) до 5.79ms (p99)** на запрос. Throughput: **~40-50 QPS**. **Скорость индексации:** **~50,000 vectors/sec** (GPU) или **~5,000 vectors/sec** (CPU). ``` **Как понимать:** - `4.74ms (p50)` — 50% запросов выполняются за 4.74ms или быстрее - `5.79ms (p99)` — 99% запросов выполняются за 5.79ms или быстрее (худший случай) - `40-50 QPS` — система обрабатывает 40-50 запросов в секунду (Queries Per Second) - `50,000 vectors/sec` — 50 тысяч векторов индексируется в секунду (1M векторов = ~20 секунд) > [!WARNING] Важно > Все метрики зависят от железа. Указанные значения — ориентировочные, на типичном железе (современный CPU, SSD, 16GB+ RAM). На слабом железе или HDD — умножай время в 2-5 раз. --- ### Раздельный поиск (множество источников) **Что это?** Способность решения работать с несколькими независимыми базами знаний (источниками), расположенными в разных папках, и выполнять поиск по каждой из них отдельно. **Почему это важно?** У тебя может быть кодовая база, база документации, спецификации, заметки — всё в разных папках. Разным AI-агентам нужен доступ к разным источникам: один агент работает только с кодом, другой — только с документацией, третий — с обоими. Решение должно позволять подключать нужные источники к нужным агентам, не смешивая всё в одну кучу. **Пример:** ``` Агент 1 (пишет код): └── Источник: Кодовая база (/code) Агент 2 (пишет документацию): └── Источник: База знаний (/docs) Агент 3 (ревью архитектуры): ├── Источник: Кодовая база (/code) └── Источник: Спецификации (/specs) ``` **Четыре уровня поддержки:** | Уровень | Что это | Пример | |---------|---------|--------| | **✅ Множество источников** | Решение нативно поддерживает подключение произвольного числа баз знаний (индексов/коллекций/namespaces) и раздельный поиск по каждой | Qdrant (коллекции), Chroma (коллекции) | | **🟡 Два источника** | Решение поддерживает ровно два источника (например, "код" и "документация") — встроено в архитектуру | Agent Fusion (sources: code + docs) | | **⚠️ Только через несколько инстансов** | Одиночный инстанс работает только с одним источником; для множества источников нужно запустить несколько копий решения с разными настройками | MCP-Local-RAG (отдельный сервер на каждый BASE_DIR) | | **❌ Только один источник** | Решение работает только с одним источником, нет возможности добавить второй ни нативно, ни через дублирование инстансов | — | ``` ✅ Множество источников (Qdrant): ┌─────────────┐ ┌──────────────────────────────┐ │ Один инстанс│ ──▶ │ Коллекция "code" │ │ решения │ ──▶ │ Коллекция "docs" │ │ │ ──▶ │ Коллекция "specs" │ └─────────────┘ └──────────────────────────────┘ ⚠️ Только через несколько инстансов (MCP-Local-RAG): ┌─────────────────┐ ┌──────────────┐ │ Инстанс 1 │ ──▶ │ /code │ │ (local-rag-code)│ └──────────────┘ └─────────────────┘ ┌─────────────────┐ ┌──────────────┐ │ Инстанс 2 │ ──▶ │ /docs │ │ (local-rag-docs)│ └──────────────┘ └─────────────────┘ ``` **Легенда в чек-листах:** - ✅ — **Множество источников** — нативная поддержка произвольного числа баз знаний в одном инстансе - 🟡 — **Два источника** — встроенная поддержка ровно двух источников - ⚠️ — **Через несколько инстансов** — для каждого источника нужен отдельный инстанс решения - ❌ — **Только один источник** — невозможно работать с несколькими базами --- ### Инкрементальная индексация **Что это?** Способность системы обновлять только изменённые файлы, а не переиндексировать всю базу с нуля. **Почему это важно?** Если у тебя 10000+ файлов, полная переиндексация может занять часы. При инкрементальной индексации добавление/изменение 15 файлов займёт секунды. | Тип индексации | Что происходит | Время на 15 изменённых файлов | |----------------|----------------|-------------------------------| | **Полная** | Переиндексируется вся база | Минуты — часы | | **Инкрементальная** | Индексируются только изменённые файлы | Секунды | **Три аспекта инкрементальной индексации:** | Аспект | Что это | Пример | |--------|---------|--------| | **Автоотслеживание** | File Watcher: система сама видит, что файл изменился, и запускает переиндексацию | Continue.dev | | **Определение изменений** | Система сравнивает хэши/timestamps и сама понимает, какие файлы изменились (но ты запускаешь проверку вручную) | EzRAG (хэширование файлов) | | **Инкрементальное обновление** | Можно обновить/добавить отдельные записи (upsert), но ты сам определяешь, что именно изменилось | Qdrant, LanceDB, Chroma (upsert API) | ``` ✅ Полная (автоотслеживание + определение + обновление): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Файл │ ──▶ │ File Watcher│ ──▶ │ Сравнение │ ──▶ │ Автообновл. │ │ изменился │ │ (встроен) │ │ hash/time │ │ индекса │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ 🟡 Без автоотслеживания (определение + обновление): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Файл │ ──▶ │ Ты запускаешь│ ──▶ │ Система сама│ ──▶ │ Обновляет │ │ изменился │ │ команду sync │ │ находит diff│ │ только их │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ ⚠️ Только обновление (upsert): ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Файл │ ──▶ │ Ты сам │ ──▶ │ upsert(id, │ │ изменился │ │ определяешь │ │ new_vector) │ └─────────────┘ └─────────────┘ └─────────────┘ ❌ Нет поддержки: ┌─────────────┐ ┌───────────────────────────────────┐ │ Файл │ ──▶ │ Полная переиндексация всей базы │ │ изменился │ │ (удалить индекс + создать заново) │ └─────────────┘ └───────────────────────────────────┘ ``` **Легенда в чек-листах:** - ✅ — **Полная поддержка** — автоотслеживание + определение изменений + инкрементальное обновление - 🟡 — **Без автоотслеживания** — нет File Watcher, но система сама определяет изменённые файлы и обновляет только их - ⚠️ — **Только обновление** — есть upsert/replace API, но ты сам определяешь, что изменилось, и вызываешь вручную - ❌ — **Нет поддержки** — только полная переиндексация с нуля --- ### Тихий запуск **Что это?** Нужно ли пользователю вручную запускать и держать решение запущенным, или Claude Code делает это сам. **Почему это важно?** Если решение требует отдельно запущенного сервера или Docker-контейнера, это дополнительная забота: нужно помнить о запуске перед работой, следить, что процесс не упал, перезапускать после перезагрузки машины. В идеале пользователь просто открывает Claude Code и работает — всё остальное происходит «тихо», без его участия. **Легенда в чек-листах:** | Уровень | Что это | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **✅ Тихий запуск** | Claude Code сам запускает MCP-сервер когда нужно и сам останавливает. Пользователю ничего делать не нужно — открыл Claude Code и работаешь | | **🟠 Фоновый процесс** | Перед работой нужно один раз запустить сервер (например, `docker compose up`). Он работает в фоне, терминал держать открытым не нужно. Но если сервер упадёт или машину перезагрузите — нужно запустить снова | | **❌ Ручной запуск** | Нужно вручную запустить процесс в отдельном терминале и держать его открытым всё время работы | | | | --- ## Подходящие решения ### 🎯 Готовые решения «под ключ» с интеграцией Claude Code #### 1. Claude Context (MCP-интеграция) **Сайт:** [github.com/zilliztech/claude-context](https://github.com/zilliztech/claude-context) **Что это?** MCP-сервер для семантического поиска по коду, который делает весь codebase доступным для Claude Code. **В каком виде?** npm-пакет + MCP-сервер **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟡 **Средний-низкий риск** - **Разработчик:** Zilliz Technologies — серьёзная компания (основана 2017), $113M инвестиций, поддерживает Milvus (33K+ звёзд) - **Клиенты:** Nvidia, PayPal, AT&T, Walmart, Salesforce, IBM - **Open source:** Полностью открытый код (MIT лицензия) - **CVE:** Нет известных уязвимостей для claude-context (есть CVE в Milvus, но исправлены) - **Аудиты:** Нет независимого аудита, но код открыт для проверки - **Вывод:** Легитимный продукт от авторитетной компании, риск вредоноса низкий **Скорость поиска:** ~50-200ms на запрос (зависит от размера базы и провайдера эмбеддингов) **Скорость индексации:** ~100-500 docs/sec (зависит от API провайдера: OpenAI, VoyageAI, Gemini). Build time: ~20-100 сек на 10k файлов. **Проблема, которую решает:** Ты создаёшь новую фичу и боишься, что где-то уже есть похожий код. Без семантического поиска нужно вручную просматривать тысячи файлов или надеяться на везение при текстовом поиске. Claude Context автоматически находит похожие по смыслу участки кода. **Как работает:** Использует гибридный поиск (BM25 + векторные эмбеддинги) для точного нахождения релевантного кода. Интегрируется с Claude Code через протокол MCP — ты упоминаешь `@codebase` в промпте, и Claude получает доступ к семантическому поиску. ``` ┌─────────────┐ ┌──────────────┐ ┌─────────────┐ │ Твой вопрос│ ──▶ │ Claude Code │ ──▶ │ MCP Server │ │ в Claude │ │ + @codebase │ │ (поиск) │ └─────────────┘ └──────────────┘ └─────────────┘ ▲ │ └────────────────────┘ Релевантный код ``` **Соответствие требованиям:** | Критерий | Оценка | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Семантический поиск | ✅ Гибридный: BM25 + векторные эмбеддинги | | Поддержка 10000+ файлов | ✅ Векторная БД масштабируется | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ⚠️ Использует облачные API для эмбеддингов | | Готовое решение "под ключ" | ✅ npm install + конфиг | | Поддержка кодовой базы | ✅ Основное назначение | | Поддержка документации | ⚠️ Может индексировать, но фокус на коде | | Раздельный поиск | ✅ Каждая проиндексированная директория получает отдельную коллекцию в Milvus по формуле `{prefix}_{md5(path)}`; инструменты `index_codebase` и `search_code` принимают параметр `path` — можно индексировать и искать по произвольному числу директорий в одном инстансе | | Инкрементальная индексация | 🟡 Merkle DAG + SHA-256 хэширование, автоматический фоновый polling каждые 5 мин, но нет File Watcher | | Тихий запуск | ✅ stdio MCP — Claude Code сам запускает через `npx`, ничего держать запущенным не нужно | --- #### 2. Claude Context Local **Сайт:** [github.com/FarhanAliRaza/claude-context-local](https://github.com/FarhanAliRaza/claude-context-local) **Что это?** Полностью локальная версия Claude Context с эмбеддингами от Google EmbeddingGemma. **В каком виде?** MCP-сервер **Цена:** Бесплатно + без затрат на API **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Farhan Ali Raza — индивидуальный full-stack разработчик, участник Google Summer of Code 2025 (Django) - **Репутация:** 146 фолловеров на GitHub, успешные проекты (django-bolt 734★), 50+ клиентских проектов на Fiverr с 5★ - **Open source:** Полностью открытый код (GNU GPL v3.0) - **CVE:** Нет известных уязвимостей - **Архитектура:** 100% локальная работа, данные не покидают машину - **Вывод:** Безопасен благодаря локальной архитектуре и открытому коду **Скорость поиска:** ~100-300ms на запрос (локальные эмбеддинги + векторный поиск) **Скорость индексации:** ~50-200 docs/sec (CPU, локальная генерация эмбеддингов EmbeddingGemma). Build time: ~50-200 сек на 10k файлов. **Проблема, которую решает:** Claude Context (выше) использует облачные API для генерации эмбеддингов — это стоит денег и отправляет код наружу. Claude Context Local генерирует эмбеддинги локально на твоём компьютере — **код никогда не покидает машину**. **Как работает:** Использует модель EmbeddingGemma от Google, которая запускается локально. Поддерживает 15 типов файлов и 9+ языков программирования. AST-парсинг разбивает код на осмысленные куски (функции, классы), а не просто построчно. Использует **FAISS** для similarity search. **Принцип работы (подробно):** Это **локальный семантический поиск по коду**, работающий через MCP-протокол для Claude Code. Цепочка: 1. **Парсинг кода** — tree-sitter разбирает файлы (C#, JS, Python, Go и др.) на осмысленные куски: функции, классы, интерфейсы 2. **Эмбеддинги** — модель `google/embeddinggemma-300m` (~1.2 GB, работает локально) превращает каждый кусок кода в вектор 3. **Индекс** — FAISS (векторная БД от Meta) хранит все векторы 4. **Поиск** — запрос на естественном языке тоже превращается в вектор, FAISS находит ближайшие по смыслу куски кода **Как с 15-20 solutions?** Каждый проект хранится **изолированно** — у каждого свой FAISS-индекс и SQLite-база: ``` ~/.claude_code_search/projects/ ├── MyApp_a3f8b2c1/ │ ├── project_info.json (метаданные) │ └── index/ (FAISS-индекс + SQLite) ├── AnotherApp_7d4e9f02/ │ ├── project_info.json │ └── index/ ... ``` К имени проекта добавляется 8-символьный хэш — чтобы два проекта с одинаковым именем из разных папок не конфликтовали. MCP-инструменты для управления проектами: | MCP-инструмент | Что делает | |---|---| | `index_directory` | Индексирует директорию. Принимает `directory_path` и необязательный `project_name` (если не задать — возьмёт имя папки). После индексации проект становится **активным** | | `search_code` | Ищет по **активному** проекту. Фильтры: `file_pattern`, `chunk_type` | | `find_similar_code` | Находит похожий код в активном проекте | | `switch_project` | Переключает активный проект по `project_path` | | `list_projects` | Показывает все проиндексированные проекты | | `clear_index` | Очищает индекс **текущего** проекта | | `get_index_status` | Статистика по индексу | **Как определяется активный проект:** - Сервер хранит внутреннюю переменную `_current_project` (путь) - При вызове `index_directory` проиндексированный проект автоматически становится активным - `switch_project` переключает на другой проект - Если ничего не задано — используется текущая рабочая директория (откуда запущен Claude Code) **Нюансы индексации и поиска:** - `index_directory` — при **первом вызове** делает полную индексацию всего проекта. При **повторных вызовах** — инкрементальную реиндексацию (обрабатывает только изменённые файлы через Merkle DAG) - `search_code` — имеет параметры `auto_reindex=True` и `max_age_minutes=5`, то есть при поиске **сам обновит индекс**, если тот старше 5 минут. Но это только инкрементальная реиндексация уже существующего индекса. Если проект **ни разу не был проиндексирован** — `search_code` **не создаст индекс с нуля**. Поэтому `index_directory` нужно вызвать явно хотя бы один раз для каждого проекта **Рекомендуемый промпт для CLAUDE.md** (положить в корень каждого solution): ```markdown # Semantic Code Search У тебя есть MCP-сервер `code-search` для семантического поиска по коду. ## Правила 1. **В начале сессии** — вызови `index_directory` для текущего проекта. Индексация инкрементальная — обработаются только изменённые файлы. 2. **При поиске кода по смыслу** — используй `search_code` вместо grep/glob. 3. **При поиске дубликатов** — используй `find_similar_code` перед написанием нового кода. ``` **Практически это значит:** 1. Ты открываешь Проект A, говоришь "проиндексируй" — он индексируется и становится активным 2. Поиск идёт **только по активному проекту**, не по всем сразу 3. Переходишь в Проект B — Claude вызовет `switch_project` или `index_directory`, и поиск пойдёт уже по нему 4. Хочешь очистить индекс проекта и переиндексировать заново — `clear_index` чистит только текущий проект **Пример:** ```bash # Установка npm install -g claude-context-local # Индексация кодовой базы claude-context-local index /path/to/your/code # Добавление в Claude Code (config) { "mcpServers": { "claude-context-local": { "command": "claude-context-local", "args": ["serve"] } } } ``` **Соответствие требованиям:** | Критерий | Оценка | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Семантический поиск | ✅ FAISS similarity search + EmbeddingGemma | | Поддержка 10000+ файлов | ✅ Векторная БД | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ✅ EmbeddingGemma работает локально | | Готовое решение "под ключ" | ✅ npm install, простая настройка | | Поддержка кодовой базы | ✅ 15 типов файлов, 9+ языков | | Поддержка документации | ⚠️ Из документации поддерживается **только Markdown**. PDF, DOCX, TXT — не поддерживаются, файлы без подходящего расширения молча пропускаются. Фокус инструмента — код, не документация | | Раздельный поиск | ✅ Каждый проект хранится в изолированном индексе (`~/.claude_code_search/projects/Name_hash/`). Можно проиндексировать `/code` и `/docs` как отдельные проекты и переключаться между ними через `switch_project`. Но `search_code` ищет только по **активному** проекту — нельзя в одном запросе искать сразу по коду и документации | | Инкрементальная индексация | 🟡 Merkle DAG + SHA-256 хэширование, сам определяет изменённые файлы при запуске, но нет File Watcher | | Тихий запуск | ✅ stdio MCP — Claude Code сам запускает через `uv run`, ничего держать запущенным не нужно | --- #### 3. Code-Graph-RAG **Сайт:** [github.com/vitali87/code-graph-rag](https://github.com/vitali87/code-graph-rag) **Что это?** RAG-система с графом знаний для анализа многоязычной кодовой базы. **В каком виде?** MCP-сервер + standalone CLI **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟢 **Низкий-средний риск** - **Разработчик:** Vitali Avagyan (PhD) — индивидуальный разработчик из Лондона с научным бэкграундом - **Репутация:** 65 подписчиков на GitHub, достижения (Starstruck ×3, Pull Shark ×3) - **Open source:** Полностью открытый код (MIT лицензия), 18 контрибьюторов, 1.7k★ - **CVE:** Нет известных уязвимостей - **Аудиты:** Прошёл оценку безопасности MseeP.ai (badge в README) - **Вывод:** Активный проект с хорошими практиками безопасности (sandbox, .env изоляция) **Скорость поиска:** ~50-150ms на запрос (semantic search). **Скорость индексации:** ~30-100 docs/sec (10 потоков, Tree-sitter парсинг + граф). Build time: ~100-300 сек на 10k файлов. **Проблема, которую решает:** Обычный семантический поиск находит похожий код, но не показывает **связи**: что вызывает эту функцию, какие зависимости, как данные проходят через систему. Code-Graph-RAG строит граф кода и отвечает на вопросы типа "кто вызывает этот метод?" и "откуда берутся данные для этой переменной?". **Как работает:** - Парсит код с помощью Tree-sitter (понимает синтаксис разных языков) - Строит граф связей (функции → вызовы → зависимости) - Добавляет семантический поиск через UniXcoder embeddings - Интегрируется с Claude Code через MCP **Пример запроса:** ``` "Покажи все функции, которые обрабатывают ошибки аутентификации" → находит по смыслу (не по имени функции!) → показывает граф вызовов ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ UniXcoder embeddings + граф связей | | Поддержка 10000+ файлов | ✅ Граф масштабируется | | Интеграция с Claude Code | ✅ MCP-сервер | | Локальное выполнение | ✅ UniXcoder embeddings локально | | Готовое решение "под ключ" | ⚠️ Требует настройки графа и зависимостей | | Поддержка кодовой базы | ✅ Tree-sitter, многоязычная | | Поддержка документации | ⚠️ Фокус на структуре кода, не на текстовой документации | | Раздельный поиск | ⚠️ Требует конфигурации отдельных графов | | Инкрементальная индексация | ✅ File Watcher через watchdog, автоматическое обновление графа при изменении файлов | | Тихий запуск | 🟠 MCP-сервер сам запускается в stdio-режиме, но требует отдельно запущенный Docker-контейнер с Memgraph DB | --- #### 5. Agent Fusion **Установка:** [[Установка Agent Fusion]] **Сайт:** [github.com/krokozyab/Agent-Fusion](https://github.com/krokozyab/Agent-fusion) **Что это?** Локальный RAG-движок для кода и документации (Markdown, Word, PDF). **В каком виде?** Standalone JAR (запуск одной командой) **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Sergey Rudenko (@krokozyab) — индивидуальный разработчик из Batumi, специализируется на БД и AI-агентах - **Репутация:** Нет компрометирующих инцидентов, активен на GitHub - **Open source:** Полностью открытый код (MIT лицензия), 431 коммит, 47★ - **CVE:** Нет известных уязвимостей - **Архитектура:** Локальное выполнение без внешних зависимостей - **Вывод:** Безопасен для использования, 100% прозрачный код **Скорость поиска:** Поиск перебором (нет ANN-индексов). На 1k файлов: ~100-200 мс. На 5k файлов: ~0.5-1 сек. На 10k файлов: ~1-3 сек. На 20k файлов: ~2-5 сек. При работе с Claude Code задержка в 1-3 секунды незаметна, так как ответ LLM генерируется 5-30 секунд. Проблемы начнутся при 50k+ файлов. **Скорость индексации:** Первичная: ~500 эмбеддингов/сек, для 10k файлов — ориентировочно 3-5 минут. Инкрементальная (при изменении файла): секунды на один файл. **Проблема, которую решает:** Большинство RAG-решений требуют Docker, сложную настройку, облачные API. Agent Fusion — это **один JAR-файл** с TOML-конфигом. Скачал → настроил → запустил. Никаких внешних зависимостей. **Как работает:** ``` ┌───────────────────────────────────────┐ │ Твой код + документация (MD/PDF) │ └───────────────┬───────────────────────┘ │ индексация (локально) ▼ ┌───────────────────────────────────────┐ │ Векторная база (встроена в JAR) │ └───────────────┬───────────────────────┘ │ ▼ ┌───────────────────────────────────────┐ │ AI-агенты (Claude Code и др.) │ │ получают контекст без галлюцинаций │ └───────────────────────────────────────┘ ``` **Пример:** ```bash # Запуск ./start.sh # или явно: java -jar orchestrator-0.1.0-all.jar --agents fusionagent.toml # Подключение к Claude Code claude mcp add --transport http orchestrator http://127.0.0.1:3000/mcp ``` ```toml # fusionagent.toml — указываем пути к источникам [context.watcher] watch_paths = [ "/path/to/code", "/path/to/documentation", ] [context.embedding] model = "sentence-transformers/all-MiniLM-L6-v2" # локальная модель ``` **Соответствие требованиям:** | Критерий | Оценка | | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Семантический поиск | ✅ Локальные эмбеддинги (ONNX, all-MiniLM-L6-v2) + DuckDB как хранилище векторов | | Поддержка 10000+ файлов | ✅ DuckDB, поиск линейный (O(N), не индексный), но до 10-20k файлов скорость приемлемая (см. "Скорость поиска" выше) | | Интеграция с Claude Code | ✅ MCP-инструмент с прямой интеграцией | | Локальное выполнение | ✅ Всё локально: эмбеддинги (ONNX), база данных (DuckDB), поиск — без облачных зависимостей. Task Manager (опциональный, не связан с поиском) может подключать внешних агентов | | Готовое решение "под ключ" | ✅ Скачал, настроил конфиг, запустил. Требует Java 21+ | | Поддержка кодовой базы | ✅ Индексирует код | | Поддержка документации | ✅ Markdown, Word, PDF | | Раздельный поиск | ✅ Можно указать сколько угодно источников. Данные из всех источников попадают в одни и те же таблицы DuckDB (нет разделения по источникам), но при поиске можно фильтровать по языкам, типам файлов и путям — искать отдельно по коду или по документации | | Инкрементальная индексация | ✅ File Watcher автоматически отслеживает изменения и переиндексирует | | Тихий запуск | 🟠 HTTP MCP-сервер, нужно запустить через `./start.sh`, работает в фоне на `http://127.0.0.1:3000/mcp` | --- #### 16. RAGex (MCP) **Сайт:** [github.com/jbenshetler/mcp-ragex](https://github.com/jbenshetler/mcp-ragex) **Что это?** MCP-сервер с тремя режимами поиска: semantic (RAG), symbolic (tree-sitter), regex (ripgrep). **В каком виде?** MCP-сервер (CLI + интеграция) **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Jeff Benshetler — индивидуальный разработчик с 20+ лет опыта, BranchPoint, Inc. - **Репутация:** M.S. Electrical Engineering (UT Arlington), публикации по C++ - **Open source:** Код открыт, но **ОТСУТСТВУЕТ ЛИЦЕНЗИЯ** — критический момент - **CVE:** Нет известных уязвимостей - **Архитектура:** Docker-изоляция, локальная обработка, валидация входных данных - **Вывод:** Молодой проект (5 месяцев), требуется уточнить лицензию перед использованием **Скорость поиска:** ~50-200ms на запрос (гибридный поиск: vector embeddings + ripgrep) **Скорость индексации:** ~50-150 docs/sec (зависит от выбранного preset: fast/balanced/accurate). Build time: 1-5 мин на средний проект. **Проблема, которую решает:** Claude Code использует grep для поиска — это просто текстовое совпадение без понимания семантики. RAGex даёт Claude "семантические суперспособности": находит похожий по смыслу код и помогает переиспользовать паттерны вместо создания дубликатов. **Как работает:** - **Semantic search:** "Find auth functions" → находит `UserValidator`, `loginHandler`, `AuthMiddleware` - **Symbolic search:** Tree-sitter для понимания структуры кода - **Regex search:** Ripgrep для точных паттернов (`async def.*test`) - Security-first design с валидацией входных данных **Пример:** ```bash # Установка curl ... | sh # Индексация (1-5 минут) ragex start # Подключение к Claude Code ragex register claude | sh # Поиск ragex search "auth functions" ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Гибридный: vector embeddings + symbolic + regex | | Поддержка 10000+ файлов | ✅ Векторная БД + ripgrep масштабируются | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ✅ Эмбеддинги генерируются локально | | Готовое решение "под ключ" | ✅ curl + ragex start + ragex register | | Поддержка кодовой базы | ✅ Основное назначение, multi-language | | Поддержка документации | ⚠️ Может индексировать, но фокус на коде | | Раздельный поиск | ⚠️ Требует настройки отдельных индексов | | Инкрементальная индексация | ✅ File Watcher через watchdog + SHA256 checksums, инкрементальное обновление с debounce 60 сек | | Тихий запуск | 🟠 Docker-based, запускается через `ragex start`, работает в изолированных контейнерах | --- #### 17. DeepContext MCP **Сайт:** [github.com/Wildcard-Official/deepcontext-mcp](https://github.com/Wildcard-Official/deepcontext-mcp) **Что это?** MCP-сервер с symbol-aware семантическим поиском для больших кодовых баз. **В каком виде?** MCP-сервер (npm-пакет) **Цена:** Бесплатно (Open Source, Apache 2.0), требует Wildcard API key **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Wildcard AI, Inc. — стартап Y Combinator (W25) - **Основатели:** Kaushik Mahorker (ex-Scale AI), Yagnya Patel (ex-Tesla, Amazon) - **Open source:** Полностью открытый код (Apache 2.0), 254★, 103 коммита - **CVE:** Нет известных уязвимостей - **Риск:** Отправка кода в облако для индексации (есть self-hosted опция) - **Вывод:** Молодая компания, рекомендуется использовать self-hosted версию для контроля данных **Скорость поиска:** ~50-150ms на запрос (Hybrid Semantic Search: Vector + BM25) **Скорость индексации:** ~30-100 docs/sec. Build time: зависит от размера базы. **Проблема, которую решает:** Большинство поисковых инструментов ищут по тексту и возвращают сотни результатов, которые переполняют контекст Claude. DeepContext понимает **связи между символами** — находит связанный код даже если термины не совпадают. **Как работает:** - Hybrid Semantic Search (Vector + BM25) - Понимает TypeScript и Python - Индексирует символы и их связи **Пример:** ```bash # Для Claude Code claude mcp add deepcontext \ -e WILDCARD_API_KEY=your-key \ -- npx @wildcard-ai/deepcontext@latest ``` **Инструменты MCP:** - `index_codebase` — создаёт индекс - `search_codebase` — поиск на естественном языке - `get_indexing_status` — статус индексации - `clear_index` — очистка индекса **Соответствие требованиям:** | Критерий | Оценка | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Семантический поиск | ✅ Hybrid Semantic Search: Vector + BM25 | | Поддержка 10000+ файлов | ✅ Разработан для больших кодовых баз | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ❌ По умолчанию код отправляется в облако Wildcard для индексации и эмбеддингов (Jina AI, 1024-dim vectors) — требуется Wildcard API key. Есть self-hosted опция, но она требует доработки кода и внешних API (Turbopuffer для векторного хранилища, Jina AI для эмбеддингов), то есть полностью offline не работает | | Готовое решение "под ключ" | ✅ npx + конфиг | | Поддержка кодовой базы | ✅ TypeScript, Python | | Поддержка документации | ❌ Фокус на коде | | Раздельный поиск | ✅ Каждая проиндексированная директория хранится в отдельном namespace `mcp_{hash(path)}`; инструменты `index_codebase` и `search_codebase` принимают параметр `codebase_path` — можно индексировать и искать по произвольному числу кодовых баз в одном инстансе | | Инкрементальная индексация | 🟡 SHA-256 хэш + timestamp, автоматически определяет изменения перед каждым поиском, но нет File Watcher | | Тихий запуск | ✅ stdio MCP — Claude Code сам запускает через `npx @wildcard-ai/deepcontext@latest`, ничего держать запущенным не нужно | --- #### 19. MCP-Local-RAG **Сайт:** [github.com/shinpr/mcp-local-rag](https://github.com/shinpr/mcp-local-rag) **Что это?** Local-first RAG-сервер для разработчиков. Zero setup, полностью приватный. **В каком виде?** MCP-сервер (npm-пакет) **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** shinpr — индивидуальный разработчик из Японии, специализация на AI/LLM - **Репутация:** 15 репозиториев, 21 фолловер, успешные проекты (ai-coding-project-boilerplate 157★) - **Open source:** Полностью открытый код (MIT лицензия), 113 коммитов, 59★ - **CVE:** Нет известных уязвимостей - **Архитектура:** 100% локальное выполнение, без облачных API - **Вывод:** Молодой проект (3 месяца), но активно разрабатывается и безопасен благодаря локальной архитектуре **Скорость поиска:** ~50-200ms на запрос (LanceDB + локальные эмбеддинги) **Скорость индексации:** ~20-50 docs/sec (Transformers.js, all-MiniLM-L6-v2). Build time: модель ~90MB скачивается один раз. **Проблема, которую решает:** Хочешь семантический поиск, но не хочешь Docker, Python, облачные API? MCP-Local-RAG — это **одна команда npx**. Работает полностью offline после первого запуска. **Как работает:** - **Semantic search + keyword boost** — векторный поиск + буст для точных терминов - **Smart semantic chunking** — разбивает документы по смыслу, не по символам - **Quality-first filtering** — группирует результаты по релевантности, а не top-K - Хранит векторы в LanceDB (файловая БД) **Пример:** ```bash # Установка одной командой claude mcp add local-rag \ --scope user \ --env BASE_DIR=/path/to/documents \ -- npx -y mcp-local-rag ``` **MCP-инструменты:** - `ingest_file` / `ingest_data` — добавление документов - `query_documents` — семантический поиск - `list_files` / `delete_file` — управление индексом - `status` — статус системы **Соответствие требованиям:** | Критерий | Оценка | | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Семантический поиск | ✅ Semantic search + keyword boost, all-MiniLM-L6-v2 | | Поддержка 10000+ файлов | ✅ LanceDB масштабируется | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ✅ No API keys, no cloud, работает offline | | Готовое решение "под ключ" | ✅ Одна команда npx | | Поддержка кодовой базы | ✅ Индексирует код | | Поддержка документации | ✅ PDF, DOCX, TXT, Markdown | | Раздельный поиск | ⚠️ Один запущенный сервер = одна база, всё загруженное ищется вместе. Чтобы разделить источники, нужно в конфиге MCP прописать два отдельных сервера с разными `BASE_DIR` и `DB_PATH` (например, `rag-code` для кода и `rag-docs` для документации). Внутри одного сервера фильтрации по папкам или типу контента нет | | Инкрементальная индексация | ⚠️ Нет сканирования папки и нет определения изменений. Инструмент `ingest_file` принимает путь только к одному файлу, не к директории. Нельзя сказать «проиндексируй всю папку `/docs`» — нужно вызывать `ingest_file` для каждого файла по отдельности. Если загрузить тот же файл повторно, старая версия заменится новой, но сервер сам не отслеживает, какие файлы изменились — какие файлы загружать, решаете вы (или агент) вручную | | Тихий запуск | ✅ stdio MCP — Claude Code сам запускает через `npx -y mcp-local-rag`, ничего держать запущенным не нужно | --- #### 20. RAG-CLI **Сайт:** [github.com/ItMeDiaTech/rag-cli](https://github.com/ItMeDiaTech/rag-cli) **Что это?** Local RAG plugin для Claude Code с ChromaDB и Multi-Agent Framework. **В каком виде?** CLI-инструмент + bridge к Claude Code **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** ItMeDiaTech (DiaTech) — индивидуальный разработчик, 20 репозиториев - **Репутация:** Активен в open-source (Pull Shark, YOLO, Quickdraw badges) - **Open source:** Полностью открытый код (MIT лицензия), включён в сторонние каталоги MCP-серверов - **CVE:** Нет известных уязвимостей - **Безопасность:** SECURITY.md с документацией, санитизация ключей, локальная обработка - **Вывод:** Безопасен благодаря локальной архитектуре и прозрачному коду **Скорость поиска:** ~100-300ms на запрос (ChromaDB + cross-encoder reranking) **Скорость индексации:** ~30-80 docs/sec (Sentence Transformers + ChromaDB HNSW). Build time: зависит от размера базы. **Проблема, которую решает:** Claude Code сжигает токены на контекст. RAG-CLI создаёт bridge к Claude Code CLI — **без затрат токенов** на передачу контекста. Использует Multi-Agent Framework для оркестрации. **Как работает:** - **Embeddings:** Sentence Transformers (all-MiniLM-L6-v2) - **Reranking:** Cross-encoder (ms-marco-MiniLM-L-6-v2) - **Storage:** ChromaDB с HNSW-индексацией - **Bridge:** Интеграция с Claude Code CLI **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Sentence Transformers + cross-encoder reranking | | Поддержка 10000+ файлов | ✅ ChromaDB масштабируется | | Интеграция с Claude Code | ✅ Bridge к CLI | | Локальное выполнение | ✅ Всё локально | | Готовое решение "под ключ" | ⚠️ Требует настройки Python | | Поддержка кодовой базы | ✅ Основное назначение | | Поддержка документации | ⚠️ Фокус на коде | | Раздельный поиск | ❌ Синглтон `get_vector_store()` возвращает единственный экземпляр с коллекцией `"rag_documents"`; все документы из любых директорий сливаются в одну коллекцию; нет параметра выбора коллекции ни в CLI, ни в MCP-инструментах | | Инкрементальная индексация | 🟡 SHA-256 хэширование через --incremental флаг, сам определяет изменённые файлы, но нет File Watcher | | Тихий запуск | ✅ Плагин Claude Code, активируется автоматически после установки через `/plugin install` | --- #### 21. Qodo Open Aware **Сайт:** [github.com/qodo-ai/open-aware](https://github.com/qodo-ai/open-aware) **Что это?** Deep research agent для enterprise. LSP + Knowledge Graphs + Vector embeddings. **В каком виде?** MCP-сервер **Цена:** Бесплатно для open source репозиториев **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Qodo AI (ранее CodiumAI) — компания с $50M финансирования (Series A $40M в 2024) - **Клиенты:** Walmart, Intuit, NVIDIA - **Open source:** Open Aware полностью открытый (MIT лицензия), 417★, 48 коммитов - **CVE:** Были найдены уязвимости в Qodo Merge (2024) — все быстро исправлены - **Аудиты:** SOC 2 Type 2 compliance, регулярные penetration тесты - **Вывод:** Легитимная компания с хорошими практиками безопасности, прозрачность в исправлении уязвимостей **Скорость поиска:** ~100-300ms на запрос (зависит от размера базы и сложности запроса) **Скорость индексации:** Данные не публикуются. Enterprise-grade индексация. **Проблема, которую решает:** Qodo Aware — это "deep research" агент для больших enterprise-кодовых баз. **80% accuracy** на multi-repo задачах (vs 45-74% у конкурентов). Используется NVIDIA. **Как работает:** - Language Server Protocol (LSP) - Knowledge Graphs для связей между символами - Vector embeddings для семантического поиска - Доступен как MCP через Context Engine **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Vector embeddings + LSP + Knowledge Graphs | | Поддержка 10000+ файлов | ✅ Enterprise-grade, используется NVIDIA | | Интеграция с Claude Code | ✅ Через MCP Context Engine | | Локальное выполнение | ⚠️ Open Aware для open source, enterprise требует Qodo API | | Готовое решение "под ключ" | ⚠️ Требует настройки | | Поддержка кодовой базы | ✅ Основное назначение | | Поддержка документации | ⚠️ Фокус на коде | | Раздельный поиск | ✅ Массив `repositories` в инструментах `get_context`, `deep_research`, `ask`; 54+ предварительно проиндексированных репозитория; можно указывать произвольное подмножество для каждого запроса | | Инкрементальная индексация | ❌ Облачный сервис Qodo, у пользователя нет контроля над индексацией | | Тихий запуск | ✅ Удалённый HTTP MCP-сервер на `https://open-aware.qodo.ai/mcp`, ничего запускать локально не нужно | --- #### 22. Sourcegraph MCP **Сайт:** [sourcegraph.com/docs/api/mcp](https://sourcegraph.com/docs/api/mcp) **Что это?** Enterprise MCP-сервер для семантического поиска по всем репозиториям. **В каком виде?** MCP-сервер (требует Sourcegraph instance) **Цена:** Enterprise (платный) **Можно ли доверять продукту?** 🟡 **Средний-повышенный риск** - **Разработчик:** Sourcegraph — установленная компания (основана 2013), 1.8M+ инженеров используют - **Клиенты:** Databricks, Plaid, Uber, Lyft, Reddit, GE, Dropbox - **Open source:** Закрытый код (был открытым до августа 2024), Cody остаётся Apache 2.0 - **CVE:** Инцидент 2023 — утечка site-admin токена привела к компрометации (утекли emails и лицензионные ключи) - **Аудиты:** SOC 2 Type II (cloud), ежегодные penetration тесты - **Вывод:** Профессиональная инфраструктура, но закрытый код MCP и недавний инцидент требуют внимания **Скорость поиска:** ~50-200ms на запрос (зависит от размера инстанса) **Скорость индексации:** Enterprise-grade. Поддерживает миллионы файлов. **Проблема, которую решает:** Работаешь с десятками репозиториев и хочешь семантический поиск по всем сразу? Sourcegraph MCP даёт multi-repo поиск с code intelligence: найти определение, найти все использования, искать по commit history. **Как работает:** - **Keyword search:** Точный поиск с boolean операторами - **Semantic search:** Гибкое лингвистическое сопоставление - **Code navigation:** find_definition, find_references - **Commit search:** Поиск по истории изменений **MCP-инструменты:** - `search_code` — поиск кода - `read_file` — чтение файлов с поддержкой ревизий - `find_definition` / `find_references` — навигация по коду - `search_commits` — поиск по commit history **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Keyword + semantic search, code intelligence | | Поддержка 10000+ файлов | ✅ Enterprise, миллионы файлов | | Интеграция с Claude Code | ✅ Нативная через MCP | | Локальное выполнение | ⚠️ Self-hosted Sourcegraph instance | | Готовое решение "под ключ" | ⚠️ Требует развёртывания Sourcegraph | | Поддержка кодовой базы | ✅ Основное назначение, multi-repo | | Поддержка документации | ⚠️ Через code comments и README | | Раздельный поиск | ✅ По разным репозиториям | | Инкрементальная индексация | ✅ Enterprise-grade | | Тихий запуск | ❌ Требует запуска отдельного HTTP-сервера (Python или Docker), который должен работать постоянно | --- #### 23. RAGFlow **Сайт:** [github.com/infiniflow/ragflow](https://github.com/infiniflow/ragflow) **Что это?** Open-source RAG engine с веб-интерфейсом и Agent capabilities. **В каком виде?** Docker (self-hosted) **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟠 **Средний-высокий риск** - **Разработчик:** Infiniflow — компания из Шанхая (Китай), основана 2023, имеет VC-финансирование - **Open source:** Полностью открытый код (Apache 2.0), 71.5K★, 447 контрибьюторов - **CVE:** **4+ критических уязвимостей** найдено (RCE, SQL Injection, SSRF, Auth Bypass) — большинство исправлено в v0.22+ - **Аудиты:** Нет публичных аудитов безопасности - **Геополитика:** Китайская компания (может быть фактором для некоторых организаций) - **Вывод:** Риск умышленного вредоноса низкий, но риск уязвимостей высокий — используйте v0.23.1+ и изолируйте сеть **Скорость поиска:** ~100-500ms на запрос (зависит от размера базы и конфигурации) **Скорость индексации:** ~10-50 docs/sec (deep document understanding добавляет overhead). Build time: зависит от сложности документов. **Проблема, которую решает:** Большинство RAG-систем плохо справляются со сложными документами (PDF с таблицами, схемы, сканы). RAGFlow специализируется на **deep document understanding** — извлекает структуру из PDF, таблиц, визуальных элементов. **Как работает:** - **Deep Document Understanding:** Парсинг PDF, таблиц, layouts - **Visual RAG Editor:** DAG-интерфейс для построения пайплайнов - **Agent capabilities:** Webhook triggers, voice input/output - **Data sync:** AWS S3, Google Drive, Notion, Confluence, Discord **Пример:** ```bash # Требования # CPU: 4+ cores, RAM: 16GB+, Disk: 50GB+ # Docker: 24.0.0+, Docker Compose: 2.26.1+ # Запуск docker compose up -d ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ RAG engine с deep document understanding | | Поддержка 10000+ файлов | ✅ Enterprise-grade | | Интеграция с Claude Code | ⚠️ Через API/webhook, не нативный MCP | | Локальное выполнение | ✅ Docker self-hosted | | Готовое решение "под ключ" | ⚠️ Требует Docker + настройка | | Поддержка кодовой базы | ⚠️ Может индексировать, но фокус на документах | | Поддержка документации | ✅ Основное назначение, PDF/таблицы/images | | Раздельный поиск | ✅ Разные datasets | | Инкрементальная индексация | ⚠️ Для локальных файлов: update API, но нет автоотслеживания; для внешних источников через коннекторы: polling-based sync | | Тихий запуск | 🟠 Docker Compose, запускается через `docker compose up -d`, работает в фоне | --- ### 🗄️ Векторные базы данных (для самостоятельной сборки) > [!TIP] Когда использовать > Если хочешь собрать своё решение с нуля или интегрировать семантический поиск в существующий инструмент. #### 6. Qdrant (локальный режим) **Сайт:** [qdrant.tech](https://qdrant.tech/) **Что это?** Open-source векторная БД с локальным развёртыванием. **В каком виде?** Docker / standalone binary **Цена:** Бесплатно (self-hosted) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Qdrant Solutions GmbH (Берлин, Германия), основана 2020, $37.8M финансирования - **Инвесторы:** Spark Capital, 42 Capital, Unusual Ventures - **Open source:** Полностью открытый код (Apache 2.0), Rust, 28K★ - **CVE:** CVE-2024-3829, CVE-2024-2221 (RCE) — исправлены в v1.9.0+ - **Аудиты:** SOC 2 Type II, ежегодные penetration тесты, bug bounty программа - **Вывод:** Надёжная компания с хорошими практиками безопасности, используйте v1.9.0+ и включайте аутентификацию **Скорость поиска:** **4.74ms (p50) до 5.79ms (p99)** на запрос при 90% recall. При 99% recall: ~30ms (p50), ~38ms (p99). Throughput: **~40-50 QPS** (single-thread). **Скорость индексации:** **~1,300-2,800 vectors/sec** (CPU). Build time: ~6-13 мин на 1M векторов. HDD в 2-3x медленнее SSD. **Проблема, которую решает:** Нужна производительная векторная БД для миллионов эмбеддингов. Qdrant обрабатывает миллиарды векторов с латентностью \< 50ms. **Как работает:** ```bash # Запуск локально docker run -p 6333:6333 qdrant/qdrant # Использование с Python from qdrant_client import QdrantClient client = QdrantClient("localhost", port=6333) ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Similarity search по векторам, основное назначение | | Поддержка 10000+ файлов | ✅ Миллиарды векторов, латентность \<50ms | | Интеграция с Claude Code | ⚠️ Требует написания MCP-сервера | | Локальное выполнение | ✅ Docker/standalone, без облака | | Готовое решение "под ключ" | ⚠️ БД готова, но нужна интеграция | | Поддержка кодовой базы | ✅ Универсальная векторная БД | | Поддержка документации | ✅ Универсальная векторная БД | | Раздельный поиск | ✅ Отдельные коллекции для кода и документации | | Инкрементальная индексация | ⚠️ Upsert API для отдельных точек/векторов, но нет автоотслеживания и определения изменений — ты сам определяешь что обновить | | Тихий запуск | 🟠 Требует отдельно запущенный сервер Qdrant (Docker или standalone), MCP-сервер подключается к нему | --- #### 7. Chroma **Сайт:** [trychroma.com](https://www.trychroma.com/) **Что это?** Легковесная векторная БД для LLM-приложений. **В каком виде?** Python-библиотека **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Chroma Inc. (Сан-Франциско), $18M seed от Quiet Capital, Naval Ravikant, Max Altman - **Open source:** Полностью открытый код (Apache 2.0), 25K★ - **CVE:** Нет известных уязвимостей в самом коде - **Риск:** По умолчанию работает **БЕЗ аутентификации** — если открыть в интернет, данные могут утечь - **Аудиты:** Нет публичных аудитов, нет SECURITY.md - **Вывод:** Молодой проект (3 года), безопасен при правильной конфигурации — включайте аутентификацию **Скорость поиска:** **~20ms (p50), ~170ms (p99)** для 100k vectors. В высоконкурентных сценариях: 4-23s. После Rust rewrite (2025): **4x быстрее** предыдущей Python-версии. Для \<10M vectors типичная латентность **sub-50ms**. **Скорость индексации:** **~60-430 vectors/sec** (CPU). Build time: 39-268 мин на 1M векторов. После Rust rewrite (2025): **4x faster writes**. **Проблема, которую решает:** Самая простая векторная БД для RAG. Если хочешь быстро прототипировать семантический поиск — Chroma запускается в 3 строки кода. **Пример:** ```python import chromadb client = chromadb.Client() collection = client.create_collection("code_embeddings") # Добавление документов collection.add( documents=["def calculate_total()...", "class User..."], ids=["func1", "class1"] ) # Поиск results = collection.query( query_texts=["how to calculate price"], n_results=5 ) ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Similarity search, встроенные эмбеддинги | | Поддержка 10000+ файлов | ✅ Векторная БД для LLM | | Интеграция с Claude Code | ⚠️ Требует написания MCP-сервера | | Локальное выполнение | ✅ Python-библиотека, без облака | | Готовое решение "под ключ" | ⚠️ Простая БД, но нужен код интеграции | | Поддержка кодовой базы | ✅ Универсальная БД | | Поддержка документации | ✅ Универсальная БД | | Раздельный поиск | ✅ Отдельные коллекции | | Инкрементальная индексация | ⚠️ Add/update/upsert API, но нет автоотслеживания и определения изменений — ты сам определяешь что обновить | | Тихий запуск | ✅ MCP-сервер использует embedded-клиент Chroma по умолчанию — отдельный сервер не нужен | --- #### 8. FAISS (Facebook AI) **Сайт:** [github.com/facebookresearch/faiss](https://github.com/facebookresearch/faiss) **Что это?** Библиотека от Meta для быстрого поиска по векторам. **В каком виде?** C++ библиотека + Python bindings **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Meta Platforms, Inc. (Facebook AI Research / FAIR) — мировой лидер в AI - **Open source:** Полностью открытый код (MIT лицензия), 38.8K★, 221 контрибьютор - **CVE:** Нет известных уязвимостей для FAISS - **Использование:** Широко используется в индустрии, научно валидирован (arXiv публикации) - **Аудиты:** Snyk показывает "Safe to use", без прямых уязвимостей - **Вывод:** Максимально надёжная библиотека от крупной корпорации с открытым кодом **Скорость поиска:** **GPU: до 8.1x faster** чем CPU. **Millions QPS** (batch режим на H100). CPU HNSW: ~10-50ms на запрос. **Скорость индексации:** CPU HNSW: **~1,000 vectors/sec**. GPU (cuVS): **~12,000 vectors/sec** (12x faster). DiskANN GPU: **40x faster** чем CPU. **Проблема, которую решает:** Максимальная производительность для огромных датасетов. FAISS — это низкоуровневый инструмент для индексации миллиардов векторов. **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Similarity search, максимальная производительность | | Поддержка 10000+ файлов | ✅ Миллиарды векторов | | Интеграция с Claude Code | ⚠️ Требует написания MCP-сервера | | Локальное выполнение | ✅ C++/Python библиотека | | Готовое решение "под ключ" | ❌ Низкоуровневая библиотека, требует значительной работы | | Поддержка кодовой базы | ✅ Универсальная библиотека | | Поддержка документации | ✅ Универсальная библиотека | | Раздельный поиск | ✅ Отдельные индексы | | Инкрементальная индексация | ⚠️ add_with_ids/remove_ids/update_vectors API, но нет автоотслеживания и определения изменений — ты сам определяешь что обновить | | Тихий запуск | ✅ Библиотека, работает в процессе приложения — отдельный сервер не нужен | --- #### 9. LanceDB **Сайт:** [lancedb.com](https://lancedb.com/) **Что это?** Встраиваемая векторная БД с файловым хранилищем. **В каком виде?** Библиотека (Rust/Python) **Цена:** Бесплатно (Open Source) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** LanceDB Inc. (Сан-Франциско), Y Combinator (W22), $41M финансирования (CRV, Theory Ventures, Databricks) - **Основатели:** Chang She (один из разработчиков pandas), Lei Xu (ex-Cruise, Apache Hadoop HDFS PMC member) - **Open source:** Полностью открытый код (Apache 2.0), Rust/Python, 8.5K★, 167 контрибьюторов - **CVE:** Нет известных уязвимостей - **Аудиты:** SOC 2 Type II, HIPAA compliance - **Вывод:** Надёжная компания с авторитетными основателями и хорошими практиками безопасности **Скорость поиска:** **3-10ms latency** (0.9-0.95 recall). **Thousands QPS** возможно. Disk-based: ~20% снижение QPS. **Скорость индексации:** CPU: **~2,000-5,000 vectors/sec**. GPU: **~50,000-100,000 vectors/sec** (20-26x faster). Build time: секунды на 1M векторов (GPU). **Проблема, которую решает:** Не хочешь запускать отдельный сервер БД — LanceDB работает как SQLite: хранит данные в файлах. Используется в Continue.dev для локального семантического поиска. **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Similarity search, используется в Continue.dev | | Поддержка 10000+ файлов | ✅ Файловое хранилище масштабируется | | Интеграция с Claude Code | ⚠️ Требует написания MCP-сервера | | Локальное выполнение | ✅ Встраиваемая БД, файлы локально | | Готовое решение "под ключ" | ⚠️ БД готова, но нужна интеграция | | Поддержка кодовой базы | ✅ Универсальная БД | | Поддержка документации | ✅ Универсальная БД | | Раздельный поиск | ✅ Отдельные таблицы/датасеты | | Инкрементальная индексация | ⚠️ merge_insert/upsert API, но нет автоотслеживания и определения изменений — ты сам определяешь что обновить | | Тихий запуск | ✅ Embedded БД, работает в процессе MCP-сервера — отдельный сервер не нужен | --- ### 📓 Решения для Obsidian (база знаний) #### 10. Smart Composer (Obsidian Plugin) **Сайт:** [github.com/glowingjade/obsidian-smart-composer](https://github.com/glowingjade/obsidian-smart-composer/wiki/2.3-Vault-Search-(RAG)) **Что это?** Obsidian-плагин с RAG-поиском по заметкам. **В каком виде?** Плагин для Obsidian **Цена:** Бесплатно > *Smart Composer: плагин не находится в активной разработке (occasional updates only) **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Andy Suh (@glowingjade) — индивидуальный разработчик из Сеула, Южная Корея - **Open source:** Полностью открытый код (MIT лицензия), 2000+★, 14 контрибьюторов - **CVE:** Нет известных уязвимостей - **Статус:** Официально в Obsidian Plugin Registry (прошёл базовую верификацию) - **Безопасность:** API ключи хранятся локально, поддержка локальных моделей (Ollama) - **Вывод:** Безопасен, API ключи локальны, возможна полностью офлайн работа через Ollama **Скорость поиска:** ~200-500ms на запрос (зависит от размера vault и провайдера эмбеддингов: Ollama медленнее API) **Скорость индексации:** Ollama: **~2-5 docs/sec**. API: **~10-50 docs/sec**. Build time: 2-15 мин на 1000 заметок. **Проблема, которую решает:** Ты пишешь новую заметку и хочешь, чтобы AI автоматически нашёл связанные заметки. Smart Composer делает семантический поиск по твоему vault и подсказывает релевантный контекст. **Как работает:** - Автоматический поиск по vault при написании - Поддержка локальных моделей - Интеграция с Ollama **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ RAG-поиск по заметкам с Ollama/API | | Поддержка 10000+ файлов | ⚠️ Индексирует весь vault, но лимиты не документированы | | Интеграция с Claude Code | ⚠️ Работает внутри Obsidian, не напрямую с Claude Code | | Локальное выполнение | ✅ Ollama для локальных моделей | | Готовое решение "под ключ" | ✅ Плагин Obsidian, установка в 1 клик | | Поддержка кодовой базы | ❌ Фокус на заметках, не на коде | | Поддержка документации | ✅ Заметки Obsidian | | Раздельный поиск | ❌ Только vault | | Инкрементальная индексация | 🟡 mtime сравнение, автоматически проверяет перед каждым запросом, но нет File Watcher | | Тихий запуск | 🟠 Плагин Obsidian стартует сам, но требует отдельно запущенный Ollama для генерации эмбеддингов | --- #### 11. ObsidianRAG **Сайт:** [github.com/Vasallo94/ObsidianRAG](https://github.com/Vasallo94/ObsidianRAG) **Что это?** RAG-система для Obsidian с LangGraph и Ollama. **В каком виде?** Python-приложение **Цена:** Бесплатно **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Enrique Vasallo Fernández (@Vasallo94) — физик, астроном, data scientist, AI Consultant в IBM (Мадрид) - **Open source:** Полностью открытый код (MIT лицензия), 6★ - **CVE:** Нет известных уязвимостей - **Риск:** Нишевой проект с малой аудиторией (6★) — меньше проверок сообществом - **Архитектура:** Локальная обработка через Ollama - **Вывод:** Безопасен при использовании Ollama, но молодой проект требует осторожности **Скорость поиска:** ~300-800ms на запрос (LangGraph + Ollama локально, граф связей добавляет overhead) **Скорость индексации:** **~1-2 docs/sec** (Ollama + LangGraph + граф связей). Build time: 10-20 мин на 1000 заметок. **Проблема, которую решает:** Продвинутый RAG с использованием графов (LangGraph) для более точного поиска по связанным заметкам. Полностью локально через Ollama. **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ RAG с LangGraph + графы связей | | Поддержка 10000+ файлов | ✅ RAG с графами | | Интеграция с Claude Code | ❌ Нет интеграции — использует только Ollama: Gemma3, Qwen, Llama | | Локальное выполнение | ✅ Ollama + LangGraph локально | | Готовое решение "под ключ" | ✅ pip install obsidianrag + плагин Obsidian | | Поддержка кодовой базы | ❌ Фокус на заметках | | Поддержка документации | ✅ Заметки Obsidian с графом связей | | Раздельный поиск | ❌ Только vault | | Инкрементальная индексация | 🟡 mtime сравнение через FileMetadataTracker, сам определяет изменённые файлы при запуске, но нет File Watcher | | Тихий запуск | 🟠 Требует отдельно запущенный Python-бэкенд (FastAPI + LangGraph) и Ollama | --- #### 12. EzRAG **Сайт:** [github.com/benbjurstrom/ezrag](https://github.com/benbjurstrom/ezrag) **Что это?** Obsidian-плагин для RAG с Gemini + MCP endpoint. **В каком виде?** Obsidian плагин **Цена:** Бесплатно (использует Gemini API) **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Ben Bjurstrom — индивидуальный разработчик из Калифорнии (Burbank), Laravel-специалист - **Репутация:** 131 фолловер на GitHub, успешные проекты (Prezet, otpz, pgvector-scout) - **Open source:** Полностью открытый код (0BSD лицензия), 12★ - **CVE:** Нет известных уязвимостей - **Риск:** Молодой проект (2 месяца), бета-версия (0.1.2), данные отправляются в Google Gemini - **Вывод:** Не для production или критичных данных — молодой проект, зависит от Google API **Скорость поиска:** ~100-300ms на запрос (Gemini File Search API, зависит от сети) **Скорость индексации:** **~5-20 docs/sec** (зависит от сети, загрузка в Gemini Cloud). Build time: 5-10 мин на 1000 заметок. **Проблема, которую решает:** Превращает vault в Gemini File Search index. Бонус: экспортирует MCP endpoint — можешь использовать свои заметки в Claude Code! **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ Gemini File Search API | | Поддержка 10000+ файлов | ✅ Gemini File Search масштабируется | | Интеграция с Claude Code | ✅ Экспортирует MCP endpoint! | | Локальное выполнение | ⚠️ Использует Gemini API, данные отправляются в Google | | Готовое решение "под ключ" | ✅ Плагин Obsidian, простая установка | | Поддержка кодовой базы | ❌ Только Obsidian vault, не работает с репозиториями кода | | Поддержка документации | ✅ Заметки Obsidian | | Раздельный поиск | ❌ Один vault = один Gemini FileSearch Store; `storeName` в настройках — единственная строка, не массив; MCP-инструмент `semanticSearch` не принимает параметр выбора Store; наличие двух MCP tools `keywordSearch` + `semanticSearch` — это два метода поиска, а не два источника данных | | Инкрементальная индексация | ✅ Хэширование + автоматическая переиндексация изменённых файлов | | Тихий запуск | ✅ MCP-сервер встроен в плагин Obsidian, запускается автоматически | --- ### 🤖 Модели эмбеддингов для локального запуска #### 13. nomic-embed-text (через Ollama) **Сайт:** [ollama.com/library/nomic-embed-text](https://ollama.com/library/nomic-embed-text) **Что это?** Лучшая локальная модель для эмбеддингов (превосходит OpenAI ada-002). **В каком виде?** Модель для Ollama **Цена:** Бесплатно **Можно ли доверять продукту?** 🟢 **Низкий риск** - **Разработчик:** Nomic AI — компания с $17M Series B финансирования (Coatue), миссия прозрачности и открытости AI - **Open source:** Полностью открытый код (Apache 2.0), веса на Hugging Face, данные обучения (235M пар) доступны - **CVE:** Нет известных уязвимостей - **Аудиты:** SOC 2 Type II, ежегодные penetration тесты, zero-data retention policy - **Уникальность:** Первая компания, выпустившая ВСЕ артефакты для полного аудита (код, данные, веса) - **Вывод:** Максимально прозрачная и безопасная модель с корпоративными стандартами безопасности **Скорость генерации эмбеддингов:** **~100-200ms на текст** (CPU), **~12s на батч (Nvidia T4)**. Latency пересекает порог 100ms. **Throughput:** Зависит от железа. Mac Metal показывает конкурентную скорость на длинных последовательностях. **Характеристики:** - **768 измерений** (v1/v1.5) или 256-768 с Matryoshka (v1.5/v2) - Контекст до 8192 токенов - Быстрая и точная **Пример:** ```bash # Установка Ollama curl -fsSL https://ollama.com/install.sh | sh # Скачивание модели ollama pull nomic-embed-text # Генерация эмбеддингов ollama embed nomic-embed-text "your code snippet" ``` **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ⚠️ Модель эмбеддингов, не поисковая система — требует интеграции с векторной БД | | Поддержка 10000+ файлов | ✅ Зависит от интеграции | | Интеграция с Claude Code | ⚠️ Модель для других инструментов, не прямая интеграция | | Локальное выполнение | ✅ Ollama работает полностью локально | | Готовое решение "под ключ" | ⚠️ Это модель, требует интеграции в систему | | Поддержка кодовой базы | ✅ Универсальная модель для эмбеддингов | | Поддержка документации | ✅ Универсальная модель для эмбеддингов | | Раздельный поиск | ⚠️ Зависит от архитектуры системы | | Инкрементальная индексация | ❌ Это только модель эмбеддингов — text in, vector out; индексация зависит от сторонней системы | | Тихий запуск | 🟠 Требует отдельно запущенный Ollama в качестве сервера для генерации эмбеддингов | --- #### 14. all-MiniLM-L6-v2 (через Transformers.js) **Что это?** Компактная модель для браузера/Node.js (используется в Continue.dev). **Размер:** 384 измерения **Цена:** Бесплатно **Можно ли доверять продукту?** 🟡 **Средний риск** - **Разработчик:** Sentence Transformers / Hugging Face (Nils Reimers, Tom Aarsen), UKP Lab, TU Darmstadt - **Open source:** Полностью открытый код (Apache 2.0), safetensors формат (защита от pickle RCE) - **CVE:** Нет уязвимостей в самой модели, но платформа Hugging Face имела инциденты в 2024 (не затронули эту модель) - **Риск RAG-poisoning:** Исследование 2024 показало уязвимость архитектуры (не модели) для embedding poisoning - **Аудиты:** Snyk показывает "Safe to use" - **Вывод:** Безопасна для использования, но для критичных систем скачивайте модель локально и проверяйте хеш **Скорость генерации эмбеддингов:** **~50-100ms на текст** (JavaScript/Node.js). **4-5x быстрее** больших моделей. **Throughput:** MiniLM: **~5-14k предложений/сек на CPU** (для справки, это похожая архитектура). **Проблема, которую решает:** Нужна модель, которая работает прямо в JavaScript (без Python). Transformers.js позволяет генерировать эмбеддинги в VS Code или браузере. **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ⚠️ Модель эмбеддингов, не поисковая система — требует интеграции с векторной БД | | Поддержка 10000+ файлов | ✅ Зависит от интеграции | | Интеграция с Claude Code | ⚠️ Модель для других инструментов, требует интеграции | | Локальное выполнение | ✅ JavaScript/Node.js, полностью локально | | Готовое решение "под ключ" | ⚠️ Это модель, требует интеграции | | Поддержка кодовой базы | ✅ Универсальная модель | | Поддержка документации | ✅ Универсальная модель | | Раздельный поиск | ⚠️ Зависит от архитектуры | | Инкрементальная индексация | ❌ Это только модель эмбеддингов — text in, vector out; индексация зависит от сторонней системы | | Тихий запуск | ✅ JS-библиотека (Transformers.js), работает в процессе приложения — ничего запускать отдельно не нужно | --- ### 🔄 IDE-интеграции #### 15. Continue.dev **Сайт:** [continue.dev](https://docs.continue.dev/features/codebase-embeddings) **Что это?** AI-ассистент для VS Code/JetBrains с семантическим поиском. **В каком виде?** Плагин для IDE **Цена:** Бесплатно **Можно ли доверять продукту?** 🟡 **Средний-низкий риск** - **Разработчик:** Continue Dev, Inc. (Сан-Франциско), Y Combinator 2023, $5.1M финансирования - **Основатели:** Ty Dunn (CEO) и Nate Sesti - **Open source:** Полностью открытый код (Apache 2.0), 30.9K★, 440+ контрибьюторов - **CVE:** Нет известных уязвимостей - **Риск:** Телеметрия включена по умолчанию, есть отчёты о проблемах с отключением - **Вывод:** Безопасен при отключении телеметрии (`allowAnonymousTelemetry: false`) и использовании локальных моделей **Скорость поиска:** **3-10ms latency** (использует LanceDB под капотом), thousands QPS возможно **Скорость индексации:** **~20-100 docs/sec** (Transformers.js или Ollama + LanceDB + tree-sitter). Build time: 5-15 мин на средний проект. **Проблема, которую решает:** Хочешь использовать семантический поиск прямо в VS Code. Continue.dev индексирует код через LanceDB и позволяет AI-агентам находить релевантный контекст. (Примечание: `@codebase` deprecated в пользу нового agent mode подхода.) **Как работает:** - Локальные эмбеддинги (Transformers.js или Ollama) - Хранение в LanceDB (файловая БД) - AST-парсинг через tree-sitter - Re-ranking для точности **Соответствие требованиям:** | Критерий | Оценка | |----------|--------| | Семантический поиск | ✅ LanceDB + Transformers.js/Ollama эмбеддинги | | Поддержка 10000+ файлов | ✅ LanceDB масштабируется | | Интеграция с Claude Code | ⚠️ Плагин для VS Code, не для Claude Code | | Локальное выполнение | ✅ Transformers.js/Ollama локально | | Готовое решение "под ключ" | ✅ Плагин IDE, установка из маркетплейса | | Поддержка кодовой базы | ✅ Семантический поиск в VS Code; @codebase deprecated | | Поддержка документации | ⚠️ Может индексировать, но фокус на коде | | Раздельный поиск | ✅ Нативные массивы в конфиге: `docs[]` — произвольное число документационных сайтов с раздельным индексом; `context[]` — множество контекст-провайдеров включая HTTP к разным API; `mcpServers[]` — множество MCP-серверов; документация custom RAG прямо рекомендует хранить индексы разных репозиториев в отдельных таблицах | | Инкрементальная индексация | ✅ Отслеживает изменения файлов по timestamp/hash | | Тихий запуск | 🟠 Расширение IDE стартует само, но требует отдельно запущенный Ollama (или другой LLM-сервер) | --- ### 📊 Сравнительная таблица: Когда какой инструмент | Задача | Лучший инструмент | | ---------------------------------------------- | ------------------------------------------------ | | Интеграция с Claude Code (готовое) | **Claude Context Local** / **MCP-Local-RAG** / **RAGex** | | Максимальная приватность (всё локально) | **Agent Fusion** / **MCP-Local-RAG** / **RAGex** | | Анализ зависимостей и графов | **Code-Graph-RAG** | | Семантический поиск по Obsidian | **Smart Composer** / **ObsidianRAG** / **EzRAG** | | Своё решение с нуля | **Chroma** + **nomic-embed-text** | | Максимальная производительность (млн векторов) | **Qdrant** / **FAISS** | | MCP-сервер для Claude Code | **RAGex** / **DeepContext** / **MCP-Local-RAG** | | Универсальное решение (код + документация) | **Agent Fusion** / **MCP-Local-RAG** / **RAGFlow** | | Гибридный поиск (semantic + symbolic + regex) | **RAGex** | | LSP + Knowledge Graphs | **Qodo Open Aware** | | Enterprise multi-repo поиск | **Sourcegraph MCP** / **Qodo Open Aware** | | Deep document understanding (PDF/таблицы) | **RAGFlow** | | Zero setup (одна команда) | **MCP-Local-RAG** | --- ### 🚀 Рекомендуемая связка для твоих требований > [!IMPORTANT] Оптимальное решение > Учитывая требования (10000+ файлов, локально, Claude Code, готовое решение, раздельный поиск): **Вариант 1: Минимальная настройка (одна команда)** ``` Кодовая база + Документация: └─ MCP-Local-RAG (npx -y mcp-local-rag) ├─ Zero setup, работает offline ├─ Semantic + keyword search └─ PDF, DOCX, TXT, Markdown ``` **Вариант 2: Гибридный поиск** ``` Кодовая база: └─ RAGex (semantic + symbolic + regex) ├─ Tree-sitter для структуры кода ├─ Ripgrep для точных паттернов └─ Vector search для семантики База знаний: └─ MCP-Local-RAG или RAGFlow (для сложных PDF) ``` **Вариант 3: Классическая связка** ``` Кодовая база: ├─ Claude Context Local (MCP для Claude Code) └─ Ollama + nomic-embed-text (локальные эмбеддинги) База знаний (Obsidian): ├─ Smart Composer или ObsidianRAG └─ Ollama + nomic-embed-text Векторная БД (общая): └─ Qdrant (локальный Docker) ``` **Преимущества новых решений:** - ✅ **MCP-Local-RAG:** Zero setup, одна команда, полностью offline - ✅ **RAGex:** Гибридный поиск (semantic + symbolic + regex в одном инструменте) - ✅ **Agent Fusion:** Один JAR, код + документация, File Watcher - ✅ Все решения полностью локальны (данные не уходят с машины) - ✅ Интеграция с Claude Code через MCP - ✅ Бесплатно (Open Source) --- ### 🔗 Дополнительные ресурсы #### Обучающие материалы - [RAG from Scratch (GitHub)](https://github.com/pguso/rag-from-scratch) — пошаговое построение RAG без чёрных ящиков - [Continue.dev + LanceDB](https://lancedb.com/blog/the-future-of-ai-native-development-is-local-inside-continues-lancedb-powered-evolution/) — как Continue использует локальные эмбеддинги - [Building Retrieval API for Obsidian](https://laurentcazanove.com/blog/obsidian-rag-api) — custom RAG для заметок #### Документация - [Ollama Embeddings Guide](https://docs.ollama.com/capabilities/embeddings) - [MCP Documentation (Claude)](https://docs.claude.com/en/docs/mcp) - [Qdrant Vector Search Tutorial](https://qdrant.tech/documentation/advanced-tutorials/code-search/) --- ### 📈 Сравнение производительности #### Готовые решения и RAG-системы | # | Решение | Скорость поиска | Скорость индексации | Единица | |---|---------|-----------------|---------------------|---------| | 1 | **Claude Context** | 50-200ms | 100-500 | docs/sec | | 2 | **Claude Context Local** | 100-300ms | 50-200 | docs/sec | | 3 | **Code-Graph-RAG** | 50-150ms | 30-100 | docs/sec | | 5 | **Agent Fusion** | 100-500ms | 10-50 | docs/sec | | 10 | **Smart Composer** (API) | 200-500ms | 10-50 | docs/sec | | 10 | **Smart Composer** (Ollama) | 200-500ms | 2-5 | docs/sec | | 11 | **ObsidianRAG** | 300-800ms | 1-2 | docs/sec | | 12 | **EzRAG** | 100-300ms | 5-20 | docs/sec | | 15 | **Continue.dev** | 3-10ms | 20-100 | docs/sec | | 16 | **RAGex** | 50-200ms | 50-150 | docs/sec | | 17 | **DeepContext MCP** | 50-150ms | 30-100 | docs/sec | | 19 | **MCP-Local-RAG** | 50-200ms | 20-50 | docs/sec | | 20 | **RAG-CLI** | 100-300ms | 30-80 | docs/sec | | 21 | **Qodo Open Aware** | 100-300ms | — | enterprise | | 22 | **Sourcegraph MCP** | 50-200ms | — | enterprise | | 23 | **RAGFlow** | 100-500ms | 10-50 | docs/sec | #### Векторные базы данных | # | Решение | Скорость поиска | Скорость индексации (CPU) | Скорость индексации (GPU) | Единица | |---|---------|-----------------|---------------------------|---------------------------|---------| | 9 | **LanceDB** | 3-10ms | 2,000-5,000 | 50,000-100,000 | vectors/sec | | 8 | **FAISS** | 10-50ms (CPU) | 1,000 | 12,000+ | vectors/sec | | 6 | **Qdrant** | 4.74-5.79ms | 1,300-2,800 | — | vectors/sec | | 7 | **Chroma** | 20-170ms | 60-430 | — | vectors/sec | #### Модели эмбеддингов | # | Модель | Скорость генерации | Throughput | Размерность | |---|--------|-------------------|------------|-------------| | 13 | **nomic-embed-text** | 100-200ms/текст | ~12s на батч (T4 GPU) | 768D | | 14 | **all-MiniLM-L6-v2** | 50-100ms/текст | 5-14k предложений/сек | 384D | #### Визуальное сравнение: Скорость поиска ``` Быстрее ◀─────────────────────────────────────────────▶ Медленнее LanceDB ████ 3-10ms Continue.dev ████ 3-10ms Qdrant █████ 4.74-5.79ms FAISS (CPU) ██████████ 10-50ms Chroma ██████████████████ 20-170ms Code-Graph-RAG ███████████████ 50-150ms DeepContext ███████████████ 50-150ms RAGex ███████████████████ 50-200ms Claude Context ███████████████████ 50-200ms MCP-Local-RAG ███████████████████ 50-200ms Sourcegraph MCP███████████████████ 50-200ms EzRAG ██████████████████████ 100-300ms Claude Local ██████████████████████ 100-300ms RAG-CLI ██████████████████████ 100-300ms Qodo Aware ██████████████████████ 100-300ms Agent Fusion ████████████████████████████████ 100-500ms RAGFlow ████████████████████████████████ 100-500ms Smart Composer █████████████████████████████████████ 200-500ms ObsidianRAG ████████████████████████████████████████████████ 300-800ms ``` #### Визуальное сравнение: Скорость индексации ``` Быстрее ◀─────────────────────────────────────────────▶ Медленнее LanceDB (GPU) ████████████████████████████████████████ 50,000-100,000 v/s FAISS (GPU) ███████████ 12,000 v/s LanceDB (CPU) █████ 2,000-5,000 v/s Qdrant ███ 1,300-2,800 v/s FAISS (CPU) ██ 1,000 v/s Claude Context ████████████████████ 100-500 d/s RAGex ██████████████ 50-150 d/s Claude Local ██████████ 50-200 d/s Code-Graph-RAG ██████ 30-100 d/s DeepContext ██████ 30-100 d/s RAG-CLI ██████ 30-80 d/s Continue.dev █████ 20-100 d/s MCP-Local-RAG ████ 20-50 d/s Agent Fusion ███ 10-50 d/s RAGFlow ███ 10-50 d/s Smart Composer ██ 2-50 d/s ObsidianRAG █ 1-2 d/s Chroma █ 60-430 v/s ``` > [!NOTE] Примечание к единицам измерения > - **vectors/sec (v/s)** — векторов в секунду, используется для векторных БД > - **docs/sec (d/s)** — документов в секунду, используется для RAG-систем (включает парсинг + эмбеддинги + индексацию) > - Значения **не сравнимы напрямую** между категориями: 1 документ = несколько чанков = несколько векторов