Идея возникла из бытовой ситуации: проверяя домашнее задание, автор привык не смотреть в тетрадь, а спрашивать «почему ты так сделал?». Чтобы перенести этот подход на автоматизированный инструмент, он собрал приложение поверх DeepSeek API — чат-наставник, который ведёт ученика к ответу через вопросы, а не через объяснения.

Основа архитектуры — системный промт с тремя педагогическими техниками. Первая — сократический диалог: три фазы (инициация, ирония, майевтика), при которых модель сначала задаёт открытый вопрос, затем через уточнения обнажает противоречия в ответе ученика, и только потом помогает сформулировать правильный вывод — но руками самого ученика. Вторая техника — curiosity loop: модель намеренно недоговаривает, задаёт вопросы вида «что будет, если…» и просит сделать предположение до того, как даст объяснение. Это поведенческий механизм, при котором информационный разрыв создаёт дискомфорт, а его закрытие — выброс дофамина, запускающий следующий виток интереса. Третья — метод Фейнмана: примерно раз в три-четыре реплики модель просит пересказать тему простыми словами, «как для младшеклассника». Если ученик использует термины без понимания, это сразу становится видно.

ПараметрЗначениеЗачем
modeldeepseek-chatСтандартная чат-модель DeepSeek через API
temperature0Минимум случайности — диалог идёт по заданным правилам
n1Один вариант ответа
max_tokens8192Потолок длины ответа
streamtrue / falseСтриминг в UI или обычный режим

Отдельный элемент — misconceptions, список типичных заблуждений по теме. Он загружается в системную инструкцию, но не показывается ученику. Если ответ попадает в один из паттернов ошибки, модель не говорит «неправильно» — она задаёт уточняющий вопрос, который приводит к противоречию. Например, на утверждение «демократия в Афинах работала так же, как сейчас» следует: «А кто именно голосовал в Афинах — все взрослые или только мужчины с определённым статусом?»

Системный промт содержит три техники: сократический метод, curiosity loop и метод Фейнмана — модель не даёт готовый ответ, а задаёт вопросы.

С точки зрения параметров API выбор temperature=0 оказался принципиальным. При значении 0.5 каждый пятый диалог «срывался» — модель начинала объяснять напрямую, нарушая педагогическую логику. При 0.7–0.9 поведение становилось хаотичным: модель могла начать спорить или выдавать ответ до того, как ученик успевал подумать. Нулевая температура даёт стабильность ценой некоторой сухости — компромисс, который автор счёл приемлемым.

Управление контекстом решено прагматично: в каждый запрос передаётся полная системная инструкция плюс последние 24 сообщения диалога. Более ранние сообщения отбрасываются, но учебные материалы остаются в системной инструкции — тема не теряется. Вызовы инструментов (запуск теста, получение результата) происходят внутри одного запроса и не попадают в историю, видимую ученику. Приветственное сообщение наставника генерируется без обращения к модели — собирается из первого блока теории и вводной фразы.

Подход не претендует на универсальность: если ученик не заинтересован в теме, никакая механика вовлечения не поможет. Но для тех, кто проявляет интерес, комбинация сократического диалога, curiosity loop и ловушек на типичные ошибки создаёт среду, в которой знание формируется через собственные рассуждения, а не через пассивное чтение объяснений.