Разработка с Codex · курс 6
Harness engineering: среда, в которой агенты пишут код
Экспертный курс о том, как строить среду (harness), в которой агенты надёжно пишут код в больших объёмах. Как устроен агентный цикл Codex, сборка промпта, кэш и компакция, контекстная инженерия. Направляющие: читаемость репозитория для агента, AGENTS.md как оглавление, документация как система записи, планы исполнения, spec-driven development. Датчики и ограничения: инварианты в линтерах и структурных тестах, петли обратной связи, наблюдаемость, изолированные окружения, проверка поведения. Масштаб: длинные задачи, оркестрация, борьба с энтропией, мерж при большом потоке. Evals, бенчмарки и внедрение в команде.
- Для кого
- Сеньоры, техлиды, тимлиды и техдиры, которые строят процессы разработки с агентами.
- Что нужно
- Курсы «Codex в ежедневной разработке» и «Настройка и расширение Codex» или серьёзный опыт работы с агентами.
- Объём
- 24 урока, 6 модулей, ≈ 8 ч с практикой
Программа курса
Модуль 1
Как устроен агент
- 01 Что такое harness и почему это инженерная дисциплина Что такое обвязка агента (harness), чем внутренний harness Codex отличается от внешнего, который строит команда, и почему эту среду проектируют, версионируют и тестируют как обычный код.
- 02 Агентный цикл Codex изнутри Как устроен цикл Codex — тред, ход, элемент, инференс через Responses API, вызовы инструментов и границы песочницы — и какие решения по внешнему harness из этого следуют.
- 03 Как собирается промпт: инструкции, инструменты, кэш Из каких частей и в каком порядке Codex собирает запрос к модели, где в нём оказываются AGENTS.md, права и навыки, почему промпт растёт как префикс и какие действия сбрасывают кэш.
- 04 Контекстная инженерия Контекст как конечный бюджет внимания модели. Кто и когда решает, что в него попадёт, чем загрузка заранее отличается от подгрузки по требованию и как спроектировать инструкции, инструменты и их вывод, чтобы на задачу оставалось место.
- 05 Компакция и длинные сессии Как Codex сжимает историю разговора — от ручного /compact до нативной зашифрованной компакции, — какие ключи и хуки этим управляют и почему состояние длинной работы нужно держать вне контекста.
Модуль 2
Направляющие
- 06 Читаемость для агента Что делает репозиторий понятным для агента — видимость знаний, «скучные» технологии, типы и явные границы, единообразие шаблонов, запуск одной командой — и как проверить читаемость своего проекта холодным стартом.
- 07 AGENTS.md как оглавление, а не энциклопедия Почему большой AGENTS.md проваливается, как лимит 32 KiB и порядок склейки отсекают вложенные инструкции, что должно быть в карте на сотню строк и как проверять её в CI вместе с ссылками.
- 08 Документация как система записи Как сделать репозиторий единственным авторитетным источником знаний для агентов и людей — структура docs/ по образцу OpenAI, статусы и владельцы документов, сгенерированная документация, механические проверки и агент-садовник.
- 09 Планы исполнения как артефакты Чем эфемерный план отличается от плана исполнения в репозитории, какие разделы делают план живым и пригодным для перезапуска, как связать PLANS.md с AGENTS.md и когда план действительно нужен.
- 10 Spec-driven development Что такое spec-driven development и его три уровня, чем спецификация отличается от плана и постоянного контекста, в чём критика тяжёлых SDD-процессов и как выглядит лёгкий вариант со спецификацией рядом с кодом и проверяемой приёмкой.
Модуль 3
Датчики и ограничения
- 11 Архитектура через инварианты: линтеры и структурные тесты Как превратить архитектурные правила в механические проверки, которые агент не может обойти: слои и их границы, структурные тесты, «вкусовые» инварианты и сообщения линтера, написанные как инструкция по исправлению.
- 12 Петли обратной связи Направляющие и датчики, детерминированные и вероятностные проверки по Бёкелер, петли разной скорости — от хука после каждой правки до мониторинга дрейфа. Собираем внутриходовую петлю в Codex на хуках PostToolUse и Stop.
- 13 Наблюдаемость для агента: логи, метрики, браузер Как дать агенту глаза на работающее приложение — браузер и DOM, структурированные логи, метрики и трейсы на каждое изменение, — чтобы он сам воспроизводил баги и проверял исправления, а человеческий QA перестал быть узким местом.
- 14 Изолированные окружения на каждую задачу Что нужно изолировать, чтобы несколько агентов работали параллельно и не мешали друг другу — файлы, порты, база, кэши, секреты. Worktree и setup-скрипты Codex, свой стенд на docker compose для каждой задачи, жизненный цикл и модель доверия.
- 15 Проверка поведения — главный открытый вопрос Почему тесты, написанные агентом, плохо доказывают правильность поведения и что с этим делать сегодня: критерии приёмки до кода, защищённые тесты, мутационное и approval-тестирование, независимый оценщик, видео-доказательства и решение о том, где человек остаётся обязательно.
Модуль 4
Масштаб
- 16 Длинные задачи: прогресс-файлы, циклы, перезапуск контекста Как вести задачу, которая не помещается в одну сессию агента. Три схемы — длинный прогон с компакцией и планом у OpenAI, инициализатор и прогресс-файлы у Anthropic, цикл Ralph у Хантли — и как собрать свой цикл на codex exec с условием остановки.
- 17 Оркестрация параллельных агентов Четыре уровня параллельной работы с агентами — субагенты, несколько сессий в worktree, трекер как пульт управления по образцу Symphony и собственный оркестратор на codex exec или App Server. Что даёт каждый уровень, чем за него платят и как применить это к Kaiten и GitLab.
- 18 Энтропия и сборка мусора в коде Почему агентная кодовая база дрейфует быстрее обычной и как с этим справляться непрерывно, а не авральными уборками — золотые принципы в репозитории, детекторы дрейфа, фоновые агенты с маленькими MR, уход за документацией и правила автомержа.
- 19 Когда агентов много: мерж и ревью Что меняется в мерже и ревью, когда агенты производят больше изменений, чем люди успевают прочитать. Практика «минимальных гейтов» одной команды OpenAI и её границы, данные DORA о стабильности, ревью по классам риска, пакеты доказательств, нестабильные тесты и метрики потока.
Модуль 5
Оценка и управление
- 20 Свои evals для кодинг-агентов Как собрать собственный набор задач для оценки связки «модель + harness» на своём репозитории — задачи из реальных провалов, оракулы, LLM-судья с калибровкой, pass@k и pass^k, скрипт прогона на codex exec и регресс при смене модели или AGENTS.md.
- 21 Бенчмарки: что они измеряют на самом деле Что на самом деле меряют SWE-bench Verified, SWE-bench Pro и Terminal-Bench, почему OpenAI перестала публиковать результаты на Verified и как читать новость о «новом рекорде», чтобы не переносить чужую цифру на свой репозиторий.
- 22 Самоулучшающийся harness Петля, в которой правка человека превращается в eval, а исправление обвязки предлагает сам агент. Разбираем кейс Tax AI от OpenAI и Thrive Holdings, собираем такую петлю для кодинг-агента в агентстве и ставим ограничители, чтобы она не переобучилась под свои же тесты.
- 23 Внедрение harness engineering: дорожная карта Поэтапный план внедрения harness engineering в команде агентства — что сделать в пилотном проекте завтра, к концу месяца и к концу квартала, кто владеет обвязкой, какие сигналы смотреть и какие практики OpenAI не стоит копировать на клиентский продакшен.
Amiga · заказная разработка с ИИ
Учимся сами — и делаем продукты с ИИ на заказ
Эти курсы написала команда, которая каждый день проектирует и разрабатывает цифровые продукты: от аналитики и дизайна до веб‑сервисов, мобильных приложений и внедрения ИИ. Если вам нужен не курс, а продукт, — это к нам.
- реализованных проектов
- 200+
- человек в команде
- 75+
5 место в рейтинге AI‑разработки, Ruward 2025
Направления
- ИИ и ML-разработка
- Системная аналитика
- Дизайн
- Веб-разработка
- Мобильная разработка
- Тестирование
- Поддержка и развитие
Проекты с ИИ и ML
- Маркетплейс Stock: ML‑система ускорила добавление товаров в 10 раз и определяет категорию с точностью 85%
- MVP приложения «Магазин на диване» с распознаванием товаров в видео — за 2 месяца
- Приложение с ML‑распознаванием деталей конструктора на Flutter — с нуля за 4 месяца
Обсудим ваш проект с ИИ
Расскажите о задаче — вернёмся с оценкой и предложим, с чего начать