Главная / Сравнение / agent-memory-mcp

AI Council и agent-memory-mcp: что умеет каждый

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

Коротко

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.

agent-memory-mcp — один Go-бинарник, который работает и как MCP-сервер, и как CLI. Он даёт агенту три вещи: типизированную долговременную память в SQLite, RAG-поиск по документам репозитория (docs, ADR, RFC, changelog, runbook, postmortem, CI, Helm, Terraform, K8s) и слой обслуживания знаний — консолидацию сессий, стюард-сканы, верификацию, канонический слой, временную модель и граф знаний. 50 MCP-инструментов, при группировке — 8; три хука Claude Code; сессионный трекер; два SQLite-файла и ноль внешних БД. MIT.

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

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

AI Council agent-memory-mcp
Кто читает код Council сам: разбирает репозитории и строит граф. Модель при анализе не вызывается Никто: графа кода нет. RAG индексирует документы и конфиги, память хранит знания о проекте, repo_read/repo_search читают файлы как текст. Символов, вызовов, зависимостей и архитектуры нет. Граф знаний — это триплы subj → rel → obj о предметной области, а не о коде
Когда При создании проекта, при push в main (опрос), по кнопке, ночью; после правки файла агентом пересчитываются файл и зависимые RAG-индекс — при index/index_documents, на старте (автоиндексация) и по watcher раз в 5 минут; память — в момент store_memory/инженерных инструментов, хуков и close_session; стюард — по политике manual/scheduled/event_driven, archive sweep — раз в час
Что извлекает Слои L0–L10: стек, структура, зависимости и циклы, метрики и вызовы, данные (ORM, DDL), архитектура и запрещённые зависимости, паттерны, стиль, DDD, связь файлов по правкам, смеллы, качество ISO 25010, диаграммы Память: тип (episodic/semantic/procedural/working), инженерный тип (decision/runbook/incident/postmortem/caveat/migration-note/procedure/dead_end), теги, контекст, importance, trust-метаданные, временные поля, слой осаждения, эмбеддинг. RAG: чанки документов с breadcrumbs и source type. Граф: триплы. Кода, его структуры и метрик нет
Чего нет — Графа кода, зависимостей, вызовов, архитектурных слоёв, DDD, паттернов, стиля, смеллов, ISO 25010 и диаграмм архитектуры. RAG видит документацию и конфиги, а не AST исходников
Языки Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв Язык кода не разбирается. RAG классифицирует типы документов и конфигов (Markdown, ADR, RFC, changelog, runbook, postmortem, CI, Helm, Terraform, K8s), а не языки программирования
Несколько репозиториев Проект из нескольких репозиториев с общим графом Один MCP_ROOT и allowlist MCP_ALLOW_DIRS; один банк и один индекс на корень. Общего графа между репозиториями нет
История Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату Истории кода нет. У знаний есть временная модель: valid_from/valid_until, superseded_by, replaces, recall_as_of, knowledge_timeline
Поиск Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью Два поиска: recall памяти (центрированный косинус + trust + importance + freshness + sediment) и гибридный RAG (semantic + BM25, weighted fusion или RRF, опциональный реренкер, cap 1 чанк на документ). Плюс multihop по графу триплов. Поиска по символам кода нет

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

AI Council agent-memory-mcp
База знаний Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл Сильный банк знаний проекта: типизированная память, инженерные сущности (decision, runbook, incident, postmortem, caveat, migration-note, procedure, dead_end), граф триплов, канонический слой, project bank с 8 представлениями, очередь ревью. Записи не привязаны к позициям в коде; связь с кодом — через упоминания путей, которые проверяет drift scan
Актуальность Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер обязан привести цитату; итог — пометка Многослойная свежесть: last_verified_at и freshness_score, канонический слой, стюард-сканеры stale/expired working, drift scan по ссылкам на файлы (source_missing, source_changed, stale_unverified), verification_candidates, verify_entry, очередь ревью, временная валидность. Проверка идёт по файлам и структурным сигналам, а не по позициям в коде с цитатой ревьюера
Ветки Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает Знаний по веткам нет: один банк на корень. Временная модель описывает версии знания, а не ветки git
Правила Конвенции трёх областей: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. MUST/SHOULD, состояния «черновик», «отставлено», «удалено». Проверка перед правкой и по диффу Движка конвенций нет. Есть steward policy (пороги дублей/ stale/ canonical/working TTL) — это политика обслуживания знаний, а не правила кода. Уровней MUST/SHOULD, привязки к сущностям и путям, проверки диффа нет
Как доходит до агента Хуки Claude Code: правила проекта к каждому сообщению, широкий канал перед действием, контекст файла на Read/Edit/Bash, чек-лист в конце; гейт «сначала база» Три хука Claude Code: SessionStart → context-inject (recent knowledge и pending summaries в системный промпт), PreCompact → checkpoint (транскрипт, Jaccard-дедуп), SessionEnd → auto-capture (sessionclose extract → plan → apply). Плюс session tracker по MCP-вызовам. Гейта «сначала база» нет
MCP Сервер: около 60 инструментов, профили, режимы, XML с бюджетом 50 инструментов; при MCP_TOOL_GROUPING=true — 6 групп и 2 одиночных (8 вместо 50), при этом tools/call всегда принимает и группу, и legacy-имя. Есть HTTP /mcp, /health, /console
Перенос Экспорт и импорт знаний пакетом, копирование между проектами export даёт переносимый JSON только памяти; индекс пересобирается index. Пакета знаний с импортом нет. Бэкап — каталог целиком или sqlite3 .backup, потому что WAL

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

