Идея возникла из бытовой ситуации: проверяя домашнее задание, автор привык не смотреть в тетрадь, а спрашивать «почему ты так сделал?». Чтобы перенести этот подход на автоматизированный инструмент, он собрал приложение поверх DeepSeek API — чат-наставник, который ведёт ученика к ответу через вопросы, а не через объяснения.
Основа архитектуры — системный промт с тремя педагогическими техниками. Первая — сократический диалог: три фазы (инициация, ирония, майевтика), при которых модель сначала задаёт открытый вопрос, затем через уточнения обнажает противоречия в ответе ученика, и только потом помогает сформулировать правильный вывод — но руками самого ученика. Вторая техника — curiosity loop: модель намеренно недоговаривает, задаёт вопросы вида «что будет, если…» и просит сделать предположение до того, как даст объяснение. Это поведенческий механизм, при котором информационный разрыв создаёт дискомфорт, а его закрытие — выброс дофамина, запускающий следующий виток интереса. Третья — метод Фейнмана: примерно раз в три-четыре реплики модель просит пересказать тему простыми словами, «как для младшеклассника». Если ученик использует термины без понимания, это сразу становится видно.
| Параметр | Значение | Зачем |
|---|---|---|
| model | deepseek-chat | Стандартная чат-модель DeepSeek через API |
| temperature | 0 | Минимум случайности — диалог идёт по заданным правилам |
| n | 1 | Один вариант ответа |
| max_tokens | 8192 | Потолок длины ответа |
| stream | true / false | Стриминг в UI или обычный режим |
Отдельный элемент — misconceptions, список типичных заблуждений по теме. Он загружается в системную инструкцию, но не показывается ученику. Если ответ попадает в один из паттернов ошибки, модель не говорит «неправильно» — она задаёт уточняющий вопрос, который приводит к противоречию. Например, на утверждение «демократия в Афинах работала так же, как сейчас» следует: «А кто именно голосовал в Афинах — все взрослые или только мужчины с определённым статусом?»
Системный промт содержит три техники: сократический метод, curiosity loop и метод Фейнмана — модель не даёт готовый ответ, а задаёт вопросы.
С точки зрения параметров API выбор temperature=0 оказался принципиальным. При значении 0.5 каждый пятый диалог «срывался» — модель начинала объяснять напрямую, нарушая педагогическую логику. При 0.7–0.9 поведение становилось хаотичным: модель могла начать спорить или выдавать ответ до того, как ученик успевал подумать. Нулевая температура даёт стабильность ценой некоторой сухости — компромисс, который автор счёл приемлемым.
Управление контекстом решено прагматично: в каждый запрос передаётся полная системная инструкция плюс последние 24 сообщения диалога. Более ранние сообщения отбрасываются, но учебные материалы остаются в системной инструкции — тема не теряется. Вызовы инструментов (запуск теста, получение результата) происходят внутри одного запроса и не попадают в историю, видимую ученику. Приветственное сообщение наставника генерируется без обращения к модели — собирается из первого блока теории и вводной фразы.
Подход не претендует на универсальность: если ученик не заинтересован в теме, никакая механика вовлечения не поможет. Но для тех, кто проявляет интерес, комбинация сократического диалога, curiosity loop и ловушек на типичные ошибки создаёт среду, в которой знание формируется через собственные рассуждения, а не через пассивное чтение объяснений.


