Запускать агентов-ревьюеров
В этом руководстве показано, как запускать агентов-ревьюеров для проверки pull request.
Со страницы PR
Заголовок раздела «Со страницы PR»- Откройте PR и перейдите на вкладку Обзор
- Откройте меню переполнения ⋯ и выберите Спросить AI
Так запускается предустановленный конвейер pr_review: он открывает пространство
проверки этого PR и запускает ревьюеров в соответствии с уровнем ревью рабочего
пространства — по умолчанию троих (предустановленные агенты qa, architect и
engineer) — а затем поручает ведущему агенту свести их замечания. На этом пути
роли выбираете не вы. Чтобы управлять тем, какие роли запускаются и какие файлы
просматривает каждая из них, используйте инструмент MCP или шаг конвейера ниже.
Через инструмент MCP dispatch_reviewers
Заголовок раздела «Через инструмент MCP dispatch_reviewers»Вызовите его из существующего пространства проверки:
dispatch_reviewers( space_id: "...", workspace_id: "...", reviewers: [ {role: "reviewer"}, {role: "security", scope: "src/auth/**"} ])space_id, workspace_id и reviewers обязательны. Каждая спецификация ревьюера
принимает role, а также необязательный scope — glob-шаблон файлов — и
prompt_override, который заменяет инструкцию по умолчанию. Необязательный
concurrency (1–8) ограничивает число параллельных запусков; если он не указан,
применяется настройка review_concurrency рабочего пространства (по умолчанию 3,
задаётся в разделе Настройки → Рабочее пространство → Основные).
Инструмент возвращает управление сразу, со списками dispatched и unmatched.
Каждый запущенный ревьюер добавляется в пространство как участник, объявляется
системным сообщением и запускается со своей инструкцией. Замечания попадают в это
пространство как сообщения review_node.
Из шага конвейера
Заголовок раздела «Из шага конвейера»Откройте Настройки → Рабочее пространство → Шаблоны конвейеров, откройте шаблон и затем:
- Добавьте узел Reviewer (prompt) из палитры
- Выберите агента для запуска и напишите промпт ревьюера, используя плейсхолдеры
{{key}}для выходных данных вышестоящих шагов (например,{{repo_local_path}},{{pr_number}}) - Задайте ключ вывода (по умолчанию
reviewer_findings), чтобы нижестоящие шаги могли прочитать замечания
Шаг запускает агента и приостанавливается до завершения этого запуска. Затем
движок забирает полезную нагрузку submit_output запуска в состояние конвейера
под ключом вывода узла. (Описание в палитре по-прежнему говорит, что шаг ждёт
вызова complete_task, — такого инструмента не существует; игнорируйте эту
строку.)
Разветвите процесс, подключив несколько узлов-ревьюеров к одному вышестоящему шагу, а затем сведите их выходные данные узлом Consolidate (join).
Редактор перенаправляет скрытый терминал к каждому достижимому приёмнику, поэтому узел, добавленный после предустановленного шага Step, всё равно выполняется. Узлы разветвления, подключённые к одному вышестоящему шагу, выполняются параллельно.
Автоматический запуск при новом PR
Заголовок раздела «Автоматический запуск при новом PR»Чтобы конвейер проверки срабатывал сам:
- Откройте шаблон в разделе Настройки → Рабочее пространство → Шаблоны конвейеров
- Перетащите PR опубликован или Открыт внешний PR из раздела «Триггеры» библиотеки узлов на холст (или выберите его на плитке-призраке Добавить триггер)
- Выберите новый узел и включите переключатель Включено в его инспекторе, затем включите шаблон
Здесь важны два события, и они не взаимозаменяемы:
| Событие | Срабатывает, когда | Ключи полезной нагрузки |
|---|---|---|
PullRequestPublished |
PR открыт через Control Center — на поверхности создания PR или агентом, вызывающим pr_lifecycle.publish |
pr_id, workspace_id, repo_owner, repo_name |
ExternalPrDetected |
Служба опроса PR обнаруживает PR, открытый напрямую на GitHub | repo_owner, repo_name, pr_number, pr_title, author |
PR, открытый на github.com, никогда не вызывает PullRequestPublished, поэтому
шаблон, подключённый только к этому событию, его не увидит. Учтите также, что
PullRequestPublished не несёт pr_number, — шаг, чей скрипт или промпт ссылается
на {{pr_number}}, должен получать данные от ExternalPrDetected или от запуска
вручную, который их передаёт.
Проверка: включив шаблон, откройте Конвейеры и убедитесь, что для следующего подходящего PR появился запуск. Отключённый шаблон заставляет свой триггер срабатывать в пустоту — движок отклоняет отключённый шаблон и возвращает управление, не начиная запуск.
Как роль сопоставляется с агентом
Заголовок раздела «Как роль сопоставляется с агентом»dispatch_reviewers оценивает каждого агента в рабочем пространстве по каждой
запрошенной метке роли без учёта регистра:
| Совпадение | Баллы |
|---|---|
| Навык, содержащий метку роли | +3 |
| Должность, содержащая метку роли | +2 |
| Имя агента, содержащее метку роли | +1 |
Баллы суммируются, и побеждает наибольшая сумма (при равенстве — первый найденный
кандидат). Если ни один кандидат не набирает больше нуля, спецификация возвращается
в списке unmatched инструмента, а не запускается, — так роль, которой никто не
соответствует, попадает в отчёт и никогда не пропускается молча.
Пространство проверки
Заголовок раздела «Пространство проверки»У PR ровно одно пространство проверки, а не по одному на каждого ревьюера. Оно
создаётся идемпотентно через pr.ensureSpace, связывается с PR через
ReviewSpaceAssociation и подготавливается по head ref этого PR. Каждый запущенный
ревьюер присоединяется к этому пространству и публикует там свои замечания
review_node — именно это делает замечания сопоставимыми и позволяет ведущему
агенту достичь консенсуса по ним.
Следите за запуском
Заголовок раздела «Следите за запуском»У каждого запущенного ревьюера свой AgentRunLog. Следите за ходом работы в:
- Пространстве проверки, куда замечания поступают в реальном времени
- На вкладке Ревью PR, где показаны строка состояния проверки и вердикт
- В разделе Наблюдаемость → Онлайн (
/workspaces/:id/observability) — список агентов со статусом каждого запуска, прошедшим временем в реальном времени, панелью транскрипта и кнопкой остановки. Горячей клавиши для неё нет — открыть её можно из нижней части боковой панели.