AI Council agent-memory-mcp
Требования Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент —
Тикеты Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа —
Работа на своей машине Агент — Claude Code разработчика; Council подаёт контекст и правила через MCP и хуки; ревью локального диффа, разбор диффа, проверка диффа на правила Это единственный режим: solo stdio, MCP, CLI, хуки Claude Code, Homebrew-сервис на macOS. Shared HTTP — для доверенной команды, но без ролей
Рабочее пространство Задачи на VM в sysbox-контейнере, живут днями; человек ведёт из чата; наставник; дифф → коммит → push → MR Рабочего пространства нет. Есть жизненный цикл задачи: end_task, sweep_archive, archive sweep по tasks/archive, но задача не живёт на VM и не ведёт дифф к MR
PR Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) —
Процесс Машина состояний задачи: создана → анализ → в работе → MR → закрыта; содержимое шага задаёт человек Процесса задачи нет. Есть петля знания: capture → sessionclose extract → plan → apply → review queue → steward/drift/verify → canonical → recall. Archive sweep закрывает задачи, но не ведёт их

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

AI Council agent-memory-mcp
Code review Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей; ревью знаний отдельно ИИ-ревью кода нет. Есть ревью знаний: очередь review_queue_item, resolve_review_item, steward_inbox_resolve, verify_entry, конфликты, дрейф. Это проверка знаний, а не диффа
Модели Модель обязательна: на хосте два процесса через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. LLM в консолидации нет: sessionclose и стюард — детерминированные эвристики. Эмбеддинги нужны для семантики: Jina → OpenAI → llama.cpp → Ollama, режим local-only выключает hosted. Опциональный triple extractor — единственный LLM-вызов, выключен по умолчанию. Реренкер Jina опционален и выключен
Агенты Claude Code (хуки, MCP); MCP доступен любому клиенту MCP-клиенты и Claude Code через три хука; CLI; HTTP JSON-RPC. Своего агентского runtime нет
Оценка Телеметрия каждого вызова MCP и хука; повторный поиск агента — признак плохого первого ответа 692 теста, 14 бенчмарков; в базе зафиксированы go build ./... и тесты девяти основных пакетов (2026-10-26). Eval-контур (make eval, make eval-recall) не запускался. Измеренные дефолты: mean-centering Hit@5 0.6232 → 0.7217; возрастной decay выключен (0.1942 против 0.7217); cap 1 чанк на документ R@5 0.5104 → 0.8676, nDCG 0.6184 → 0.8927; RRF не двигает Hit@5/MRR
Гарантии Гейты тестов, ревью, конвенции CI: build → make vet → go test -race ./... → make eval → GoReleaser deprecation gate; go vet с тегами eval и corpus; 692 теста; контракт TestDispatchTableCompleteness проверяет ровно 50 инструментов; MCP Registry через GitHub OIDC

5. Платформа

AI Council agent-memory-mcp
Пользователи Компании → участники → роли (можно на проект) → права. API-ключи компании. Данные разделены: запрос без компании отвергается. Лицензия и лимиты мест Один пользователь, локально. Shared HTTP — один bearer-токен на инстанс, без пользователей, ролей, rate limit и mTLS. Компаний и лицензии нет
Интерфейс Около 50 страниц: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health MCP 50 инструментов (8 в групповом режиме), CLI, три хука Claude Code, HTTP /mcp, /health, /console (статическая страница), project bank view с 8 представлениями. Своего UI нет
Мониторинг Телеметрия каждого вызова MCP и хука без PII; около 22 правил Prometheus с тестами; System Health, трассировка stats JSONL, memory_stats, steward_status, drift_scan, RetrievalPath и Degraded, логи. Prometheus и System Health нет
Самовосстановление Сверка Temporal с базой, уборка осиротевших данных, удаление проекта пачками, ночной бэкап и проверка восстановления, ретенция телеметрии WAL и foreign-write watcher (перезагрузка кэша по data_version), index_state=dirty и переиндексация, orphan cleanup, reconcile inbox, archive sweep, документированный backup/restore. Ночного бэкапа и проверки восстановления нет
Хранилище Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis Два SQLite-файла: memories.db (память, триплы, стюард) и vectors.db (чанки, индекс). Внешних БД нет; векторный поиск — линейный косинус по RAM-копии
Изоляция Sysbox-контейнер на задачу, одноразовые учётные данные для push, ревьюер знаний только на чтение, проверка прав в одном шлюзе, защита от SSRF PathGuard (root + allowlist, без .. и абсолютных путей), bearer на non-loopback, constant-time сравнение, redaction секретов, local-only эмбеддинги. Песочницы нет; Docker работает root; prompt injection через сохранённый контент не смоделирован
Поставка Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки Go-бинарник, Docker Compose с Ollama sidecar и nginx TLS-прокси, Homebrew + launchd, GoReleaser, MCP Registry; MIT
Лицензия Закрытая MIT

