Главная / Сравнение / CodeGraph

AI Council и CodeGraph: что умеет каждый

Сравнение возможностей по коду и документации обоих проектов.

Коротко

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.

CodeGraph — local-first слой понимания кода для AI-агентов. Он разбирает репозиторий tree-sitter (wasm или нативный Rust- kernel), складывает символы и связи в SQLite с FTS5 на проект, разрешает ссылки эвристическим резолвером и отдаёт граф агенту через один MCP-инструмент codegraph_explore. Есть CLI, промпт-хук Claude Code, установщик для 11 агентских хостов, файловый watcher, git-хуки и невыпущенный браузерный viewer. Извлечение и разрешение детерминированные, LLM не используется нигде, ключи провайдеров не нужны. MIT.

Это самый близкий к слою понимания кода Council из локальных инструментов и одновременно пример другой философии доставки: не около 60 MCP-инструментов и хуков с гейтом, а один инструмент, который должен быть достаточно полным, чтобы агент перестал читать файлы. Но CodeGraph не держит знания, конвенции, ревью и задачи — это граф символов и потоков, а не платформа команды.

1. Понимание кода

AI Council CodeGraph
Кто читает код Council сам: разбирает репозитории и строит граф. Модель при анализе не вызывается CodeGraph сам: tree-sitter (wasm) или нативный Rust-kernel извлекает символы, затем эвристический резолвер превращает ссылки в рёбра. Модель не вызывается ни на одном шаге
Когда При создании проекта, при push в main (опрос), по кнопке, ночью; после правки файла агентом пересчитываются файл и зависимые При codegraph init/index, затем инкрементальный sync; watcher замечает правки примерно за секунду, git-хуки post-commit/post-merge/post-checkout запускают sync в фоне. Серверного расписания и ночного анализа нет
Что извлекает Слои L0–L10: стек, структура, зависимости и циклы, метрики и вызовы, данные (ORM, DDL), архитектура и запрещённые зависимости, паттерны, стиль, DDD, связь файлов по правкам, смеллы, качество ISO 25010, диаграммы Типизированный граф: 23 вида узлов (file, class, function, method, route, component, …) и 13 видов рёбер (contains, calls, imports, extends, implements, navigates, …). Плюс производные: поток по именованным символам, мёртвый код, иерархия типов, guard-условия вызова, 36 резолверов фреймворков и 43 синтезирующих прохода. Архитектуры, DDD, паттернов, стиля, смеллов, ISO 25010 и диаграмм архитектуры нет
Языки Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв 42 языка в LANGUAGES; 20 языков маршрутизируются в нативный kernel (TS/TSX/JS/JSX, Java, Python, Go, C, C++, Rust, C#, Ruby, PHP, Swift, Kotlin, R, Lua, Luau, Scala, Dart), остальные — через 29 wasm-грамматик с пофайловым fallback. Глубина — символы и связи, без слоёв и метрик
Несколько репозиториев Проект из нескольких репозиториев с общим графом Один корень проекта и одна SQLite-база .codegraph/; монорепозиторий — через подпроекты и projectPath, но общего графа между репозиториями нет
История Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату Истории нет: индекс отражает текущее рабочее дерево. sync сравнивает файловую систему с индексом, а не git-историю; посленулевые рёбра не хранятся
Поиск Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью Лексический поиск: FTS5 с BM25-весами, затем LIKE, fuzzy-Levenshtein и точное имя. Плюс path-пины и name_segment_vocab для camelCase. Семантического и векторного поиска нет; codegraph_explore — один запрос, который собирает исходники, поток и blast radius в пределах ~24K символов

2. Знания и правила

AI Council CodeGraph
База знаний Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл Базы знаний нет. Граф — это производная структура кода, а не знания о решениях, причинах или договорённостях. docs/ и сайт документации — документация проекта, а не запросная база
Актуальность Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер обязан привести цитату; итог — пометка Свежесть индекса, а не знаний: watcher, баннеры pending-файлов, проверка ответа по content-hash (файл, изменившийся на диске, не нарезается под старыми номерами строк), IndexHealth. Проверять «соответствует ли запись коду» нечего — записей нет
Ветки Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает Индексируется рабочее дерево; worktree, созданный внутри основного checkout, детектируется и не должен отвечать чужим индексом. Знаний и версий графа по веткам нет
Правила Конвенции трёх областей: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. MUST/SHOULD, состояния «черновик», «отставлено», «удалено». Проверка перед правкой и по диффу Движка конвенций нет. Есть codegraph.json (расширения, include/exclude/ignore, deprioritize) — это область индексации, а не правила кода. Инструкции агенту пишутся блоком в CLAUDE.md/AGENTS.md/GEMINI.md установщиком, но не проверяются на диффе
Как доходит до агента Хуки Claude Code: правила проекта к каждому сообщению, широкий канал перед действием, контекст файла на Read/Edit/Bash, чек-лист в конце; гейт «сначала база» MCP-инструмент codegraph_explore и промпт-хук Claude Code UserPromptSubmit: HIGH — структурный ключ или код-токен, подтверждённый индексом, тогда полный explore; MEDIUM — слова промпта совпали с сегментами имён, тогда короткий список символов; иначе тихий no-op. Хук fail-open и никогда не ломает промпт. Гейта «сначала база» нет
MCP Сервер: около 60 инструментов, профили, режимы, XML с бюджетом Сервер: один инструмент по умолчанию — codegraph_explore; остальные (node, search, callers, callees, impact, files, status) определены и работают, но агенту не перечисляются, пока не включены через CODEGRAPH_MCP_TOOLS. CLI повторяет те же ответы для людей и не-MCP хостов
Перенос Экспорт и импорт знаний пакетом, копирование между проектами Индекс живёт в .codegraph/ проекта; переноса знаний как пакета нет. Установщик переносит только конфигурацию MCP-сервера и короткий блок инструкций

3. Требования и задачи

AI Council CodeGraph
Требования Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент —
Тикеты Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа —
Работа на своей машине Агент — Claude Code разработчика; Council подаёт контекст и правила через MCP и хуки; ревью локального диффа, разбор диффа, проверка диффа на правила Это единственный режим: CLI, MCP-сервер, промпт-хук, watcher, git-хуки, установщик для 11 хостов (Claude Code, Cursor, Codex, opencode, Hermes, Gemini, Antigravity, Kiro, Copilot VS Code/CLI/JetBrains)
Рабочее пространство Задачи на VM в sysbox-контейнере, живут днями; человек ведёт из чата; наставник; дифф → коммит → push → MR Задач и рабочего пространства нет: только индекс проекта и ответы на запросы
PR Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) —
Процесс Машина состояний задачи: создана → анализ → в работе → MR → закрыта; содержимое шага задаёт человек Процесса задачи нет. Есть жизненный цикл индекса: init → index → sync → watcher/git-hook; состояния pending/failed у неразрешённых ссылок — это память инкрементального конвейера, а не задача

