В 2026 году GitHub перестал быть только местом для хранения кода. Назначаете issue Copilot — он поднимает выделенную VM в GitHub Actions, клонирует репозиторий, выполняет RAG по кодовой базе, планирует изменение, отправляет коммиты в draft pull request и затем самостоятельно прогоняет Copilot Code Review и сканеры безопасности. Cursor, Claude Code и Codex подключаются по той же модели. Ось сотрудничества смещается: люди задают цели, пишут правила и проверяют результат, а сам репозиторий становится исполнительным пространством агента. В этом Runbook разбираем три продуктовых слоя GitHub (Copilot coding agent, .github/agents/, Agentic Workflows) и связку с выделенным Apple Silicon runner.
00Сдвиг парадигмы: от хостинга кода к исполнительному пространству AI-агентов
Последние десять лет GitHub собирал код, issues, pull requests, Actions и модель прав в единый граф человеческого взаимодействия. Люди писали код, открывали PR, проверяли PR и сливали ветки после зелёного CI. Перемена 2025–2026 годов касается самого «писателя кода». Репозиторий превращается из «склада кода» в «исполнительную песочницу агента».
Три продуктовых слоя двигают этот сдвиг параллельно. Copilot coding agent (cloud agent) стартует по назначению issue или промту Chat, поднимает выделенную VM в GitHub Actions, выполняет RAG по репозиторию, планирует задачу и пушит коммиты в draft PR. .github/agents/ custom-агенты позволяют командам декларировать несколько специализированных ролей — агент оптимизации производительности, агент написания тестов, агент документации. Agentic Workflows (gh-aw, технический preview) компилирует Markdown из .github/workflows/ в Actions YAML, а Copilot, Claude или Codex выполняют событийные постоянные задачи внутри песочницы.
Слои наслаиваются — и продуктовая семантика GitHub переходит от «человек пишет код → репозиторий хранит код» к «человек пишет цель → агент выполняет внутри репозитория → человек проверяет draft PR → CI/CD катит релиз». Понять эту перемену важнее, чем гнаться за конкретным инструментом. А сопровождающий её контракт по вычислениям (self-hosted runners, выделенные Apple Silicon-узлы) становится новой опорой.
БОЛЬЧетыре скрытых издержки запуска агентов в поминутном пуле
Многие команды цепляют Copilot coding agent или Claude Code прямо к GitHub-hosted runner. На короткой дистанции это удобно. На длинной — всплывают четыре издержки:
- Поминутный пул × длинные агентские задачи: агенты перезапускают компиляцию, тесты и сканеры безопасности. Одна job нередко идёт дольше 30 минут. Поминутная тарификация плюс шум соседей дают нелинейный рост месячного счёта — заметно круче прежней «чисто человеческой» CI.
- Утечка материалов подписи: на общем runner secrets инжектятся в среду агента. При prompt injection или вредоносной зависимости сертификаты подписи и provisioning-профили получают реальный канал утечки. SafeOutputs MCP Gateway, Agent Workflow Firewall (AWF) и threat detection job существуют именно для того, чтобы физически отделить право записи агента от среды выполнения.
- Непредсказуемый объём ревью draft PR: агент за ночь может открыть десятки draft PR. Без AGENTS.md и ограничителей custom-агентов ревьюеры тонут. GitHub по умолчанию требует человеческого одобрения draft PR до запуска CI/CD — встроенный выключатель «человек в петле».
- Недооценённый Apple Silicon: iOS/macOS-проектам нужны Xcode, симуляторы, выгрузка TestFlight. Им требуются DerivedData, keychain подписи и закреплённая версия Xcode. На универсальных hosted macOS runner это медленно и дорого; на выделенном узле — дешевле и аудируемо.
Заведите эти пункты в ревью — вывод сложится сам: исполнительному пространству агента нужны выделенные вычисления и явный контракт безопасности, а не «какой-нибудь runner для галочки».
01Сравнение трёх продуктовых слоёв GitHub-агента
Ниже инженерное сопоставление трёх часто путаемых концепций — чтобы команда выбрала правильную точку входа в ревью:
| Слой | Триггер | Среда выполнения | Основной результат | Когда применять |
|---|---|---|---|---|
| Copilot coding agent (cloud agent) | Назначение issue / Copilot Chat / gh CLI | Выделенная VM в GitHub Actions, RAG по репозиторию | Draft PR + self Code Review + сканеры безопасности | Передать агенту issue и получить ревьюабельное изменение |
Custom-агенты .github/agents/ | Декларация ролей и сценариев в репозитории | Та же VM, но per-role инструментарий и promt | То же плюс отчёты benchmark/diff | Закодировать «человеческий Runbook» как поведение агента |
| Agentic Workflows (gh-aw) | Любое событие Actions (issue / PR / расписание / комментарий) | Markdown компилируется в Actions YAML; Copilot / Claude / Codex работают в песочнице | Ограниченные через SafeOutputs записи: issue / comment / label / branch / PR | Триаж issue, анализ падений CI, поддержка документации, комплаенс-обходы |
Слои не исключают друг друга. Зрелые команды берут Copilot coding agent как основной вход в «написание кода», ограничивают роли через .github/agents/ (агент тестов, агент производительности, агент документации) и подключают Agentic Workflows для событийной постоянной автоматизации: разбор красной CI, триаж каждого нового issue. GitHub становится чистой плоскостью «событие → агент → контролируемая запись».
02Контракт безопасности рабочего пространства: SafeOutputs / AWF / человеческое ревью
В любой схеме «агент действует на репозиторий» контракт безопасности важнее выбора модели. GitHub Agentic Workflows делает этот слой явным; шаблон стоит перенять и при self-hosted сборке:
- SafeOutputs MCP Gateway: агент не вызывает GitHub API напрямую. Он декларирует gateway намерения записать что-либо; gateway буферизует это как artifact. После выхода агента отдельная job с правами записи валидирует, санитизирует и ограничивает каждый запрос. Сам процесс агента — всегда read-only, без secrets.
- Agent Workflow Firewall (AWF): агент работает в изолированном контейнере; трафик гоняется через iptables на Squid-прокси с allowlist по доменам — блокируется эксфильтрация данных и внешнее C2.
- Threat detection job: перед применением патча отдельный security-агент сканирует diff на prompt injection, утечки кредов и подозрительные паттерны кода. При подозрении весь workflow завершается ошибкой.
- Branch protection и человеческое ревью: Copilot coding agent может пушить только в созданные им ветки. Draft PR нуждается в подтверждении человеком прежде чем стартует CI/CD. Человек остаётся fail-safe-вентилем на пути к деплою.
03AGENTS.md: репозиторий как spec, чтобы агент не гадал
Спецификация AGENTS.md, разработанная в 2025 году совместно OpenAI, Cursor, Jules, Amp и Factory, — это «человеческая сторона» контракта рабочего пространства агента. Положите в корень репозитория «README для агентов», и любой coding-agent получит предсказуемое место для структуры проекта, команд сборки, команд тестов, стилевых правил и замечаний по безопасности.
- Иерархическое разрешение: в подкаталогах могут лежать собственные AGENTS.md, агент берёт ближайший к изменяемому файлу. В основном репозитории OpenAI сейчас 88 таких файлов.
- Must-follow и Should: жёсткие правила («не коммитить в main», «закрепить Xcode 16.2») соседствуют с мягкими предпочтениями («предпочитать Swift Testing»). Поведение агента сходится.
- README и AGENTS.md дополняют друг друга: README — для людей и внешних контрибьюторов, AGENTS.md — для агентов; команды сборки, правила длинного контекста и подводные камни безопасности попадают в AGENTS.md, не засоряя человеческий документ.
- Совместимо с Copilot CLI: Copilot CLI Agent в JetBrains и VS Code уже поддерживает глобальный
~/.copilot/agents/.agent.md, так что персональные предпочтения накладываются поверх командных правил.
Для iOS/macOS-проектов в AGENTS.md нужно фиксировать команду закрепления Xcode, точку входа xcodebuild, скрипты подготовки подписи, gates вроде -strict-concurrency=complete, лейблы выделенного runner и табу-каталоги. Чем явнее правила, тем меньше импровизирует агент. Это перекликается с чек-листом «заморозка baseline, baseline SSH, секционирование кеша, изоляция подписи» из Runbook по выделенному Apple Silicon-узлу NUKCLOUD; AGENTS.md — его агенто-читаемая форма.
ДАННЫЕПорядки величин для цитирования в ревью (пример)
Цифры ниже взяты из типичных внедрений iOS/macOS CI плюс агенты. Используйте их как ориентиры и сверяйтесь с собственными замерами:
- Walltime одной job агента: Copilot coding agent на «правке бага и добавлении тестов» обычно укладывается в 8–25 минут; «рефакторинг модуля плюс полная сборка» доходит до 30–90 минут. Общие поминутные пулы по-прежнему держат P95 очереди 15–45 минут в пиках релизов.
- Темп draft PR: после включения Copilot coding agent среднеразмерные команды видят рост числа дневных draft PR в 2–5 раз. Узкое место смещается с «писать код» на «ревьюить PR». AGENTS.md и
.github/agents— рычаги возврата. - Эффект SafeOutputs: при включённых SafeOutputs и AWF процесс агента не держит ни
GITHUB_TOKEN, ни secrets, ни ключей MCP API. Внутренний коэффициент отклонения threat detection job в preview — около 0,5–2%, в основном ложные срабатывания на контенте, похожем на prompt injection. - Эффект выделенного Apple Silicon: на выделенном узле NUKCLOUD с резервом
--concurrent-jobs 2–4под агентскую работу полнаяxcodebuild-job обычно завершается на 25–40% быстрее, чем на универсальном macOS runner. С хитами кэша DerivedData выигрыш растёт ещё на 30–60%. - Нагрузка на ревьюера: агент прогоняет self Code Review до открытия draft PR, поэтому первый раунд человеческой проверки укорачивается. Цена — ревьюер фокусируется на замысле проектирования и системных границах, а не на синтаксисе.
04Шестишаговый Runbook: превращаем репозиторий в исполнительное пространство AI-агента
Минимально работоспособный Runbook в связке с выделенным Apple Silicon runner. Выполняйте по порядку — не пытайтесь в первый день получить идеал.
-
01
Напишите AGENTS.md: файл в корне с Must-follow (версия Xcode, команды сборки, табу-каталоги, branch protection) и Should (стиль, формат commit). При необходимости добавьте вложенные AGENTS.md. Codex, Cursor и Copilot CLI парсят все.
-
02
Объявите custom-агентов
.github/agents/: минимум три роли — агент тестов (трогает только*Tests*, гоняет полный набор), агент документации (только.mdи changelog), агент производительности (сначала benchmark, потом правка). Ограничьте вызовы инструментов и обязательные шаги в prompt. -
03
Внедрите Agentic Workflows (gh-aw): опишите триаж issue, авто-починку CI failure и обход документации в Markdown. SafeOutputs держите включённым, чтобы процесс агента оставался read-only, а любые записи проходили через ограниченные jobs.
-
04
Зарегистрируйте выделенный Apple Silicon runner: закажите выделенный узел NUKCLOUD на странице заказа, оформите как self-hosted runner и навесьте лейблы
agent-macos,xcode-16,signing-isolated. Keychain подписи монтируйте только на jobs с правом записи. -
05
Постройте контракт безопасности: на узле повторите AWF через Squid плюс iptables. Уберите secrets из runner (OIDC плюс облачный KMS), чтобы контейнер агента не мог их читать. Draft PR — только после человеческого ревью и лишь затем в CI/CD.
-
06
Цикл ревью и KPI: еженедельно отслеживайте «число draft PR / латентность ревью / процент ручных отклонений / попадания threat detection». Подкручивайте AGENTS.md и promt custom-агентов под KPI. Связывайте раскатку с ритмом «по этапам, с возможностью отката» из Runbook по строгим воротам конкурентности Swift 6.
05Сопоставление: универсальный облачный runner + агент vs выделенный Apple Silicon + агент
Таблица для выравнивания ревью; конкретные цифры заполняют финансы и сетевая команда вашей версии.
| Аспект | Универсальный GitHub-hosted runner + агент | NUKCLOUD выделенный Apple Silicon + агент |
|---|---|---|
| Форма вычислений | Поминутный пул, шумные соседи | Bare-metal выделенный, без соседей |
| Версия Apple Silicon | Управляется платформой, окно обновлений узкое | Закреплена под ваш Xcode/macOS, ваш ритм релизов |
| Контракт безопасности | Полагается на дефолтную изоляцию платформы | На стороне узла можно добавить Squid / iptables / threat detection |
| Материалы подписи | Secrets попадают в общий runner, площадь поражения велика | Keychain подписи монтируется только на job с правом записи |
| Стоимость | Длинные агентские jobs + пиковые минуты раздувают счёт | Фикс по месяцу, агентская активность амортизируется |
| Аудируемость | Очередь и узел непрозрачны для тенанта | Логи, egress и использование диска видны на уровне узла |
Суть таблицы — не «что дешевле», а «можно ли защитить исполнительное пространство агента документами?». Выделенный узел позволяет посадить SafeOutputs, AWF и дисциплину человеческого ревью на конкретные узлы и лейблы runner, а не на слоганы.
06FAQ
.github/workflows/ полностью совместимы с self-hosted runner. Чтобы маршрутизировать агентские задачи на выделенный Apple Silicon-узел, навесьте на runner лейблы agent-macos, xcode-16 и потребуйте их в AGENTS.md и promt custom-агентов..github/agents/: ограничьте каталоги, обяжите запускать тесты, обяжите писать описание изменений. Затем передайте первый круг ревью Agentic Workflows (анализ падений CI, аннотация каждого PR). Люди фокусируются на замысле проектирования и системных границах. Исполнительное пространство не отменяет ревью — оно поднимает его на ступень выше.