Модуль 05 — Практика: права и изоляция
Время: 150 минут · Артефакт: labs/05-agent-loop/
Задание 1. Составить модель угроз (25 мин)
Для своего учебного проекта выпишите 10 действий, которые агент не должен делать
без спроса. Разделите на три категории: deny, ask, allow.
Приёмка: таблица с обоснованием для каждого deny.
Пример:
| Действие | Решение | Почему |
|---|---|---|
git push |
deny | публикация наружу |
чтение .env |
deny | секреты |
pytest |
allow | безопасно, нужно часто |
alembic upgrade |
ask | меняет БД |
Задание 2. Настроить правила (30 мин)
Добавьте правила в opencode.jsonc (проектный или глобальный) и проверьте:
opencode debug config | grep -A2 permissions
Затем проверьте в деле:
- Попросите
git status— не должно спрашивать. - Попросите
git push— должно отказать. - Попросите прочитать
.env— должно отказать/спросить.
Приёмка: три сценария отработали как задумано, в отчёте — скриншоты/логи.
Задание 3. Изоляция через ветку и worktree (40 мин)
Ветка:
git checkout -b agent/refactor-utils
Дайте агенту задачу на 2–3 файла. Убедитесь, что main не тронут:
git diff main --stat
Worktree:
git worktree add ../sandbox-agent -b agent/experiment
cd ../sandbox-agent
Запустите там агента с другой задачей. Проверьте, что основная папка чистая.
Приёмка: в отчёте — вывод git diff main --stat и git worktree list.
Задание 4. Опасное действие под контролем (25 мин)
Попросите агента выполнить потенциально опасную команду (в песочнице!):
Удали папку build и пересобери проект.
Проверьте: спросил ли он, показал ли план, что именно удаляется.
Затем настройте deny на rm -rf * и повторите — агент должен найти другой путь
(например, rm -r build или предложить ручную команду).
Приёмка: в отчёте — оба поведения и вывод: почему «агент нашёл обход» — это не баг, а сигнал.
Задание 5. Субагент для разведки (30 мин)
Дайте субагенту задачу:
Найди все места в репозитории, где выполняется запрос к БД напрямую
(без слоя репозитория). Верни список файлов и строк, без правок.
Затем в основной сессии используйте результат.
Приёмка: отчёт субагента — компактный список; основной контекст не раздут (сравните стоимость с прямым «прочитай весь репозиторий»).
Критерии сдачи
- Модель угроз: 10 действий с категориями и обоснованием.
- Правила применены и проверены на 3 сценариях.
- Ветка/worktree использованы, доказательства в отчёте.
- Есть разбор опасного действия и поведения агента.
- Субагент выполнил разведку, есть сравнение стоимости.