4. Проверка и модели

AI Council CodeGraph
Code review Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей; ревью знаний отдельно ИИ-ревью нет. Граф даёт входные данные для ревью — поток, blast radius, мёртвый код, guard-условия, — но вердикта, второго прохода и публикации в PR нет
Модели Модель обязательна: на хосте два процесса через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. LLM нет вообще: ни извлечение, ни разрешение, ни поиск не вызывают модель; ключей провайдеров и эмбеддингов нет. Анализ полностью локальный и детерминированный
Агенты Claude Code (хуки, MCP); MCP доступен любому клиенту MCP-клиенты и 11 агентских хостов через установщик; промпт-хук Claude Code; CLI. Своего агентского runtime нет
Оценка Телеметрия каждого вызова MCP и хука; повторный поиск агента — признак плохого первого ответа 765 тестовых файлов, около 208 тыс. строк; реальные SQLite и файлы, без моков БД; parity-тесты Rust-kernel против wasm; agent-eval A/B на 7 репозиториях: −35% стоимости, −57% токенов, −46% времени, −71% вызовов инструментов (медиана 4 прогонов). Цель — 1 вызов explore на малом репозитории и 3–5 на большом, Read/Grep = 0. Метрики кода Council: maintainability 0.82; 4 из 7 fitness-функций (нет циклов, нет нарушений слоёв, type hints 0.97, naming 1.0); 17 god classes, 985 long method, 641 нарушение сложности, 1 138 смеллов
Гарантии Гейты тестов, ревью, конвенции Девять инвариантов (порядок NODE_KINDS/EDGE_KINDS — wire-контракт; id узла содержит строку; file-order commit; синтезированные рёбра несут synthesizedBy/registeredAt; один chokepoint чтения пути; kernel/wasm parity), crash-repair после прерванной bulk-загрузки, WAL-valve, agent-eval с защитой от CLI-загрязнения

5. Платформа

AI Council CodeGraph
Пользователи Компании → участники → роли (можно на проект) → права. API-ключи компании. Данные разделены: запрос без компании отвергается. Лицензия и лимиты мест Один пользователь, локально. Компаний, ролей, лицензии и многопользовательской модели нет; 11 агентских хостов — это интеграции, а не пользователи
Интерфейс Около 50 страниц: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health MCP (1 инструмент по умолчанию), CLI (init, index, sync, status, explore, node, callers, callees, impact, affected, install, upgrade, uninstall и др.), промпт-хук, установщик, сайт документации, приватный telemetry-dashboard; браузерный viewer не выпущен (за флагом CODEGRAPH_UI=1)
Мониторинг Телеметрия каждого вызова MCP и хука без PII; около 22 правил Prometheus с тестами; System Health, трассировка Анонимная телеметрия включена по умолчанию, отключается; только завершённые UTC-дни, нулевой stdout, «off значит off»; проверка обновлений. Prometheus и System Health нет
Самовосстановление Сверка Temporal с базой, уборка осиротевших данных, удаление проекта пачками, ночной бэкап и проверка восстановления, ретенция телеметрии WAL-valve с fail-closed, восстановление индексов и FTS-триггеров после падения в bulk-окне, IndexHealth, out-of-process liveness-watchdog, daemon/proxy с переподключением, детект worktree-подмены, uninstall по плану. Ночного бэкапа и проверки восстановления нет
Хранилище Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis Одна SQLite-база .codegraph/ на проект: WAL, FTS5, 5 основных таблиц и служебные; графовой и векторной БД нет
Изоляция Sysbox-контейнер на задачу, одноразовые учётные данные для push, ревьюер знаний только на чтение, проверка прав в одном шлюзе, защита от SSRF Локальный процесс; validatePathWithinRoot — единственный chokepoint чтения исходников; viewer слушает loopback и защищён от DNS rebinding. Песочницы и изоляции задачи нет; многопользовательской изоляции нет
Поставка Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки npm @colbymchenry/codegraph, self-contained bundle с Node 24, install.sh/install.ps1, npx, исходники; Rust-kernel с per-file fallback на wasm; MIT
Лицензия Закрытая MIT

