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.
graphify — локальная CLI-утилита на Python (пакет на PyPI — graphifyy). Строит граф знаний по папке проекта. В граф идёт код (около 50 языков и форматов), а с помощью модели — ещё документы, PDF, картинки, видео и аудио. Граф отдаётся агенту через MCP-сервер, skill и правила для ~16 агентов и хуки Claude Code. Хранится в файлах graphify-out/ у разработчика. Пользователь один.
Это ближайший к Council по классу проект: оба строят граф проекта и подают его агенту через MCP и хуки. Разница — в глубине анализа и в том, что построено вокруг графа.
| AI Council | graphify | |
|---|---|---|
| Кто строит граф | Сервер Council, по проекту | CLI на машине разработчика (graphify extract, update); результат — файлы в graphify-out/ |
| Когда обновляется | При создании проекта, при push в main (опрос), по кнопке, ночью. После каждой правки файла агентом (Write/Edit) пересчитываются файл и зависимые от него | Git-хуки post-commit, post-checkout, post-merge, post-rewrite пересобирают граф в фоне; режим watch; update. Есть git merge-драйвер для файла графа |
| Языки | Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв | Около 50 языков и форматов: свои экстракторы плюс общий запасной движок. В том числе COBOL, Fortran, Pascal, Verilog, Solidity, Terraform, SQL, PowerShell. Можно подать SCIP-индексы как точный источник символов |
| Кроме кода | Документы из Google Drive — в базу знаний | Модель извлекает узлы и связи из Markdown, HTML, текста, PDF, картинок (vision), docx/xlsx. Транскрибирует аудио и видео. Читает схему Postgres, Cargo, манифесты зависимостей, Google Workspace, принимает данные из MCP |
| Что извлекает | Слои L0–L10: стек и гайды по фреймворкам; структура; зависимости и циклы; метрики и граф вызовов; слой данных (ORM, DDL); стиль архитектуры и запрещённые зависимости; паттерны проектирования; стиль кода; DDD (bounded contexts через Leiden, агрегаты, события); связь файлов по совместным правкам в git; смеллы; качество по ISO 25010 и fitness-функции; диаграммы | Сущности и связи (импорты, вызовы, определения, наследование), гиперрёбра; сообщества (кластеризация, подписи сообществ моделью); «god nodes»; метрики. Слоёв архитектуры, DDD, смеллов и оценки качества нет |
| Дубли сущностей | — | Слияние дублей: MinHash, при необходимости — модель |
| Несколько репозиториев | Проект из нескольких репозиториев с общим графом | Глобальный граф: графы проектов сливаются, считаются вызовы между репозиториями |
| Внешние анализаторы | SonarQube: забирает найденное; свой сканер (текстовые языки, JVM, .NET, .NET Framework на Windows) | — |
| История | Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату | Граф — текущее состояние; affected — что затронуто изменением |
| Запросы к графу | Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью | query: стартовые узлы по словам вопроса → обход BFS/DFS → подграф текстом в пределах бюджета токенов (без модели). Плюс path, explain, god-nodes, affected |
| AI Council | graphify | |
|---|---|---|
| База знаний | Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл | Отдельной базы нет: граф и «рабочая память». save-result сохраняет вопросы и ответы с оценкой исхода (полезно / тупик / исправлено); reflect сводит их в LESSONS.md, который агент читает в начале следующей сессии |
| Актуальность | Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер-модель (только чтение) обязан привести дословную цитату; итог — пометка, текст не трогается | Граф пересобирается из кода; память по коду не перепроверяется |
| Ветки | Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает | При смене ветки граф пересобирается хуком; граф один — на текущее состояние |
| Правила | Конвенции трёх видов: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. Уровни MUST/SHOULD. Проверка перед правкой и по диффу | Нет. Ставит в агента свои правила «как пользоваться графом» (CLAUDE.md / AGENTS.md / GEMINI.md) |
| Как доходит до агента | Хуки Claude Code: правила проекта к каждому сообщению пользователя; широкий канал перед действием; контекст файла на каждый Read/Edit/Bash; чек-лист в конце хода. Гейт «сначала база»: код не открыть, пока не спросил базу; снять гейт может только человек | Skill и постоянные правила для ~16 агентов: Claude Code, Codex, Cursor, Copilot, Gemini, OpenCode, Kiro, Aider, Amp, Kilo, Trae, Droid, Hermes, Antigravity, Pi, Kimi. Хуки Claude Code на поиск (Grep, grep в Bash) и Read подсказывают «спроси graphify query». В строгом режиме Read файла запрещается, и агенту отдаётся сводка файла из графа (функции со строками) и совет graphify explain. Для Gemini — хук BeforeTool |
| MCP | Около 60 инструментов; профили; режимы на сессию; ответы в XML с ограничением размера | 10 инструментов: query_graph, get_node, get_neighbors, get_community, god_nodes, graph_stats, shortest_path, list_prs, get_pr_impact, triage_prs; stdio и streamable HTTP |
| Перенос | Экспорт и импорт знаний пакетом, копирование между проектами | Файлы графа; merge-graphs; экспорт |
| AI Council | graphify | |
|---|---|---|
| Требования | Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент | — |
| Тикеты | Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа | — |
| Работа на своей машине | Агент — Claude Code разработчика; Council подаёт контекст и правила; ревью локального диффа, разбор диффа, проверка диффа на правила | Единственный режим |
| Рабочее пространство | Задачи на VM в sysbox-контейнере, живут днями; человек ведёт агента из чата интерфейса; наставник; дифф → коммит → push → MR | — |
| PR | Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) | Через gh: список PR, влияние PR на граф, сортировка PR (triage) |
| AI Council | graphify | |
|---|---|---|
| Code review | Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей | Нет; есть оценка влияния PR на граф |
| Модели | Модель обязательна: на хосте два процесса работают через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. | Нужен свой ключ (Anthropic, OpenAI, Gemini, DeepSeek, Moonshot/Kimi, Azure OpenAI, Bedrock), или локальная Ollama, или Claude CLI. Есть оценка стоимости. Модель можно выключить (GRAPHIFY_BACKEND=none) — тогда остаётся только разбор кода |
| AI Council | graphify | |
|---|---|---|
| Пользователи | Компании → участники → роли → права; данные разделены по компаниям; лицензия | Один человек, локально |
| Интерфейс | Около 50 страниц веб-интерфейса: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health | Интерактивный HTML графа, HTML графа вызовов и дерева проекта, локальный веб-сервер (serve), wiki, текстовый отчёт, экспорт в Obsidian и Neo4j |
| Мониторинг | Телеметрия каждого вызова MCP и хука, правила Prometheus с тестами, System Health | diagnose, benchmark, cache-check |
| Хранилище | Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis | Файлы в graphify-out/ (граф, кеш, память); граф в памяти (networkx); Neo4j — только как экспорт |
| Безопасность | Изоляция задач, одноразовые учётные данные, проверка прав в одном шлюзе, защита от SSRF | Отдельный модуль защиты от SSRF и выхода за корень проекта; через него идёт внешний контент и веб-вывод |
| Поставка | Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки | pip install graphifyy, затем graphify install под нужного агента |
graphify — ближайший к Council по идее: граф проекта, который подаётся агенту через MCP и хуки. Как и Council, он подталкивает агента к графу вместо grep и Read, а в строгом режиме запрещает Read — по смыслу это тот же гейт.
Это разные оси: число агентских хостов — охват установки, а число слоёв — глубина анализа; складывать их в один счёт нельзя.
По каким осям сильнее graphify:
По каким осям сильнее Council:
architecture_as_of показывает архитектуру на дату, рёбра версионируются после каждого прогона; SonarQube забирается как внешний анализатор. graphify строит граф проектов, но истории архитектуры по срезам не держит.На живом демо покажем работу платформы на реальном проекте, а не шаблонную презентацию.