AI Council — self-hosted платформа для команды разработчиков. Она сама разбирает репозитории в граф кода: стек, структуру, зависимости и циклы, вызовы, данные, архитектуру, DDD, паттерны, стиль, смеллы и качество по ISO 25010. Над графом лежит база знаний проекта — решения, заметки, диаграммы и журналы изменений; каждая запись привязана к месту в коде и к ветке и приходит агенту, когда он трогает нужный файл. Отдельно живут конвенции: правила трёх областей — к сущностям кода, к путям и ко всему проекту — с уровнями MUST/SHOULD, состояниями и проверкой перед правкой и по диффу. Вокруг этого собраны ревью с публикацией в MR, тикеты, задачи и компании с ролями и лицензией. Статический анализ кода модель не использует, но без модели остаётся только он: ревью, ревью знаний, AI-чат и рабочие пространства идут через хостовый воркер, бридж и вендорский CLI/OAuth. Модель живёт на хосте, а не в стеке Council.
Работать с Council можно двумя способами. На машине разработчика Claude Code подключается к нему через MCP и хуки: правила проекта приходят к каждому сообщению, контекст файла — на Read/Edit/Bash, а в конце — чек-лист. В рабочем пространстве задача идёт на VM в изолированном sysbox-контейнере, живёт днями и ведётся человеком из веб-интерфейса: от анализа и диффа до коммита, push и MR.
Claude Context — MCP-плагин семантического поиска по коду для AI-агентов (Claude Code, Cursor, Gemini CLI и др.). Кодовая база режется на чанки, каждый чанк превращается в вектор эмбеддингом и складывается в Milvus/Zilliz Cloud. Запрос тоже превращается в вектор и ищется гибридно: плотный вектор (dense) + BM25 (sparse) с переранжированием RRF. Агент получает не каталоги целиком, а несколько релевантных фрагментов с путём, строками и оценкой. Есть фоновый инкрементальный синк через Merkle DAG, снимок состояния, четыре MCP-инструмента, расширения VS Code и Chrome. Лицензия MIT.
Это чистый RAG-полюс: быстрый поиск по коду, который экономит токены. Графа, знаний, правил, ревью и задач Claude Context не держит — это слой поиска, который Council дополняет пониманием, знаниями и правилами.
| AI Council | Claude Context | |
|---|---|---|
| Кто строит | Council сам: разбирает репозитории и строит граф. Модель при анализе не вызывается | Индекс чанков: AST-нарезка (tree-sitter) + эмбеддинги в Milvus/Zilliz. Графа и слоёв нет |
| Когда | При создании проекта, при push в main (опрос), по кнопке, ночью; после правки файла агентом пересчитываются файл и зависимые | При вызове index_codebase; дальше фоновый синк каждые 5 минут или по триггеру ~/.context/.sync-trigger; инкрементально по Merkle DAG |
| Что извлекает | Слои L0–L10: стек, структура, зависимости и циклы, метрики и вызовы, данные (ORM, DDL), архитектура и запрещённые зависимости, паттерны, стиль, DDD, связь файлов по правкам, смеллы, качество ISO 25010, диаграммы | Чанки кода с путём, диапазоном строк, языком и оценкой близости. Архитектуры, слоёв, DDD, смеллов и качества нет |
| Точность | Граф из статического анализа: широкий, но приблизительный там, где нужен вывод по типам | Поиск по смысловой близости, а не по символу: ссылки, реализации и объявления не выводятся; качество зависит от нарезки и эмбеддинга |
| Языки | Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв | AST-нарезка для 9 языков (JS, TS, Python, Java, Cpp/C, Go, Rust, C#, Scala); остальные — LangChain-фолбэк. Список расширений шире: Markdown, ipynb, Ruby, Swift, Kotlin, PHP и др. |
| Несколько репозиториев | Проект из нескольких репозиториев с общим графом | Коллекция на абсолютный путь: hybrid_code_chunks_<md5(path)[0:8]>. Симлинк или второй клон — отдельный индекс; общего графа нет |
| Внешние анализаторы | SonarQube: забирает найденное; свой сканер (текстовые языки, JVM, .NET, .NET Framework на Windows) | — |
| История | Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату | Истории нет: только Merkle-снимок хэшей файлов для инкрементального синка |
| Поиск | Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью | Гибридный поиск: dense + BM25, RRF k=100, дедупликация фрагментов с пересечением строк > 50%. Графовых запросов и семантического поиска по знаниям нет |
| AI Council | Claude Context | |
|---|---|---|
| База знаний | Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл | Отдельной базы знаний нет: только чанки кода и их векторы. Решений, причин и правил команды не хранит |
| Актуальность | Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер обязан привести цитату; итог — пометка | Индекс обновляется инкрементально по Merkle DAG (added/removed/modified); проверять нечего — знаний нет. Устаревание чанков отслеживается только по хэшу файла |
| Ветки | Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает | Индекс привязан к пути, а не к ветке; смена ветки обнаруживается синком по хэшам файлов, но знаний по веткам нет |
| Правила | Конвенции трёх областей: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. MUST/SHOULD, состояния «черновик», «отставлено», «удалено». Проверка перед правкой и по диффу | Только правила включения файлов: .gitignore, .contextignore, ~/.context/.contextignore, дефолтные игноры и скрытые сегменты. Правил команды, конвенций и проверки диффа нет |
| Как доходит до агента | Хуки Claude Code: правила проекта к каждому сообщению, широкий канал перед действием, контекст файла на Read/Edit/Bash, чек-лист в конце; гейт «сначала база» | Только pull: агент сам вызывает search_code. Фоновый синк держит индекс свежим, но ничего не доставляет без запроса. Хуков и гейтов нет |
| MCP | Сервер: около 60 инструментов, профили, режимы, XML с бюджетом | Сервер: 4 инструмента — index_codebase, search_code, clear_index, get_indexing_status; stdio |
| Перенос | Экспорт и импорт знаний пакетом, копирование между проектами | Переноса знаний нет; индекс живёт в Milvus, состояние — в ~/.context/mcp-codebase-snapshot.json и ~/.context/merkle/ |
| AI Council | Claude Context | |
|---|---|---|
| Требования | Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент | — |
| Тикеты | Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа | — |
| Работа на своей машине | Агент — Claude Code разработчика; Council подаёт контекст и правила через MCP и хуки; ревью локального диффа, разбор диффа, проверка диффа на правила | Это основной режим: MCP-плагин для Claude Code, Cursor, Gemini CLI и др.; библиотека Context + эмбеддинг + Milvus для своих интеграций |
| Рабочее пространство | Задачи на VM в sysbox-контейнере, живут днями; человек ведёт из чата; наставник; дифф → коммит → push → MR | Задач и рабочего пространства нет: только поиск по коду |
| PR | Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) | — |
| Процесс | Машина состояний задачи: создана → анализ → в работе → MR → закрыта; содержимое шага задаёт человек | Процесса задачи нет. evaluation — стенд замера поиска, а не рабочий процесс |
| AI Council | Claude Context | |
|---|---|---|
| Code review | Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей | ИИ-ревью нет. Есть evaluation — стенд сравнения grep-only и grep+Claude Context на SWE-bench Verified |
| Модели | Модель обязательна: на хосте два процесса через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. | Своего LLM нет. Нужен провайдер эмбеддингов: OpenAI (по умолчанию text-embedding-3-small), VoyageAI, Gemini, Ollama или OpenRouter. У Council эмбеддинги — внутренний слой vector-service |
| Агенты | Claude Code (хуки, MCP); MCP доступен любому клиенту | Клиент-агностик MCP: Claude Code, Cursor, Gemini CLI и др.; плюс расширения VS Code и Chrome |
| Оценка | Телеметрия каждого вызова MCP и хука; повторный поиск агента — признак плохого первого ответа | Стенд evaluation: 30 задач SWE-bench Verified, GPT-4o-mini, 3 прогона; F1 0.40 против 0.40, токены −39.4%, вызовы инструментов −36.3%. Важно: edit-сервер — заглушка, поэтому замеряет идентификацию файлов, а не корректность патча |
| Риски | SSRF, RBAC, изоляция задач, ревьюер знаний только на чтение | Ключи в открытом виде (~/.context/.env, настройки VS Code, chrome.storage.sync); MCP без аутентификации (stdio); Chrome вставляет пути в innerHTML без экранирования; VS Code AST-stub грузит wasm с CDN @latest |
| AI Council | Claude Context | |
|---|---|---|
| Пользователи | Компании → участники → роли (можно на проект) → права. API-ключи компании. Данные разделены: запрос без компании отвергается. Лицензия и лимиты мест | Один пользователь, локально. Многопользовательской модели, ролей и лицензии нет |
| Интерфейс | Около 50 страниц: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health | Четыре MCP-инструмента, расширение VS Code (semanticcodesearch: команды, webview, автосинк), расширение Chrome (GitHub Code Vector Search), библиотека |
| Мониторинг | Телеметрия каждого вызова MCP и хука без PII; около 22 правил Prometheus с тестами; System Health, трассировка | Логи в stderr, статус в get_indexing_status, снимок состояния, Merkle-снимок. Prometheus и System Health нет |
| Самовосстановление | Сверка Temporal с базой, уборка осиротевших данных, удаление проекта пачками, ночной бэкап и проверка восстановления, ретенция телеметрии | Восстановление снимка из облака, лечение записей 0/0, межпроцессный lock синка, повторная индексация изменённых файлов. Бэкапа и проверки восстановления нет |
| Хранилище | Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis | Milvus/Zilliz Cloud (коллекция на кодовую базу) + файлы ~/.context: snapshot, Merkle-снимки, .env, lock |
| Изоляция | Sysbox-контейнер на задачу, одноразовые учётные данные для push, ревьюер знаний только на чтение, проверка прав в одном шлюзе, защита от SSRF | Локальный stdio-MCP без аутентификации; ключи в открытом виде; Chrome — широкие host permissions; песочницы нет |
| Поставка | Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки | npm-пакеты @zilliz/claude-context-core и @zilliz/claude-context-mcp, расширения VS Code и Chrome; CI собирает, но тесты не запускает; версии пакетов расходятся |
| Лицензия | Закрытая | MIT |
Claude Context — чистый RAG-полюс: поиск, а не понимание. Он даёт агенту быстрый гибридный поиск по коду и экономит токены, но не строит граф, не держит знания и правила, не ревьюит и не ведёт задачи. Council — наоборот: граф, знания, правила, ревью, задачи, команда. Они дополняют друг друга: Claude Context может быть быстрым поисковым слоем, Council — слоем понимания, знаний и правил.
Где сильнее Claude Context:
Где сильнее Council:
architecture_as_of, версионирование рёбер, внешний анализатор; Claude Context индексирует один путь и не строит архитектуру.Могут ли работать вместе. Да, и это разные слои: Claude Context ищет фрагменты по смыслу, Council даёт граф, знания, правила и ревью. Оба — MCP-серверы, один агент может подключить оба. Пересечение — поиск по коду: у Council есть семантический поиск, regex и графовые запросы, у Claude Context — гибридный поиск с AST-нарезкой; Claude Context быстрее и дешевле на «найди похожее», Council шире на «покажи связи и объясни, почему». Автоматической интеграции нет: индекс Claude Context привязан к пути и не знает веток, знания Council — знают.
На живом демо покажем работу платформы на реальном проекте, а не шаблонную презентацию.