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

Модуль 01 — Практика: эксперименты, ломающие интуицию

Время: 150 минут · Артефакт: labs/01-experiments.md

Все эксперименты выполняются в ~/edu/sandbox (или любом учебном репозитории). Для каждого — фиксируйте результат: что ожидали, что получили, вывод.


Эксперимент 1. Недетерминизм (20 мин)

Задайте агенту один и тот же вопрос три раза в трёх новых сессиях:

Напиши функцию на Python, которая проверяет, является ли строка палиндромом.

Сравните три ответа.

Записать: чем отличаются (имена, обработка регистра, пробелы, тесты). Вывод: воспроизводимость достигается не температурой, а тестами.


Эксперимент 2. Расплывчатость vs конкретика (30 мин)

Плохой запрос:

Сделай валидацию email.

Хороший запрос:

Добавь в app.py функцию validate_email(s: str) -> bool.
Требования:
- строка содержит ровно один '@';
- локальная часть непустая, домен содержит точку;
- кириллица запрещена;
- пустая строка → False;
- не бросать исключений.
Напиши тесты на: "a@b.co" → True, "a@b" → False, "" → False, "тест@mail.ru" → False.

Записать таблицу: | критерий | плохой запрос | хороший запрос | — по колонкам «есть ли тесты», «учтена кириллица», «учтён ''», «число итераций до рабочего результата».


Эксперимент 3. Иголка в стоге сена (30 мин)

Создайте файл с 300 строками нерелевантного кода (можно сгенерировать агентом), и в середине — одну строку:

SECRET_CONSTANT = 42  # важное правило

В одной сессии попросите:

Прочитай big.py целиком и скажи значение SECRET_CONSTANT.

Затем в новой сессии:

Найди в big.py константу SECRET_CONSTANT и скажи её значение. Используй grep.

Записать: оба ответа, время, примерную стоимость. Вывод: инструмент (grep) дешевле и надёжнее, чем «прочитай всё».


Эксперимент 4. Галлюцинация API (25 мин)

Попросите:

Напиши пример использования библиотеки <выберите редкую библиотеку> с методом <выдумайте метод>.

Затем проверьте в официальной документации, существует ли метод.

Повторите с вашей основной библиотекой:

Как в <ваша библиотека> <версия> сделать <задача>?

Сверьте с документацией.

Записать: сколько выдумок на 3 запроса. Какая формулировка повышала риск.


Эксперимент 5. Деградация длинной сессии (30 мин)

В одной сессии:

  1. Попросите написать 3 функции.
  2. Две из них попросите переписать «по-другому» (создайте 2–3 итерации правок).
  3. Затем вернитесь к задаче из шага 1: «напомни, какие требования были к первой функции?»
  4. Попросите добавить новую функцию в том же стиле.

Теперь повторите шаг 4 в новой сессии, дав только финальный код и требования.

Записать: в каком случае стиль консистентнее, где больше расхождений с исходными требованиями. Вывод: «модель отупела» = «контекст засорён».


Эксперимент 6. Цена контекста (15 мин)

Запустите одну задачу дважды:

A) "Объясни, что делает app.py" (файл на 20 строк)
B) то же, но сначала попросите прочитать 5 больших файлов проекта

Сравните отображаемую стоимость/токены сессии (в OpenCode — счётчик стоимости, или opencode stats).

Записать: во сколько раз дороже вариант B и стало ли объяснение лучше.


Критерии сдачи

  • Все 6 экспериментов выполнены, каждый с разделом «ожидание / факт / вывод».
  • В отчёте есть хотя бы одна таблица сравнения.
  • Сформулированы 3 личных правила, которые вы забираете в работу.
  • Приложены логи/скриншоты стоимости для эксперимента 6.