# Автоисправление ошибок CI и комментариев PR с ИИ

URL: https://agentvera.dev/ru/blog/auto-fix-ci-failures-with-ai/ · Опубликовано: 2026-10-18

ИИ-агент чинит упавшие запуски CI и обрабатывает комментарии к PR: что его запускает, какие ограничения действуют, как он сдаёт работу и что проверить до main.

**Коротко:**

- В AgentVera правило может запускать Claude Code или Codex, когда GitHub Actions, GitLab CI или Jenkins краснеет, или когда участник репозитория комментирует открытый PR; комментарии читаются каждые 2 минуты.
- Агент работает в собственном worktree и только коммитит; AgentVera делает push после проверки на секретные файлы и никогда не пушит прямо в ветку по умолчанию.
- У каждого правила есть дневной лимит (по умолчанию 5, до 50), а на ветку в день пробуется не более 2 автоисправлений CI, так что неудачное исправление не зациклится.

Возможность автоисправления ошибок CI с ИИ снимает с вас одну из самых однообразных рутин. Вы делаете push, а через десять минут GitHub Actions краснеет. Вы открываете лог, листаете двести строк, находите ошибку типов или устаревший снапшот, исправляете и пушите снова. С комментариями к PR то же самое: мелкие замечания вроде «переименуй эту переменную» или «здесь нет проверки на null» копятся, и каждое выдёргивает вас из текущего дела.

В статье: как передать эту работу ИИ-агенту, что его запускает, какие ограничения действуют, как он сдаёт работу и на что смотреть, прежде чем она попадёт в main.

## Почему чинить вручную дорого

Починить красную сборку редко трудно. Дорого стоит переключение контекста:

- **Вы заняты другим.** Уведомление о красном CI отрывает вас от дела.
- **Чтение логов занимает время.** Настоящая ошибка спрятана среди сотен строк, а первая красная строка часто не настоящая.
- **Нужно воспроизвести локально.** Найти команду CI, запустить её и разобраться с различиями окружения — это отдельная работа.
- **Комментарии приходят по частям.** Ревью из шести комментариев значит прочитать все шесть и ответить на каждый.

Общее у этих задач — известный набор шагов. Работу с известными шагами можно отдать агенту.

## Триггеры: когда агент стартует?

В AgentVera автоматизации находятся в **Details → Automation → Automations**. Правило само начинает работу, когда происходит событие. Здесь важны два триггера.

### CI turned red

Этот триггер следит за провайдерами, добавленными на вкладке CI/CD: GitHub Actions, GitLab CI и Jenkins. Оставьте **Branches** пустым, чтобы следить за всеми ветками, или перечислите их, например `main, release/*`.

Некоторые запуски пропускаются намеренно. Запуски для pull request из форков и запуски merge request в GitLab правило не срабатывают. Ветка и лог форка принадлежат кому-то вне вашего репозитория, поэтому правило реагирует только на ветки, в которые вы можете запушить исправление.

### PR got a comment

Новые комментарии ревью и обсуждения в открытых pull request читаются каждые 2 минуты с фильтрами:

- **Считаются только комментарии владельца, участников или соавторов репозитория.** Случайный комментарий не запустит агента.
- **Комментарии ботов не считаются.** Собственные ответы AgentVera помечаются и больше не подхватываются.
- **Если над этим PR уже работает агент,** новые комментарии идут ему; второй агент не открывается.
- **Если дневной лимит исчерпан,** комментарии не теряются; их прочитают позже.

Для триггеров комментариев к PR и issue `origin` репозитория должен быть на GitHub, а на вашем компьютере нужен вход в GitHub.

События отслеживает десктопное приложение, поэтому AgentVera должен быть открыт на вашем компьютере, чтобы правила работали.

### Пресеты

Когда в проекте ещё нет правил, AgentVera предлагает пресеты. Два из них делают именно эту работу:

| Пресет | Что делает |
| --- | --- |
| Fix CI when it breaks | Читает лог упавшего запуска и исправляет; пушит в ветки фич и открывает PR для главной ветки |
| Handle PR comments | Применяет комментарии ревью в открытых PR, пушит в ветку PR и отвечает |

Два других работают с issue с меткой «ajan» и обновляют зависимости каждый понедельник.

## Что делает агент

Когда правило срабатывает, агент стартует в новом worktree на новой ветке, имя которой начинается с `ajan/`. Ветка создаётся от ветки события: ветки упавшего запуска или ветки PR. Ваша рабочая папка не затрагивается. Файлы `.env`, игнорируемые git, копируются в worktree, чтобы тесты могли запускаться, но никогда не пушатся.

Агент следует шагам из **Playbook** правила. Для CI плейбук по умолчанию — «Fix a CI failure»:

1. Найти первую настоящую ошибку в логе.
2. Запустить команду CI локально и воспроизвести ошибку.
3. Исправить первопричину; если проблема в конфигурации CI (workflow, версия, переменная окружения), исправить её.
4. Заново запустить команды CI локально и убедиться, что они проходят.

