Как заставить ИИ искать реальные баги в пулл-реквестах вместо генерации банальных комментов
Большинство нейросетевых ботов для ревью кода работают одинаково. Они получают diff из коммита, бегло смотрят на изменённые строки и генерируют десятки поверхностных замечаний. В результате разработчики получают советы о форматировании, пропущенных docstring или очевидные галлюцинации, когда ИИ не видит контекст соседних файлов. Команда проекта Agent-Field решила подойти к проблеме иначе и создала инструмент PR-AF.

Что такое PR-AF и кому он пригодится
PR-AF расшифровывается как Pull Request AgentField. Это инструмент с открытым исходным кодом для глубокого аудита кода на этапе CI/CD.
Проект не пытается конкурировать с быстрыми интерактивными утилитами вроде Claude Code, которые выдают ответ за пару секунд прямо в терминале. PR-AF создан для других задач: он работает от 35 до 50 минут, зато строит динамический граф агентов, вытаскивает AST-деревья из репозитория и проверяет каждое замечание на фальсифицируемость.
Инструмент пригодится командам, которым нужен жесткий автоматический контроль качества перед мёрджем в основную ветку. Особенно это актуально для проектов с высокой стоимостью ошибки в безопасности или архитектуре.
Как устроен динамический пайплайн
Вместо запуска статического скрипта с зашитым промптом PR-AF анализирует структуру поступающего пулл-реквеста и подстраивает под него граф выполнения.

Процесс анализа делится на несколько этапов.
Сначала система оценивает diff через три разных среза: семантический, механический и системный. Под выявленные задачи создаются временные узкоспециализированные агенты-ревьюеры.
Затем подключается движок проверки доказательств. Если агент считает, что в коде пропущена валидация входных данных, система не верит ему на слово. Она сканирует репозиторий, извлекает AST-дерево и проверяет цепочку вызовов. Замечание отбрасывается, если подтверждение в коде не найдено.
На следующем шаге срабатывает фильтр фальсификации. Система пытается опровергнуть собственную гипотезу о баге, проверяя существующие защиты и задуманное автором поведение.
В конце подключается синтезатор составных рисков. Изолированные мелкие недочёты в разных файлах часто складываются в критическую уязвимость. Инструмент связывает такие находки в один отчёт.
Результаты на тестах и экономика
На бенчмарке Martian Code-Review-Bench система PR-AF в связке с открытой моделью GLM-5.2 показала полноту поиска багов (golden recall) на уровне 0.706. В тестовом наборе из 42 инструментов этот результат вывел проект на первое место среди решений с открытым кодом.
В ходе тестов система самостоятельно обнаружила 595 подтверждённых ошибок. При использовании топовых коммерческих моделей результат получается ещё выше.
При этом стоимость одного прогона выходит примерно в 10 раз ниже закрытых SaaS-аналогов. Вы платите только за токены LLM через свой ключ API, без ежемесячной подписки за каждого пользователя.
Быстрый запуск и работа через API
Запустить PR-AF локально можно за пару минут через Docker Compose.
git clone https://github.com/Agent-Field/pr-af.git
cd pr-af
cp .env.example .env
docker compose up --build
В файле .env достаточно указать ваш OPENROUTER_API_KEY и GH_TOKEN с правами на чтение и запись в репозиторий. После запуска управляющий узел станет доступен на порту 8080.
Отправить пулл-реквест на проверку можно обычным HTTP-запросом:
curl -X POST http://localhost:8080/api/v1/execute/async/pr-af.review \
-H "Content-Type: application/json" \
-d '{"input": {"pr_url": "https://github.com/owner/repo/pull/123"}}'
В ответ приходит итоговый JSON с разбором уязвимостей, разложенных по уровню критичности. Если у бота есть доступ к GitHub, он сам расставит комментарии прямо к нужным строкам кода с приведением доказательств.
Интеграция в GitHub Actions
Проще всего встроенный аудит подключается в стандартный CI/CD. В репозиторий добавляется файл .github/workflows/pr-af-review.yml, а сам запуск вешается на появление метки pr-af у пулл-реквеста.
name: AgentField PR Review
on:
pull_request:
types: [labeled]
jobs:
pr-af-review:
if: github.event.label.name == 'pr-af'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout PR-AF
uses: actions/checkout@v4
with:
repository: Agent-Field/pr-af
path: pr-af
- name: Start AgentField & PR-AF
working-directory: ./pr-af
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
docker compose up -d
sleep 15
- name: Execute Deep Architectural Audit
working-directory: ./pr-af
env:
PR_URL: ${{ github.event.pull_request.html_url }}
run: |
python3 scripts/ci_runner.py
Разработчик навешивает ярлык на ответственный PR, проходит полчаса, и в треде появляется подробный отчёт с проверенными фактами.
Что под капотом
Основной узел проекта недавно переписали на Go (код лежит в директории go/), что позитивно сказалось на скорости работы и потреблении памяти. Изначальная реализация на Python остаётся доступной в репозитории в качестве альтернативы.
Проект распространяется под свободной лицензией Apache 2.0. Код полностью открыт, включая скрипты для воспроизведения результатов бенчмарка.
Итоги
PR-AF предлагает здравомыслящий подход к автоматическому ревью. Вместо того чтобы спамить в компиляцию поверхностными замечаниями, система тратит время на детальный разбор AST и проверку гипотез.
Инструмент идеально подойдёт командам, которым надоели ложные срабатывания обычных ИИ-ботов и требуется надежный фильтр безопасности в CI/CD. Для быстрой правки опечаток он не подходит, но перед мёрджем критичных фич в продакшен показывает себя отлично.
