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

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

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

Коротко

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.

opencode — open-source AI coding agent (лицензия MIT). Это не анализатор и не база знаний, а сам исполнитель: он читает файлы, правит их, запускает команды и разговаривает с моделью. Живёт на машине разработчика — CLI и терминальный интерфейс, плюс веб-приложение, Electron-десктоп, расширение VS Code и HTTP API/SDK. Один серверный процесс обслуживает один или несколько каталогов; история сессий и вложения лежат в одном SQLite, снапшоты файлов — в теневом git. Модель — своя: ключ провайдера, OAuth-подключение или управляемый провайдер через Console. Репозиторий — монорепозиторий на Bun: 35 пакетов, 4 сервиса, около 8 900 файлов.

Это не конкурент Council по знаниям: opencode занимает ровно то место, где в рабочем пространстве Council стоит вендорский CLI агента. Поэтому сравнение имеет смысл в одном общем месте — как устроена работа агента с кодом, и что каждый даёт сверх неё.

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

AI Council opencode
Кто читает код Council сам: разбирает репозитории и строит граф. Модель при анализе не вызывается Сам агент: модель вызывает инструменты чтения, поиска и оболочки. Фонового разбора нет
Когда При создании проекта, при push в main (опрос), по кнопке, ночью. После каждой правки файла агентом (Write/Edit) пересчитываются файл и зависимые от него В момент хода, по запросу модели. Между сессиями не хранится ничего, кроме истории, снапшотов и инструкций
Что извлекает Слои L0–L10: стек и гайды по фреймворкам; структура; зависимости и циклы; метрики и граф вызовов; слой данных (ORM, DDL); стиль архитектуры и запрещённые зависимости; паттерны проектирования; стиль кода; DDD (bounded contexts через Leiden, агрегаты, события); связь файлов по совместным правкам в git; смеллы; качество по ISO 25010 и fitness-функции; диаграммы Только то, что модель прочитала: файлы, результаты ripgrep, вывод команд, диффы. Постоянного графа, слоёв, метрик и смеллов нет
Языки Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++ — с полным разбором слоёв Любой, который умеет читать модель. Своего разбора кода нет; tree-sitter используется для разбора shell-команд (bash, PowerShell) и для подсветки синтаксиса в TUI, а не для построения графа
LSP — (свой разбор и граф) Настройки LSP и права на операции уже есть, но рантайма ещё нет: в edit и write стоит TODO «Add LSP notification and diagnostics after LSP runtime exists»
Несколько репозиториев Проект из нескольких репозиториев с общим графом Один сервер обслуживает несколько Location (каталогов), у каждого свой конфиг, права и инструменты. Проект — каталог с .git/.hg; workspace и worktree дают дополнительные копии. Общего графа между репозиториями нет
Внешние анализаторы SonarQube: забирает найденное; свой сканер (текстовые языки, JVM, .NET, .NET Framework на Windows) —
История Рёбра версионируются после каждого прогона; architecture_as_of — архитектура на дату История — журнал событий сессии и снапшоты файлов (теневой git) для undo и диффа шага. Истории архитектуры нет
Поиск Поиск по смыслу и regex, find_usages, find_path, граф зависимостей, похожие реализации; ask_question — выдержки из базы без пересказа моделью grep и glob по ripgrep, read, shell; webfetch и websearch. Семантического поиска по коду нет

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

AI Council opencode
База знаний Решения, заметки, диаграммы Mermaid, журналы изменений. Каждая запись привязана к коду и приходит агенту, когда он трогает нужный файл Отдельной базы нет. Есть инструкции (файлы вроде AGENTS.md), skills (SKILL.md, до 10 файлов), слэш-команды, агенты и references. Память — история сессий, компакция и инструкции на диске
Актуальность Запись держит место в коде на своей ветке и уходит на перепроверку, когда меняется код под ней, сама запись, появляется похожая или ветку сливают. Ревьюер-модель (только чтение) обязан привести дословную цитату; итог — пометка, текст не трогается Не перепроверяется: инструкции читаются из файлов на диске, их актуальность отслеживает человек или сам агент
Ветки Знания и граф хранятся по веткам; агент видит свою ветку, родителя и слитое; при слиянии запись переезжает Сессии привязаны к проекту и каталогу; workspace и worktree дают изоляцию. Знаний по веткам нет
Правила Конвенции трёх областей: к сущностям кода, к путям (действуют и на ещё не созданный файл), ко всему проекту. Уровни MUST/SHOULD, состояния «черновик», «отставлено», «удалено». Проверка перед правкой и по диффу AGENTS.md-инструкции, права allow/ask/deny, политики провайдеров и интеграций, слои конфига. Движка правил с привязкой к сущностям и путям нет
Как доходит до агента Хуки Claude Code: правила проекта к каждому сообщению пользователя; широкий канал перед действием; контекст файла на каждый Read/Edit/Bash; чек-лист в конце хода. Гейт «сначала база»: код не открыть, пока не спросил базу; снять гейт может только человек Собирает контекст сам, изнутри: system prompt, инструкции, skills и определения инструментов. Плагин-хуки работают в процессе. Внешних хуков, как у Claude Code, нет
MCP Сервер: около 60 инструментов, профили, режимы на сессию, ответы в XML с ограничением размера Клиент: серверы stdio/socket/remote, OAuth, prompts/resources, elicitation. Своих встроенных инструментов около 15
Перенос Экспорт и импорт знаний пакетом, копирование между проектами Экспорт и импорт сессий и auth; конфиг слоями. Переноса знаний нет

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

