← Вайбкодинг · Вайбкодинг с OpenCode EN FR Курс 30/70 →

Модуль 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

Затем проверьте в деле:

  1. Попросите git status — не должно спрашивать.
  2. Попросите git push — должно отказать.
  3. Попросите прочитать .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 использованы, доказательства в отчёте.
  • Есть разбор опасного действия и поведения агента.
  • Субагент выполнил разведку, есть сравнение стоимости.