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

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

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

Коротко

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 дополняет графом, знаниями и правилами.

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

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. Семантического и векторного поиска нет

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

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); набор зависит от контекста и режимов; клиент-агностик. Набор, отданный клиенту, фиксируется на сессию
Перенос Экспорт и импорт знаний пакетом, копирование между проектами Память — обычные файлы: можно скопировать или закоммитить. Пакета знаний нет

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

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. Процесса задачи нет

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

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 доступен по умолчанию

5. Платформа

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:

  • точные символы, ссылки, реализации, объявления, диагностика, rename, safe delete;
  • 80+ языковых серверов;
  • символьные правки: замена тела символа, вставка до/после, мультифайловая замена с occurrence id, атомарная запись;
  • клиент-агностик MCP: Claude Code, Codex, Copilot CLI, JetBrains AI Assistant, Claude Desktop; serena setup и контексты под клиента;
  • хук remind, который ловит дрейф агента к grep/read и возвращает к символьным инструментам LSP, плюс plan mode и auto-approve; у Council хуки направляют к базе знаний и графу, а не к LSP;
  • локальность, простота, открытый код GPL/MIT, установка через PyPI/uvx;

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

  • шире по проекту, а не только по символу. Граф L0–L10: стек, структура, зависимости и циклы, вызовы, данные, архитектура и запрещённые зависимости, паттерны, стиль, DDD, co-change, смеллы, ISO 25010, диаграммы; статический анализ модель не вызывает. Serena точнее на уровне LSP-символа; Council видит архитектуру, связи и качество проекта.
  • знания привязаны к коду и веткам. Запись живёт на ветке, приходит агенту при касании файла, уходит на перепроверку при изменении кода под ней; ревьюер обязан привести цитату. У Serena память в Markdown-файлах с mem:-ссылками, но нет привязки к позиции в коде и проверки против кода.
  • конвенции — авторитетные правила с проверкой. Три области (сущности, пути, проект), MUST/SHOULD, состояния, проверка перед правкой и по диффу; хуки доставляют правила к каждому сообщению и контекст файла на Read/Edit/Bash; гейт «сначала база» блокирует чтение кода до обращения к базе. Serena направляет агента к LSP, но правил команды у неё нет.
  • ревью кода и знаний — сервис. Вердикт по каждому файлу, второй проход, публикация в MR без дублей; отдельное ревью знаний с цитатой и калибровкой. Serena даёт символьные чтения и правки, но не ревью-сервис.
  • задачи на VM, тикеты, MR, команда. Задача в sysbox-контейнере живёт дни, человек ведёт из UI; тикеты, трассировка требований, компании/роли/лицензия. Serena — локальный инструмент для одного разработчика.
  • общий граф на несколько репозиториев, история архитектуры, SonarQube. architecture_as_of, версионирование рёбер, внешний анализатор; ask_question отдаёт выдержки с FQN. Serena работает с одним активным проектом через language server.
  • наблюдаемость и самовосстановление. Телеметрия каждого вызова MCP и хука без PII, около 22 правил Prometheus, System Health, трассировка; сверка Temporal с базой, уборка осиротевших данных, бэкап с проверкой восстановления. У Serena есть логи и диагностика LSP, но не per-call наблюдаемость платформы.

Могут ли работать вместе. Да, и это естественная пара: оба — 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-серверов к одному клиенту.

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

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