Open Code Review — AI-агент для ревью кода от Alibaba

· 2 мин чтения
code-review llm agent ci-cd alibaba go
📂 Исходный код на GitHub

AI-агент для ревью кода, обкатанный в масштабах Alibaba. Гибридная архитектура: детерминированные пайплайны + LLM-агент, точные комментарии по строкам, совместим с OpenAI и Anthropic.

Open Code Review — AI-агент для ревью кода от Alibaba

Open Code Review — инструмент AI-ревью кода с открытым исходным кодом от Alibaba Group. Он создавался как внутренний помощник по ревью кода: за два года обслуживания десятков тысяч разработчиков и выявления миллионов дефектов инструмент прошёл масштабную обкатку и был выпущен как open-source проект. Достаточно настроить endpoint LLM — и можно начинать.

Инструмент читает Git-диффы, отправляет изменённые файлы настраиваемому LLM через агента с поддержкой tool-use и генерирует структурированные комментарии с точностью до строки. Агент умеет читать содержимое файлов целиком, искать по кодовой базе, анализировать другие изменённые файлы для контекста и выполнять глубокое ревью.

Репозиторий: https://github.com/alibaba/open-code-review

Проблема универсальных агентов

Универсальные агенты (Claude Code с Skills и аналоги) при ревью кода сталкиваются с тремя проблемами:

  • Неполное покрытие — на больших changeset'ах агенты пропускают файлы
  • Сдвиг позиций — номера строк и ссылки на файлы часто не совпадают с реальным кодом
  • Нестабильное качество — минимальные изменения промпта заметно влияют на результат

Причина: чисто языковая архитектура не даёт жёстких гарантий на процесс ревью.

Гибридная архитектура: детерминированные пайплайны + агент

Open Code Review совмещает детерминированную инженерию и LLM-агента, каждый из которых делает то, что умеет лучше всего.

Детерминированная часть — жёсткие гарантии:

  • Точный выбор файлов — определяет, какие файлы нужно ревьюить, а какие отфильтровать
  • Умная группировка файлов — связные файлы объединяются в один блок ревью (например, message_en.properties и message_zh.properties). Каждый блок обрабатывается отдельным субагентом с изолированным контекстом — стратегия «разделяй и властвуй», стабильная на очень больших changeset'ах
  • Тонкое сопоставление правил — правила ревью привязываются к характеристикам файла, фокусируя внимание модели и устраняя информационный шум
  • Внешние модули позиционирования и рефлексии — независимые модули систематически повышают точность как расположения комментариев, так и их содержания

Агентная часть — динамические решения:

  • Промпты, оптимизированные для сценария ревью кода — повышают эффективность и снижают потребление токенов
  • Инструментарий, отобранный по анализу production-данных — частотность вызовов, повторяемость инструментов, влияние новых инструментов на цепочку вызовов

Установка

Через NPM (рекомендуется):

npm install -g @alibaba-group/open-code-review

Готовые бинарники доступны на GitHub Releases для macOS (ARM/Intel), Linux (x86_64/ARM64) и Windows.

Из исходников:

git clone https://github.com/alibaba/open-code-review.git
cd open-code-review
make build
sudo cp dist/opencodereview /usr/local/bin/ocr

Быстрый старт

1. Настройка LLM

ocr config set llm.url https://api.anthropic.com/v1/messages
ocr config set llm.auth_token your-api-key-here
ocr config set llm.model claude-opus-4-6
ocr config set llm.use_anthropic true

Совместим с переменными окружения Claude Code (ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN, ANTHROPIC_MODEL). Конфиг хранится в ~/.opencodereview/config.json.

2. Проверка связи

ocr llm test

3. Ревью

ocr review                              # рабочие изменения
ocr review --from main --to feature     # диапазон веток
ocr review --commit abc123              # конкретный коммит

Интеграция с AI-агентами

OCR интегрируется как slash-команда в AI-агенты для кодинга.

Установка как Skill:

npx skills add alibaba/open-code-review --skill open-code-review

Плагин для Claude Code:

/plugin marketplace add alibaba/open-code-review
/plugin install open-code-review@open-code-review

Ручная установка команды — файл команды копируется в .claude/commands/ (на уровне проекта или пользователя).

CI/CD

Базовая команда для CI:

ocr review --from "origin/main" --to "origin/feature-branch" --format json

Флаг --format json выдаёт машинно-читаемый результат. Примеры интеграции с GitHub Actions и GitLab CI есть в директории examples/ репозитория.

Правила ревью

Четырёхуровневая система приоритетов:

Приоритет Источник Путь Описание
1 Флаг --rule Пользовательский путь Явное переопределение
2 Конфиг проекта <repoDir>/.opencodereview/rule.json Правила проекта, коммитятся в git
3 Глобальный конфиг ~/.opencodereview/rule.json Личные предпочтения
4 Системный Встроенный system_rules.json Правила по умолчанию

Формат файла правил:

{
  "rules": [
    {
      "path": "force-api/**/*.java",
      "rule": "All new methods must validate required parameters for null values"
    }
  ]
}

path поддерживает ** для рекурсивного поиска и {java,kt} для расширения фигурных скобок. Внутри каждого уровня — first-match-wins.

Основные команды

Команда Алиас Описание
ocr review ocr r Запуск ревью кода
ocr rules check <file> Предпросмотр правила для файла
ocr config set <key> <value> Настройка конфигурации
ocr llm test Проверка связи с LLM
ocr viewer ocr v Веб-просмотрщик сессий на localhost:5483

Ключевые флаги ревью

  • --preview (-p) — предпросмотр файлов без вызова LLM
  • --format (-f) — формат вывода: text или json
  • --concurrency — максимум параллельных ревью (по умолчанию 8)
  • --audiencehuman (с прогрессом) или agent (только итог)
  • --rule — путь к пользовательским правилам

Телеметрия

Интеграция с OpenTelemetry для наблюдаемости (spans, метрики). Отключена по умолчанию.

ocr config set telemetry.enabled true
ocr config set telemetry.exporter otlp
ocr config set telemetry.otlp_endpoint localhost:4317

Лицензия: Apache-2.0. Основной язык — Go (70.6%), также TypeScript, CSS, JavaScript.

Источник: https://github.com/alibaba/open-code-review