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.
Serena — MCP-сервер и набор инструментов, который даёт LLM-агенту «возможности IDE»: поиск и правку кода на уровне символов, а не строк. Опирается на языковые серверы (LSP) или платный плагин JetBrains: 80+ языковых серверов, name paths (Class/method), ссылки, реализации, объявления, диагностика, rename, safe delete, символьные правки с атомарной записью. Работает двумя интерфейсами — отдельные MCP-инструменты и REPL (serena_repl с фасадами s.lsp, s.edit, s.fs, s.mem, s.shell, s.cfg, s.ext, s.jb). Есть память в Markdown с ссылками mem:, хуки для клиентов, CLI, dashboard, JetBrains-плагин. Один активный проект на процесс; клиент-агностик: Claude Code, Codex, Copilot CLI, JetBrains AI Assistant, Claude Desktop и др. Лицензия — GPL-3.0-or-later, src/solidlsp — MIT.
Это ближайший к Council по задаче «дать агенту понимание кода», но решает её иначе: не граф проекта, а точные символы через language server. Знаний, правил, ревью и задач Serena не держит — это слой точности поверх кода, который Council дополняет графом, знаниями и правилами.
| AI Council | Serena | |
|---|---|---|
| Кто читает код | Council сам: разбирает репозитории и строит граф. Модель при анализе не вызывается | Языковой сервер (LSP или JetBrains) по запросу агента. Модель не вызывается, но и своего графа нет |
| Когда | При создании проекта, при push в main (опрос), по кнопке, ночью; после правки файла агентом пересчитываются файл и зависимые | В момент вызова инструмента; LSP работает вживую, кэши символов лежат на диске. Фонового анализа нет |
| Что извлекает | Слои L0–L10: стек, структура, зависимости и циклы, метрики и вызовы, данные (ORM, DDL), архитектура и запрещённые зависимости, паттерны, стиль, DDD, связь файлов по правкам, смеллы, качество ISO 25010, диаграммы | Символы, name paths, ссылки, реализации, объявления, hover, диагностика, rename и workspace edits. Слоёв, архитектуры, DDD, смеллов и оценки качества нет |
| Точность | Граф из статического анализа: широкий, но приблизительный там, где нужен вывод по типам | Точный ответ компилятора/индексатора, но зависит от языкового сервера и toolchain; часть серверов неполна до конца индексации |
| Языки | Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв | 80+ языковых серверов; отдельно документация и данные (Markdown, LaTeX, YAML, JSON, TOML) |
| Несколько репозиториев | Проект из нескольких репозиториев с общим графом | Один активный проект на процесс; monorepo — через workspace folders; чужие проекты — через ProjectServer и s.ext; JetBrains может обслуживать несколько открытых проектов |
| Внешние анализаторы | SonarQube: забирает найденное; свой сканер (текстовые языки, JVM, .NET, .NET Framework на Windows) | — |
| История | Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату | Истории нет: только кэши символов на диске |
| Поиск | Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью | Поиск символа по name path, ссылки, реализации, объявления, текстовый search_for_pattern. Семантического и векторного поиска нет |
| AI Council | Serena | |
|---|---|---|
| База знаний | Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл | Markdown-память в .serena/memories и глобальная ~/.serena/memories/global; ссылки mem:name; онбординг создаёт core, tech_stack, suggested_commands, conventions, task_completion. Агент читает память сам, по мере надобности |
| Актуальность | Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер обязан привести цитату; итог — пометка | serena memories check проверяет только целостность ссылок mem: (stale / unmarked / fuzzy), а не соответствие памяти коду. Позиции в коде и проверки «не устарело ли» нет |
| Ветки | Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает | Память — файлы в рабочем дереве, версионируются вместе с git; отдельной видимости по веткам и слияния знаний нет. Глобальная память общая |
| Правила | Конвенции трёх областей: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. MUST/SHOULD, состояния «черновик», «отставлено», «удалено». Проверка перед правкой и по диффу | Контексты, режимы, исключения инструментов, конфиг проекта, read_only, trust-границы. Конвенции живут текстом в памяти (mem:conventions); движка правил с уровнями, привязкой и проверкой нет |
| Как доходит до агента | Хуки Claude Code: правила проекта к каждому сообщению, широкий канал перед действием, контекст файла на Read/Edit/Bash, чек-лист в конце; гейт «сначала база» | Хуки клиентов: activate на старте сессии, remind на PreToolUse (после 3 grep / 3 read / 4 смешанных вызовов отказывает и напоминает про символьные инструменты), auto-approve, plan-context и plan-guard для Codex, cleanup. Память — pull: агент читает сам; доставки знаний по файлу нет |
| MCP | Сервер: около 60 инструментов, профили, режимы, XML с бюджетом | Сервер: около 50 инструментов в реестре плюс REPL (serena_repl); набор зависит от контекста и режимов; клиент-агностик. Набор, отданный клиенту, фиксируется на сессию |
| Перенос | Экспорт и импорт знаний пакетом, копирование между проектами | Память — обычные файлы: можно скопировать или закоммитить. Пакета знаний нет |
| AI Council | Serena | |
|---|---|---|
| Требования | Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент | — |
| Тикеты | Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа | — |
| Работа на своей машине | Агент — Claude Code разработчика; Council подаёт контекст и правила через MCP и хуки; ревью локального диффа, разбор диффа, проверка диффа на правила | Это основной режим: Serena — MCP-сервер для Claude Code, Codex, Copilot CLI, JetBrains AI Assistant, Claude Desktop и др.; serena setup настраивает клиента, контексты подбираются под него |
| Рабочее пространство | Задачи на VM в sysbox-контейнере, живут днями; человек ведёт из чата; наставник; дифф → коммит → push → MR | Задач и рабочего пространства нет: Serena — инструмент внутри окружения разработчика. Есть активация проекта, онбординг и режимы |
| PR | Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) | — |
| Процесс | Машина состояний задачи: создана → анализ → в работе → MR → закрыта; содержимое шага задаёт человек | Режимы interactive, editing, planning, one-shot, onboarding, no-onboarding, no-memories, query-projects, benchmark. Процесса задачи нет |
| AI Council | Serena | |
|---|---|---|
| Code review | Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей | ИИ-ревью нет. Есть диагностика LSP по файлу и символу; диагностика после правок реализована, но по умолчанию выключена; project health-check проверяет работоспособность языкового сервера, а не качество кода |
| Модели | Модель обязательна: на хосте два процесса через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. | Своего LLM нет: работает LLM клиента. tiktoken и anthropic подключены только для подсчёта токенов; в dashboard есть статистика использования инструментов и оценка экономии токенов |
| Агенты | Claude Code (хуки, MCP); MCP доступен любому клиенту | Клиент-агностик: Claude Code, Codex, Copilot CLI, JetBrains AI Assistant, Claude Desktop и др.; контексты под клиента, serena setup; JetBrains-бэкенд — платный плагин |
| Стоимость и учёт | Телеметрия каждого вызова MCP и хука; повторный поиск агента — признак плохого первого ответа | Dashboard: статистика инструментов, счётчик токенов, очередь задач; биллинга нет |
| Риски и диагностика | SSRF, RBAC, изоляция задач, ревьюер знаний только на чтение | Trust-границы, path confinement, ignore-правила, SHA256 для скачиваемых зависимостей; но это не песочница: read_only исключает правки через инструменты, а REPL всё равно может писать и запускать shell; shell доступен по умолчанию |
| AI Council | Serena | |
|---|---|---|
| Пользователи | Компании → участники → роли (можно на проект) → права. API-ключи компании. Данные разделены: запрос без компании отвергается. Лицензия и лимиты мест | Один пользователь, локально. Многопользовательской модели, ролей и лицензии нет |
| Интерфейс | Около 50 страниц: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health | MCP-инструменты и REPL, CLI, dashboard (Flask API + веб-интерфейс + tray + pywebview), JetBrains-плагин. Многопользовательского интерфейса нет |
| Мониторинг | Телеметрия каждого вызова MCP и хука без PII; около 22 правил Prometheus с тестами; System Health, трассировка | Dashboard: логи, статистика инструментов, очередь задач; файловые логи. Prometheus и System Health нет |
| Самовосстановление | Сверка Temporal с базой, уборка осиротевших данных, удаление проекта пачками, ночной бэкап и проверка восстановления, ретенция телеметрии | Перезапуск умершего языкового сервера (_ensure_functional_ls), повтор вызова один раз, кэши на диске, pdeathsig на Linux. Бэкапа и проверки восстановления нет |
| Хранилище | Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis | Файлы: .serena/ проекта (конфиг, память, кэши), ~/.serena (глобальный конфиг, память, логи, языковые серверы), процессы LSP. Графовой и векторной БД нет |
| Изоляция | Sysbox-контейнер на задачу, одноразовые учётные данные для push, ревьюер знаний только на чтение, проверка прав в одном шлюзе, защита от SSRF | Trust-граница, path confinement, ignore-правила, SHA256 зависимостей; песочницы нет. read_only исключает edit-инструменты, но не REPL; dashboard и ProjectServer — локальные сервисы с trusted hosts/секретом |
| Поставка | Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки | PyPI serena-agent / uvx, serena setup для клиентов, Docker (в базе отмечены расхождения compose и Dockerfile), Nix, платный JetBrains-плагин |
| Лицензия | Закрытая | GPL-3.0-or-later; src/solidlsp — MIT |
Serena — ближайший к Council по задаче «дать агенту понимание кода», но решает её иначе: не граф проекта, а точные символы через language server. Это не конкурент знаниям, правилам, ревью и задачам Council; это слой точности поверх кода, который Council дополняет графом, знаниями и правилами.
Где сильнее Serena:
serena setup и контексты под клиента;remind, который ловит дрейф агента к grep/read и возвращает к символьным инструментам LSP, плюс plan mode и auto-approve; у Council хуки направляют к базе знаний и графу, а не к LSP;Где сильнее Council:
mem:-ссылками, но нет привязки к позиции в коде и проверки против кода.architecture_as_of, версионирование рёбер, внешний анализатор; ask_question отдаёт выдержки с FQN. Serena работает с одним активным проектом через language server.Могут ли работать вместе. Да, и это естественная пара: оба — MCP-серверы, один агент может подключить оба. Serena даёт точные символьные чтения и правки, Council — граф, знания, правила и ревью. Например, Council находит модуль и связанные знания, Serena читает и правит точный символ; Council проверяет дифф на правила и ревьюит. Пересечение — поиск символов и ссылок: у Council есть find_usages, find_path, search_code, у Serena — find_symbol, find_referencing_symbols; Serena точнее на уровне LSP, Council шире по проекту и связям. Автоматической интеграции нет: чтобы Council доставлял правила в Serena-контекст, нужен общий слой или подключение обоих MCP-серверов к одному клиенту.
На живом демо покажем работу платформы на реальном проекте, а не шаблонную презентацию.