Вывод

CodeGraph — самый близкий к слою понимания кода Council из локальных инструментов, но решает другую задачу. Он строит точный символьный граф и поток по нему, а Council — граф плюс знания, конвенции, ревью и задачи. CodeGraph сильнее в глубине разрешения ссылок и в дисциплине одного инструмента; Council шире по слоям, знаниям, правилам и платформе.

Где сильнее CodeGraph:

  • детерминированное извлечение и разрешение без LLM и без ключей;
  • глубина резолвинга: 36 резолверов фреймворков, 43 синтезирующих прохода, 20 языков в нативном kernel с fallback на wasm;
  • один MCP-инструмент, спроектированный под достаточность: бюджет вызова, бюджет вывода ~24K, cliff/spine/whole-file allocation, isError только для настоящих сбоев;
  • честность границ: dynamic-boundary-report, LOW_CONFIDENCE_MARKER, coverage и freshness-баннеры, проверка ответа по content-hash;
  • мёртвый код как отчёт с 16 исключениями и объяснением, почему строка исключена;
  • синтезированные рёбра с provenance и registeredAt;
  • branch guards и поток по именованным символам;
  • local-first SQLite, watcher, git-хуки, установщик для 11 агентов, MIT;
  • измеренный agent-eval: −35% стоимости, −57% токенов, −46% времени, −71% вызовов.

Где сильнее Council:

  • шире по слоям, а не только по символам. CodeGraph глубже в разрешении символов и потоков; Council добавляет архитектуру и запрещённые зависимости, DDD, паттерны, стиль, смеллы, ISO 25010, диаграммы и историю архитектуры (architecture_as_of). Это разные оси: точность одного символа против понимания проекта целиком.
  • знания привязаны к коду и веткам. Запись живёт на ветке, приходит агенту при касании файла, уходит на перепроверку при изменении кода под ней; ревьюер обязан привести цитату. У CodeGraph есть граф и dead-code отчёт, но нет базы знаний о решениях и причинах.
  • конвенции — авторитетные правила с проверкой. Три области (сущности, пути, проект), MUST/SHOULD, состояния, проверка перед правкой и по диффу; хуки доставляют правила к каждому сообщению и контекст файла на Read/Edit/Bash; гейт «сначала база» блокирует чтение кода до обращения к базе. CodeGraph даёт граф и подсказки, но не правила команды.
  • ревью кода и знаний — сервис. Вердикт по каждому файлу, второй проход, публикация в MR без дублей; отдельное ревью знаний с цитатой и калибровкой. CodeGraph не ревьюит изменение и не публикует находки.
  • задачи на VM, тикеты, MR, команда. Задача в sysbox-контейнере живёт дни, человек ведёт из UI: анализ → дифф → коммит → push → MR; тикеты, трассировка требований, компании/роли/лицензия. Это то, чего у локального графа нет.
  • общий граф на несколько репозиториев и семантический поиск. Один проект может включать несколько репозиториев с общим графом; ask_question отдаёт выдержки с FQN, а не пересказ моделью. CodeGraph держит один корень и одну SQLite-базу, общего графа между репозиториями нет.
  • наблюдаемость и самовосстановление. Телеметрия каждого вызова MCP и хука без PII, около 22 правил Prometheus, System Health, трассировка; сверка Temporal с базой, уборка осиротевших данных, бэкап с проверкой восстановления. Для локального инструмента это не нужно; для серверной платформы — обязательный слой.

Могут ли работать вместе. Да, и это разные слои. CodeGraph — локальный точный граф символов и потоков, Council — сервер знаний, правил, ревью и задач. Оба являются MCP-серверами, поэтому один агент может подключить оба. Пересечение — поиск и граф: CodeGraph глубже в разрешении символов и потоков, Council шире в архитектуре, знаниях и ветках. Автоматической интеграции нет; практическая связка — CodeGraph для «где и как это работает» на машине разработчика, Council для «что мы об этом знаем, какие правила действуют и что говорит ревью».

Сравните на своём проекте

На живом демо покажем работу платформы на реальном проекте, а не шаблонную презентацию.