Тема
Перед чтением
В примерах мы будем читать Python-код, запускать тесты, сравнивать изменения и разбирать ошибки. Хендбук предполагает, что вы уже работали с программным проектом: можете найти нужную функцию, исправить её в отдельной ветке и объяснить результат на ревью.
Что нужно знать
| Навык | Где он понадобится |
|---|---|
| Git: ветки, изменения, коммиты, PR | Чтобы отделить изменения агента от исходного состояния и проверить их перед объединением. |
| Терминал: пути, рабочая директория, код завершения | Чтобы запускать runner и понимать, почему команда не выполнилась. |
| Тесты и отладка | Чтобы отличить ошибку в продукте от ошибки теста или окружения. |
| Устройство своего проекта | Чтобы определить, какие файлы нужны для задачи и что изменение может затронуть. |
| Основы доступа к данным | Чтобы понимать последствия выдачи токена, доступа к базе или права на отправку сообщений. |
Для практики нужен Python 3.10 или новее. Внешних Python-зависимостей у стенда нет. Достаточно понимать функции, словари, списки, исключения и импорт модулей; знание асинхронного программирования не требуется. Команды выполняются из корня репозитория курса в Linux, macOS или WSL.
Полезно хотя бы раз поручить агенту небольшое исправление и посмотреть, какие файлы и команды он использовал. Если такого опыта нет, первые главы можно читать параллельно с этим экспериментом. Учебный стенд работает без аккаунта у поставщика модели и без API-ключа.
Что можно освоить по ходу
Опыт с CI поможет в главе о проверках, с контейнерами и сетевыми ограничениями - в главе о безопасности, с эксплуатацией сервисов - в главах о логах и обновлениях. Если эти темы пока незнакомы, начните с локальной цепочки и вернитесь к ним при переносе runner в свою среду.
Обучать модели и разбираться в их внутренней архитектуре для этой работы не нужно. Мы используем агент как исполнителя с известным интерфейсом и проверяем то, что он сделал.
Небольшая проверка перед стартом
Возьмите проект с тестами. Сможете ли вы запустить их из терминала, намеренно сломать одно условие, найти сообщение об ошибке и вернуть рабочую версию? Сможете ли затем показать в diff, что именно менялось?
Если да, можно переходить к первой главе или сразу к практике. Если нет, сначала проделайте это на знакомом проекте. В дальнейшем runner будет выполнять те же действия автоматически, поэтому полезно увидеть их вручную.