AI Council opencode
Требования Трассировка тестов к требованиям по меткам: покрытие и разрывы; «без теста» — тристейт, а не requirements-менеджмент —
Тикеты Jira, GitHub Issues, Redmine: чтение, разбор в знания, совет по тикету из графа — (GitHub-автоматика только в своём репозитории: triage-боты в CI)
Работа на своей машине Агент — Claude Code разработчика; Council подаёт контекст и правила; ревью локального диффа, разбор диффа, проверка диффа на правила Это и есть режим работы: CLI, TUI, веб-приложение, десктоп, VS Code. Ход ведёт человек в терминале или в браузере
Рабочее пространство Задачи на VM в sysbox-контейнере, живут днями; человек ведёт агента из чата интерфейса; наставник; дифф → коммит → push → MR Один сервер на машине, несколько клиентов. Сессии с очередью ввода (steer/queue), прерыванием, вопросами и подтверждениями прав; subagent'ы и фоновые jobs. Изоляции задачи на отдельной VM нет
PR Ревью с публикацией в MR (GitHub, GitLab, Bitbucket) Публикации MR нет; агент может позвать gh через shell, если попросить

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

AI Council opencode
Code review Отдельный сервис: смотрит изменившееся, вердикт по каждому файлу, второй проход, публикация в MR без дублей Нет; есть просмотр диффа сессии и снапшоты для undo
Модели Модель обязательна: на хосте два процесса работают через OAuth вендора: AI-чат и шесть фоновых задач (ревью, ревью знаний, разбор тикетов и др.). Без модели остаётся только статический анализ кода. Свой ключ или OAuth на десятки провайдеров: OpenAI, Anthropic, Google/Vertex, Bedrock, Azure, xAI, Groq, OpenRouter, DeepSeek, Mistral, Moonshot и др.; кастомные и локальные endpoint'ы — через generic openai-compatible/anthropic-compatible. Каталог models.dev даёт модели, цены и лимиты; есть кэш промптов и компакция
Управление моделями Модель и бюджет — настройками проекта Управляемый провайдер через Console: организация задаёт политики provider.use, tool.use, integration.use; Console отдаёт утверждения клиенту
Агенты Claude Code (хуки, MCP); MCP доступен любому клиенту Один агент с режимами (build, plan, свои агенты и subagent'ы) и ACP-мост для редакторов. Это сам исполнитель, а не набор из десятка CLI

5. Платформа

AI Council opencode
Пользователи Компании → участники → роли (можно на один проект) → права. API-ключи компании. Данные разделены по компаниям: запрос без компании отвергается. Лицензия на установку и лимиты мест Один разработчик. Server mode включается явно; без пароля сервер работает без аутентификации — так записано в SECURITY.md. Console добавляет организационные политики для управляемых провайдеров
Интерфейс Около 50 страниц веб-интерфейса: код, граф, ветки, качество, правила, ревью, знания, тикеты, задачи, MCP Live, администрирование, System Health TUI (SolidJS + OpenTUI), веб-приложение, Electron-десктоп, расширение VS Code, HTTP API/SDK (около 139 эндпоинтов), ACP для редакторов
Мониторинг Телеметрия каждого вызова MCP и хука без персональных данных; повторный поиск агента — признак плохого первого ответа. Около 22 правил Prometheus с тестами; экран System Health, трассировка Логи и команды debug, сервис stats (аналитика использования), OpenTelemetry в утилитах. Prometheus, System Health и панелей наблюдения нет
Самовосстановление Сверка Temporal с базой, уборка осиротевших данных, удаление проекта пачками в фоне, ночной бэкап и еженедельная проверка восстановления, удаление старой телеметрии Claim и журнал событий: ход после краха возобновляется с бюджетом попыток; осиротевшие tool-вызовы и компакции закрываются; фоновые jobs и persistent PTY восстанавливаются. Бэкапа и проверки восстановления нет
Хранилище Neo4j, Qdrant, PostgreSQL по сервисам, Temporal, NATS, Redis Один SQLite (Drizzle) + теневой git для снапшотов + файлы вывода инструментов; вложения — blob'ы в SQLite
Изоляция Sysbox-контейнер на задачу, одноразовые учётные данные для push, ревьюер знаний только на чтение, проверка прав в одном шлюзе, защита от SSRF Не песочница (SECURITY.md): права — UX-помощник, а не изоляция. Каталоги изолированы по Location; CodeMode не даёт сети, файлов и процессов; плагины доверяются как конфиг; сторонние MCP-серверы вне границы доверия. Отдельной защиты исходящих URL в модели угроз нет
Поставка Дистрибутив для self-hosted установки или SaaS; на машине разработчика — MCP и хуки Bun/npm, бинарники, десктоп, Nix, расширение VS Code; CI на GitHub Actions, инфраструктура SST (Cloudflare, AWS)
Лицензия Закрытая MIT

Вывод

opencode — не конкурент Council по знаниям и правилам. Это ровно тот слой, который Council в рабочем пространстве занимает вендорским CLI: сам агент, который читает код, зовёт инструменты, говорит с моделью и держит сессию. Поэтому «кто сильнее» имеет смысл только в одном общем месте — как устроена работа агента с кодом.

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

  • работает локально, без сервера и без ключа Council;
  • десятки провайдеров и своя модель на выбор, включая кастомные и локальные endpoint'ы;
  • MIT и установка в одну команду;
  • аккуратное ядро: event sourcing в SQLite, восстановление после краха, очередь ввода, права на инструмент, CodeMode;
  • поверхности: TUI, веб, десктоп, VS Code, SDK; ACP для редакторов;
  • открытый код — его можно встроить: @opencode/sdk собирает Client + Core + Server в чужом процессе.

Где сильнее Council — глубина и всё, что вокруг агента:

  • понимает проект, а не только ведёт сессию. Граф L0–L10: стек, структура, зависимости и циклы, вызовы, данные, архитектура и запрещённые зависимости, паттерны, стиль, DDD, co-change, смеллы, ISO 25010, диаграммы; статический анализ модель не вызывает. opencode — агент, он читает код, но не строит проектный граф.
  • знания привязаны к коду и веткам. Запись живёт на ветке, приходит агенту при касании файла, уходит на перепроверку при изменении кода под ней; ревьюер обязан привести цитату. У opencode есть сессия и контекст, но нет базы знаний о решениях и причинах.
  • конвенции проверяются до правки и по диффу. Три области (сущности, пути, проект), MUST/SHOULD, состояния, доставка хуками к каждому сообщению и контекст файла на Read/Edit/Bash; гейт «сначала база» блокирует чтение кода до обращения к базе. opencode собирает контекст по-своему, но авторитетных правил команды у него нет.
  • ревью кода и знаний — сервис. Вердикт по каждому файлу, второй проход, публикация в MR без дублей; отдельное ревью знаний с цитатой и калибровкой. opencode — исполнитель, ревью-сервиса и публикации в MR у него нет.
  • задачи на VM с человеком в контуре. Задача в sysbox-контейнере живёт дни, человек ведёт из UI: анализ → дифф → коммит → push → MR; одноразовые креды, RBAC, защита от SSRF. opencode запускается локально и не даёт этого слоя.
  • командная работа, права и лицензия. Компании → участники → роли (в т.ч. на проект) → права, API-ключи компании, лицензия и места; self-hosted/офлайн или SaaS. opencode — MIT-инструмент для одного разработчика, многопользовательской модели и лицензии/мест у него нет.
  • наблюдение за работой агента. Телеметрия каждого вызова MCP и хука без PII, повторный поиск агента как сигнал, около 22 правил Prometheus, System Health, трассировка; сверка Temporal с базой, уборка осиротевших данных, бэкап с проверкой восстановления. У opencode есть event sourcing сессии, но не per-call наблюдаемость и не System Health платформы.

Могут ли работать вместе. Да, но не так полно, как с Claude Code. opencode — MCP-клиент, поэтому инструменты Council (brief_me_on, list_knowledge, search_code, check_diff_conventions и остальные) ему доступны: достаточно добавить MCP-сервер Council в конфиг. А вот хуков Council — рулбука на каждый промпт, контекста файла на каждый Read/Edit, гейта «сначала база» — в opencode нет: у него свой способ собирать контекст. Чтобы Council доставлял правила в opencode так же, как в Claude Code, нужен плагин opencode (у него есть хуки в процессе) или отдельная интеграция. Сейчас её нет.

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

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