Для комментариев к PR по умолчанию используется «Address PR comments»: прочитать каждый комментарий и код, на который он указывает, применить верные, объяснить своё мнение там, где вы не согласны, запустить тесты и в ответе перечислить, что сделано по каждому комментарию.

Плейбуки можно менять. Сохраняйте свои на этом компьютере или в репозитории; плейбуки репозитория записываются в `.agentvera/playbooks/`, передаются команде через git и заменяют встроенный плейбук с тем же именем.

Используйте **Extra instructions**, чтобы сузить правило. Например: «Чини только тесты и ошибки типов; не меняй контракт API».

В поле **Agent** выберите Claude Code или Codex.

## Ограничения: что останавливает агента?

Агента, который работает сам, нужно не просто хорошо настроить, а ограничить. В AgentVera ограничения такие:

- **Дневной лимит.** У каждого правила есть значение **Max per day** от 1 до 50, по умолчанию 5, считается за последние 24 часа. Запуски вручную в него не входят.
- **Лимит на ветку.** На ветку в день пробуется не более 2 автоисправлений CI, и одновременно выполняется или ждёт только одно исправление на ветку. Если исправление снова ломает CI, агент не крутится бесконечно.
- **Внешний текст не является инструкциями.** Логи CI, комментарии к PR и текст issue передаются агенту как недоверенный внешний текст, который только описывает работу. Агенту сказано не раскрывать секреты, не запускать посторонние команды и не отправлять данные никуда ещё.
- **Агент не пушит.** Он только коммитит. Push и открытие PR — дело AgentVera, которое выполняется после сдачи работы агентом.
- **Проверка на секретные файлы.** Перед push каждый коммит и итоговое состояние проверяются на секретные файлы: `.env`, ключи вроде `.pem` и `.key`, `id_rsa`, `.npmrc`, `.netrc`, `credentials.json` и подобные. Файлы-образцы вроде `.env.example` допустимы. Если что-то найдено, ничего не пушится, а запуск завершается ошибкой.
- **Застрявший агент останавливается.** Если агент просит помощи, замолкает или закрывается, запуск переходит в состояние «needs attention», и вы получаете уведомление.

## Доставка: куда уходит работа?

Что происходит, когда агент закончил, задаёт **On delivery**:

| Вариант | Что происходит |
| --- | --- |
| Automatic (push to the CI branch, PR to the main branch) | Push, если падение было на ветке фичи, PR, если на ветке по умолчанию |
| Open a PR | Всегда PR |
| Push to the same branch | Push в ветку события; на ветке по умолчанию всё равно PR |
| Add to the merge queue | Ветка встаёт в очередь, и тестируется результат её слияния |
| Leave on the branch | Ничего не пушится; ветка остаётся у вас |

Одно правило не меняется никогда: AgentVera не пушит напрямую в ветку по умолчанию. Если агент ничего не изменил, запуск завершается пометкой «no changes».

Для комментариев к PR работа пушится в ветку PR, а AgentVera оставляет в PR ответ с описанием того, что агент сделал по каждому комментарию.

Выбор очереди слияния означает, что исправление проверяется ещё раз поверх свежего main. О работе очереди я рассказываю в [статье об очереди слияния](/ru/blog/merge-queue-for-ai-agents/).

## Ревью до попадания в main

Автоматическое исправление не означает автоматического принятия. Проверить работу агента можно несколькими способами:

- **Сам pull request.** Падения на main уже возвращаются как PR. Прочитайте diff, дождитесь зелёного CI и слейте, как любой другой PR.
- **Одобрение в очереди слияния.** Опция **Land passing branches automatically** по умолчанию выключена, так что работа, прошедшая проверку, ждёт вас.
- **Leave on the branch.** В первые недели работы нового правила самый осторожный вариант — выбрать **Leave on the branch** и проверять вручную.
- **Вкладка Runs.** Здесь виден статус каждого запуска, его агент и открытый им PR.

Для ваших собственных агентов у AgentVera есть и автоматическое ревью кода: когда ход агента заканчивается, выбранная вами модель Claude проверяет код и сообщает находки с серьёзностью и file:line. Подробнее в статье [ревью кода с ИИ](/ru/blog/ai-code-review/).

При проверке особенно смотрите:

- **Исправили тест или код?** Если агент поменял ожидаемое значение, чтобы тест прошёл, это тревожный знак. Запретить такое можно в Extra instructions.
- **Менялась ли конфигурация CI?** Правка workflow может быть законной, а может быть пропущенным шагом.
- **Остался ли он в рамках задачи?** Ошибка типов не должна возвращаться десятифайловым рефакторингом.

## Исправления в один клик из центра CI/CD

Правило для каждого красного запуска может быть не нужно. Вкладка CI/CD показывает 25 последних запусков по каждому провайдеру; запуск можно повторить, повторить только упавшие задачи (не в Jenkins) или отменить. На красном запуске **Have an agent fix it** открывает агента с данными запуска и хвостами логов его упавших задач. На этот раз вы рядом с агентом.

