Open Code Review — AI-агент для ревью кода от Alibaba
📂 Исходный код на GitHubAI-агент для ревью кода, обкатанный в масштабах Alibaba. Гибридная архитектура: детерминированные пайплайны + LLM-агент, точные комментарии по строкам, совместим с OpenAI и Anthropic.
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)--audience—human(с прогрессом) или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.