Вывод

agent-memory-mcp — самый близкий к слою знаний Council из сравнённых проектов. У него есть то, чего нет у большинства локальных инструментов: доверие, канонический слой с provenance-гейтом, очередь ревью, стюард со сканерами и inbox, drift scan, верификация, временная валидность, осаждение и граф знаний. Но он не понимает код: графа символов нет, RAG читает документацию и конфиги, конвенций и ревью диффа нет, задач на VM и команды нет.

Где сильнее agent-memory-mcp:

  • банк знаний проекта с инженерными типами, trust-метаданными, каноническим слоем и project bank;
  • очередь ревью как записи памяти, а не отдельная таблица; resolve_review_item и steward_inbox_resolve;
  • стюард: дубликаты, конфликты, структурные противоречия, stale, expired working, canonical health, drift, verification candidates;
  • временная модель: valid_from/valid_until, superseded_by, replaces, recall_as_of, knowledge_timeline;
  • осаждение surface → episodic → semantic → character;
  • граф триплов и multihop recall;
  • консолидация сессии extract → plan → apply без LLM-переписывания, с Jaccard-дедупом и review-гейтом;
  • RAG по документам и конфигам: semantic + BM25, weighted fusion/RRF, per-document cap, ExpandSection, source-aware бусты;
  • 50 MCP-инструментов и групповой режим 8;
  • три хука Claude Code и session tracker;
  • local-first два SQLite-файла, Go-бинарник, MIT;
  • измеренные дефолты и 692 теста.

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

  • понимает код, а не только текст о нём. Граф L0–L10: стек, структура, зависимости и циклы, вызовы, данные, архитектура и запрещённые зависимости, паттерны, стиль, DDD, co-change, смеллы, ISO 25010 и диаграммы. Статический анализ модель не вызывает и не тратит токены; agent-memory читает документы и конфиги, но не строит граф символов и не видит архитектуру.
  • знания привязаны к позиции в коде и к ветке. Запись живёт на ветке, приходит агенту, когда он трогает нужный файл, а когда код под ней меняется — уходит на перепроверку: ревьюер обязан привести цитату, итог — пометка. При слиянии веток запись переезжает; merge_knowledge/supersede_knowledge сохраняют историю. У agent-memory есть trust-метаданные и temporal validity, но привязки к позиции в коде и проверки против кода нет.
  • конвенции — авторитетные правила, а не наблюдённые нормы. Три области: сущности кода, пути (включая ещё не созданный файл) и весь проект; MUST/SHOULD, состояния «черновик», «отставлено», «удалено»; проверка перед правкой и по диффу. Хуки доставляют правила к каждому сообщению, контекст файла — на Read/Edit/Bash, а гейт «сначала база» не даёт агенту читать код, пока он не спросил базу. Это enforcement, а не запись в bank.
  • ревью кода и знаний — отдельный сервис. По каждому файлу — вердикт, второй проход, публикация в MR без дублей; ревью знаний проверяет утверждение против AST-позиции, требует дословную цитату и ведёт журнал/калибровку. У agent-memory есть очередь ревью записей, но нет ревью диффа и публикации в MR.
  • задача живёт на VM в sysbox-контейнере. Дни, человек ведёт из веб-интерфейса: анализ → дифф → коммит → push → MR; одноразовые креды на push, изоляция, RBAC и защита от SSRF. agent-memory — локальный банк знаний, задач и рабочего пространства у него нет.
  • платформа вокруг кода. Тикеты Jira/GitHub/Redmine с разбором в знания и советом по графу; трассировка тестов к требованиям; компании → участники → роли (в т.ч. на проект) → права; лицензия и места; self-hosted/офлайн или SaaS. Этого слоя у agent-memory нет.
  • общий граф на несколько репозиториев и история архитектуры. architecture_as_of показывает архитектуру на дату, рёбра версионируются после каждого прогона; SonarQube забирается как внешний анализатор. agent-memory хранит знания, но не архитектуру проекта.
  • наблюдаемость и самовосстановление. Телеметрия каждого вызова MCP и хука без PII, повторный поиск агента виден как сигнал плохого первого ответа; около 22 правил Prometheus с тестами, System Health, трассировка; сверка Temporal с базой, уборка осиротевших данных, ночной бэкап с проверкой восстановления и ретенция. Для локального банка знаний это не нужно; для командной платформы — обязательный слой.
  • модель не лежит ключом в стеке. Статический анализ идёт без модели; ревью, ревью знаний, AI-чат и рабочее пространство — через хостовый воркер, бридж и вендорский CLI/OAuth. Это не «работа без модели»: без модели остаётся только статический анализ, но ключ и квоты не хранятся в Council.

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

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

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