## Частые ошибки

- **Следить за main с «Push to the same branch» и ожидать прямого push.** AgentVera не пушит в ветку по умолчанию; исправление всё равно приходит как PR.
- **Выставлять дневной лимит на максимум.** Лимит — страховка. Держите его низким, пока правило не заслужит доверие.
- **Оставлять Extra instructions пустыми.** Если сказать агенту, чего не трогать, результаты заметно сужаются.
- **Отдавать агенту нестабильные тесты.** Для теста, который падает то и дело, агент может менять то, что менять не нужно. Сначала разберитесь с нестабильными тестами сами.
- **Хранить секреты в репозитории.** Проверка остановит push, но настоящее решение — вообще не класть секреты в репозиторий.

## Пример дня

### Утро

Ночной коммит коллеги в `main` сломал CI. Правило «Fix CI when it breaks» это поймало: агент нашёл в логе ошибку типов, воспроизвёл её локально и исправил. Поскольку это была ветка по умолчанию, работа вернулась как PR. Вы читаете diff за кофе и сливаете.

### Полдень

Коллега оставляет четыре комментария к одному из ваших PR. Через две минуты срабатывает правило «Handle PR comments». Агент применяет три, с одним не соглашается и объясняет почему. AgentVera пушит в ветку PR и оставляет ответ в PR. Вам остаётся лишь прочитать тот, с которым агент не согласился, и решить.

### После обеда

CI продолжает падать на ветке фичи. Агент пробует дважды, и тесты оба раза остаются красными. Третьей попытки нет; статус виден на вкладке Runs. Лог показывает, что проблема в переменной окружения тестов, и вы исправляете её сами.

## Чек-лист

- [ ] Добавлен ли ваш провайдер CI на вкладке CI/CD?
- [ ] Для репозиториев GitHub: выполнен ли вход в GitHub на этом компьютере?
- [ ] Правильно ли заполнено поле **Branches**? Пустое значит все ветки.
- [ ] Сказано ли в **Extra instructions**, чего агент не должен трогать?
- [ ] Осторожно ли выставлен **Max per day**?
- [ ] Соответствует ли **On delivery** тому, как вы любите проверять?
- [ ] Секреты не хранятся в репозитории?

## Подводим итоги

Передача ошибок CI и комментариев к PR ИИ-агенту возвращает вам самую прерываемую часть дня. Важна не скорость агента, а то, что он ограничен: в AgentVera он работает в собственном worktree, сам не пушит, никогда не пишет напрямую в ветку по умолчанию, не пушит работу с секретными файлами и получает ограниченное число попыток на ветку. Последнее слово остаётся за вами, в PR или в очереди слияния.

Читайте также:

- [Автоматизации](/ru/features/automations/)
- [Центр CI/CD](/ru/features/ci-cd-center/)
- [Ревью кода](/ru/features/code-review/)
- [Конвейер рабочего процесса ИИ-агентов](/ru/blog/ai-agent-workflow-pipeline/)
- [Параллельные кодинг-агенты](/ru/blog/parallel-coding-agents/)

Чтобы попробовать AgentVera, начните с [главной страницы](/ru/).

## Частые вопросы

**Может ли ИИ правда исправлять ошибки CI?** Часто да: сломанные тесты, ошибки типов, проблемы линтера и конфигурации CI вроде версии или переменной окружения. Агент находит первую настоящую ошибку в логе, воспроизводит её локально и исправляет. Результат вы всё равно проверяете.

**Пушит ли агент прямо в main?** Нет. AgentVera никогда не пушит напрямую в ветку по умолчанию. Падение на main возвращается как pull request; падение на ветке фичи при доставке по умолчанию пушится в эту ветку.

**Может ли агент застрять в цикле исправлений?** Нет. На ветку в день пробуется не более 2 автоисправлений, и одновременно выполняется или ждёт только одно исправление на ветку. У каждого правила есть и собственный дневной лимит.

**С какими агентами это работает?** Правила автоматизации запускают Claude Code или Codex. Нужного агента вы выбираете в поле Agent правила.

**Какие системы CI поддерживаются?** Триггер «CI turned red» следит за провайдерами GitHub Actions, GitLab CI и Jenkins, которые вы добавили на вкладке CI/CD. Для триггеров комментариев к PR и issue репозиторий должен быть на GitHub, а на вашем компьютере нужен вход в GitHub.

**В какой тариф это входит?** Автоматизации доступны в тарифах Pro и Team. В десктопном приложении они находятся в Details → Automation → Automations.

---

**Об AgentVera.** AgentVera — настольное приложение для macOS, Windows и Linux от Solviera Teknoloji. Оно запускает 18 ИИ-агентов для программирования (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) рядом, по проектам, в настоящих терминалах с собственными установками CLI и входами пользователя. В бесплатном тарифе количество агентов не ограничено. Скачать: https://agentvera.dev/ru/download/ · Цены: https://agentvera.dev/ru/pricing/
