ИИ-репетитор с интерактивной доской: видит решение и подсказывает

Локальный ИИ · обучение · интерактивная доска

Локальный ИИ-репетитор с интерактивной доской: видит решение ребёнка и рисует подсказки

Следующий шаг после обычного AI-чата — общая доска. Ребёнок пишет пример, строит схему, двигает объекты или объясняет решение голосом, а локальный ИИ видит текущий ход работы и добавляет на то же поле не готовый ответ, а стрелку, формулу, график, короткий вопрос или подсветку места, где появилась ошибка.

Актуально: сентябрь 2026Canvas + Vision + Voice + ToolsLocal-first
tldrawExcalidrawQwen VLMWhisper KaTeXMafsSymPySocratic Tutor

Зачем интерактивная доска, если уже есть чат

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

Обычный чатИИ видит только сообщение

Ребёнку приходится переписывать условие и объяснять, на каком шаге возникла проблема.

Общая доскаИИ видит состояние работы

Может реагировать на конкретный промежуточный шаг и показывать следующую подсказку рядом с ним.

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

Почему это уже отдельный тренд

Свежие open-source проекты строят AI tutoring именно вокруг связки voice + whiteboard + visual context, а не вокруг одного chat box.

AI Math TutorДоска + голос + structured actions

Ученик работает на tldraw-доске, агент читает screenshot и canvas context, а затем пишет формулы, подсказки и проверки обратно на доску.

GitHub →
MathVoiceSocratic engine + whiteboard + voice

Проект разделяет reasoning, визуализацию формул/графиков и голос.

GitHub →
TandemLive whiteboard vision

ИИ наблюдает за промежуточными шагами на доске и реагирует не только на финальный ответ.

GitHub →
tldraw AIОфициальный AI-agent pattern

SDK умеет давать агенту screenshot, структурированные shapes, selection и историю действий, а затем применять типизированные команды.

Документация →
Общий паттерн: хороший AI tutor не «смотрит видео экрана» непрерывно. Он получает структурированные данные доски плюс screenshot по событию или разумному интервалу.

Это не то же самое, что проверка тетради по фото

Фото тетрадиИнтерактивная доска
СостояниеОдин снимокПоследовательность шагов
КонтекстVision/OCRShapes + strokes + text + screenshot + history
РеакцияКомментарий после работыПодсказка во время решения
ИИ пишетОбычно в чатеПрямо рядом с решением
Ход решенияОграниченноДа, если сохраняются промежуточные шаги

Статическая фотография полезна для бумажной тетради. Доска нужна для интерактивного занятия, где система должна видеть, как ребёнок пришёл к ответу.

Архитектура локального ИИ-репетитора с доской

Ученикрисует · пишет · говорит · двигает объекты
↓
Canvas stateshapes · text · strokes · positions
Screenshotвизуальная компоновка
VoiceSTT transcript
↓
Локальная мультимодальная LLMпонимает вопрос, изображение, структуру доски и выбирает педагогический ход
↕
SymPy/Pythonматематика
RAGучебник/правило
Student DBнавыки и ошибки
Tutoring policyуровень подсказки
↓
Typed Canvas Actionsadd_text · add_formula · draw_arrow · add_hint · mark_step · plot_graph
↓
Подсказка появляется прямо на доскев отдельном AI-layer, не поверх работы ребёнка

ИИ должен получать и картинку, и структуру доски

Один screenshot полезен для пространственного расположения, но в нём теряется точность. Например, текст «x + 3 = 7» превращается в пиксели и должен снова распознаваться Vision-моделью. Если доска знает, что это text shape, лучше отправить модели точный текст напрямую.

ScreenshotПоказывает расположение, стрелки, рукописные элементы и общий смысл сцены.
Structured shapesТочный текст, тип объекта, координаты и размеры.
SelectionЧто ребёнок сейчас выделил или о чём спрашивает.
Recent actionsЧто он написал последним, что стёр и какой шаг сделал.

Официальный AI-agent pattern tldraw собирает screenshot, упрощённые представления shapes, selection, clusters вне viewport и историю сессии. Для учебного приложения это сильнее слепого анализа изображения.

Работа ученика и работа ИИ должны быть разными слоями

Student layerТо, что сделал ребёнок

Рукописные strokes, формулы, текст, схемы, графики и перемещённые объекты.

AI annotation layerТо, что добавил репетитор

Подсказки, стрелки, рамки, комментарии, следующий шаг и вспомогательный график.

Если ИИ изменяет исходную запись ребёнка, становится трудно понять, что именно ученик сделал сам. Для оценки прогресса это критично. Хороший паттерн — уметь очищать AI annotations, не стирая student work.

Что выбрать: tldraw или Excalidraw

КритерийtldrawExcalidraw
AI-agent интеграцияОфициальный Agent Starter Kit, typed actions, visual contextAgent bridge нужно строить самостоятельно
React embeddingДаДа, npm package
Structured canvas APIОчень сильнаяScene elements/API доступны, но меньше готовой AI-инфраструктуры
Offline/localВозможен; есть отдельный tldraw offline desktopLocal-first/open-source сценарий проще
Production licensingНужен trial/commercial/hobby licenseСвободнее для собственной self-hosted системы
Практический выборСамый быстрый путь к AI-agent canvasЕсли приоритет — максимально свободная open-source база
Лицензионный нюанс tldraw: SDK без production license предназначен для development. Для production нужен trial, commercial или hobby license. Для домашнего localhost-прототипа это не мешает, но при публикации продукта важно учесть.

Как сделать этот сценарий полностью локальным

Свежие демонстрационные проекты часто используют Gemini, Claude, Deepgram или облачный TTS. Но сам паттерн не зависит от облака: провайдеры заменяются локальными компонентами.

Cloud VLM→ локальная Qwen-class VLM

Vision + reasoning + tool calls.

Cloud STT→ whisper.cpp

Речь ученика локально.

Cloud TTS→ Silero/Piper

Озвучивание ответов.

Cloud solver→ Python/SymPy

Проверка вычислений.

Cloud memory→ SQLite/PostgreSQL

Student DB и history.

Cloud documents→ local RAG

Учебники и методички.

Canvas может работать в браузере на планшете или ноутбуке, а модели — на домашнем AI-PC в локальной сети.

Какая модель нужна для доски

Здесь важны мультимодальность и надёжный structured output. Модель должна получить screenshot, текст shapes и вернуть корректный JSON-action.

16 ГБ VRAMМультимодальная 9B-class модель — разумный старт для домашней машины.
24–32 ГБ VRAMМожно переходить к более сильной 20–30B-class VLM для сложной математики и tool calling.
Не максимальный contextCanvas state лучше фильтровать по viewport/selection, чем отправлять всю историю.
Structured actionsМодель должна возвращать проверяемую action schema, а не свободное описание.

Математика: доска особенно полезна для промежуточных шагов

Финальный ответ мало говорит о понимании. Доска позволяет увидеть место, где ребёнок впервые сделал неверное преобразование.

Шаг 12x + 6 = 14верно
Шаг 22x = 14 + 6ошибка
ИИЧто происходит со знаком при переносе +6 в другую часть?подсказка

Желательно хранить не только текущий canvas, но и последовательность значимых изменений. Тогда checker сравнивает новый математический объект с предыдущим.

Новый шагexpression
→
Parserматематическая структура
→
SymPyэквивалентность
→
Tutor Policyкакую подсказку дать
→
Canvas Actionстрелка/вопрос

Графики, координаты и геометрия

Не всё стоит рисовать свободными strokes. Формулу лучше рендерить как math object, а функцию — как настоящий интерактивный график.

ФормулыKaTeX

Быстро рендерит TeX в браузере. Полезно для дробей, степеней, систем и аккуратных формул.

KaTeX →
ГрафикиMafs

React-компоненты для интерактивных математических визуализаций и графиков.

Mafs →
ПроверкаSymPy

Вычисляет корни, преобразования и значения функции независимо от ответа LLM.

SymPy →

Например, ИИ может не «рисовать параболу на глаз», а вернуть действие plot_function с формулой y=x²-4, после чего frontend строит точный график через Mafs.

Рукописный ввод: что реально можно понимать

Freehand strokes не равны распознанному тексту. Если ребёнок пишет стилусом, у системы есть три уровня информации.

1. Векторные strokesКоординаты и последовательность линий. Полезны для истории и визуального анализа.
2. Screenshot regionVLM видит запись как изображение и пытается понять формулу или слово.
3. Confirmed semantic objectПосле уверенного распознавания выражение можно хранить уже как математический объект.
Не переводите каждый stroke в «ошибку ученика». Если модель не уверена, что написано 1 или 7, нужно попросить подтвердить фрагмент, а не оценивать решение на основе догадки OCR.

Голос + доска: естественнее обычного чата

Ученик

Я не понимаю, что делать дальше вот здесь.

Система

Selection: второй шаг уравнения. Canvas содержит перенос +6 без смены знака.

ИИ

Посмотри на выделенную шестёрку. Если перенести её через знак равенства, какой знак должен стать у числа?

Ключевой контекст — selection. Если ребёнок выделил объект или обвёл область, не нужно анализировать всю доску одинаково: выделенная область становится главным visual context.

Socratic mode: ИИ не должен дорисовывать всё решение

Самая опасная кнопка в AI-whiteboard — «решить». Она превращает учебную среду в красивое решебник-приложение.

0Наблюдать

ИИ ничего не добавляет.

1Выделить место

Рамка или стрелка без текста ответа.

2Задать вопрос

«Что должно измениться здесь?»

3Напомнить правило

Без применения к текущим числам.

4Показать первый шаг

Только если предыдущие уровни не помогли.

Свежий Socratic Tutor строится вокруг идеи «задавать вопросы вместо выдачи готовых домашних работ» и работает локально через Ollama. Политика помощи должна быть отдельным компонентом, а не случайной формулировкой prompt.

ИИ должен возвращать typed actions, а не произвольный рисунок

Вместо ответа «нарисуй стрелку от второго шага к третьему» модель должна вернуть структурированный объект, который frontend валидирует.

Пример action schema
{
  "action": "add_hint",
  "target_shape_id": "shape:step-2",
  "anchor": "right",
  "severity": "hint",
  "text": "Что произойдёт со знаком +6 при переносе?",
  "student_work_must_remain_unchanged": true
}

Другие безопасные действия: draw_arrow, add_formula, highlight_region, plot_function, add_question_card, mark_correct, mark_check_required.

Frontend принимает решение окончательно. Если модель попросила удалить student shape или передала неизвестный action, валидатор просто отклоняет команду.

Как проверять промежуточный шаг

МатематикаSymPy/Python

Эквивалентность выражений, решение уравнения, численный результат.

РусскийLanguageTool + rule map

Орфография/пунктуация и связь с изучаемой орфограммой.

ГрафикFunction validator

Формула, ключевые точки, область определения.

СхемаRule validator + VLM

Структурные условия задачи и визуальная проверка.

ИИ может объяснять результат checker, но не должен придумывать сам факт правильности там, где его можно вычислить программно.

Доска полезна не только для математики

Русский языкПодчеркнуть орфограмму, выделить окончание, построить схему предложения.
ФизикаРисовать векторы, цепи, графики, схемы сил и подписывать величины.
ХимияСтруктуры, уравнения реакций, схемы переходов.
ГеографияРабота с картой, стрелками, климатограммами и подписями.
БиологияПодписывать части клетки, органы, процессы и схемы.
ИнформатикаБлок-схемы алгоритмов и трассировка.

Для каждого предмета лучше ограничить набор AI-actions. Например, в геометрии разрешить линии, точки, подписи и окружности; в русском — underline, highlight и text cards.

Планшет со стилусом или обычный ПК

Лучший UX для младшихПланшет + стилус

Писать рукой естественнее, чем мышью. AI-server при этом может стоять в другой комнате.

Ноутбук/ПКМышь + клавиатура

Хорошо для алгебры, текста, схем и старших классов. Рукописная математика менее удобна.

ГибридПланшет как клиент

Canvas работает в браузере, вычисления и модели — на локальном сервере по Wi-Fi/LAN.

Для домашней системы это удобно: дорогая GPU нужна одна, а ребёнок может заниматься с лёгкого планшета или старого ноутбука.

Нужно ли ИИ анализировать каждый stroke в реальном времени

Нет. Это создаёт лишнюю нагрузку и мешает ребёнку писать. Лучше использовать событийную модель.

Pen-up + паузаНапример, ребёнок перестал писать на 1–2 секунды.
Нажата «Проверить шаг»Самый предсказуемый MVP.
Голосовой вопрос«Что здесь не так?» — анализировать selection/viewport.
Значимое изменениеДобавлена формула, текстовый объект или завершён график.

На первом этапе я бы сделал кнопку «Проверь мой шаг», а уже потом — автоматическое ненавязчивое наблюдение.

Что сохранять в Student DB

skill_idКакой навык тренировали.
step_typeФормула, график, орфограмма, схема.
misconceptionКакой тип ошибки обнаружен.
hint_levelСколько помощи понадобилось.
self_correctedИсправил ли ребёнок после подсказки сам.
assessment_laterСмог ли повторить навык без доски-подсказчика позже.

Полный bitmap доски не обязательно хранить постоянно. Для прогресса полезнее структурированное событие «ошибка переноса знака → hint 2 → исправил самостоятельно».

Приватность и локальная доска

Canvas остаётся домаСостояние и screenshots идут только на локальный AI-server.
Не хранить всё навсегдаScreenshot можно удалить после анализа.
Отдельный детский аккаунтБез unrestricted tools и системных функций.
AI layer прозраченВсегда видно, что добавил ИИ, а что написал ребёнок.
Cloud-demo не становится local-first автоматически. Архитектуру проекта можно брать как пример, но cloud LLM/STT/TTS нужно заменить локальными backend.

Практический стек для домашней версии

Canvastldraw или Excalidraw

Интерактивная доска.

FrontendReact / Next.js

Toolbar, layers, lesson UI.

Main VLMлокальная Qwen-class VLM

Canvas screenshot + reasoning.

InferenceOllama / llama.cpp / vLLM

По размеру модели и железу.

Voicewhisper.cpp + Silero/Piper

STT и TTS.

Math renderKaTeX

Формулы.

GraphsMafs

Интерактивные функции.

CheckerPython + SymPy

Математическая проверка.

KnowledgeRAG

Учебники и правила.

DataSQLite/PostgreSQL

Student DB и board events.

Как собрать MVP без лишней сложности

  1. Поднять canvas.React + tldraw или Excalidraw, локальное сохранение одной доски.
  2. Добавить кнопку «Проверить шаг».Пока без постоянного background vision.
  3. Передавать selection + screenshot.Не весь canvas, если вопрос относится к одному фрагменту.
  4. Подключить одну локальную VLM.Она должна вернуть JSON, а не свободное описание рисунка.
  5. Разрешить только 4–5 действий.add_hint, draw_arrow, add_formula, highlight_region, mark_correct.
  6. Добавить math checker.Начать с уравнений/арифметики, где можно получить точный эталон.
  7. Разделить Student и AI layers.ИИ не редактирует исходную работу.
  8. Добавить голос.Только когда visual loop уже надёжен.
  9. Добавить Student DB.Сохранять тип ошибки и hint level.
  10. После этого — автоподсказки.Событийная модель вместо анализа каждого stroke.

Типичные ошибки

Каждый stroke отправляется в VLMВысокая задержка, нагрузка и постоянное вмешательство.
ИИ видит только screenshotТеряется точный текст и структура shapes.
ИИ может стирать работу ученикаНельзя отделить самостоятельное решение от AI-generated.
Нет deterministic checkerМодель сама решает, правильна ли математика.
Свободный текст вместо actionsFrontend вынужден угадывать, что имела в виду LLM.
Готовое решение одним кликомWhiteboard превращается в красивое решебник-приложение.
Все screenshots сохраняютсяРастёт объём чувствительных данных без учебной необходимости.
Игнорируется лицензия canvas SDKPrototype внезапно нельзя корректно перенести в production.

Частые вопросы

Можно ли сделать такую доску полностью без Интернета?

Да. Canvas работает в браузере или локальном приложении, VLM/STT/TTS/RAG запускаются на домашнем сервере. Интернет нужен только для первоначальной загрузки моделей и обновлений, если не подготовить их заранее.

Обязательно ли использовать tldraw?

Нет. tldraw удобен благодаря готовой AI-agent архитектуре, но production SDK лицензируется. Excalidraw — хорошая альтернатива для собственной open-source/local-first реализации.

ИИ реально может видеть, что ребёнок написал стилусом?

Может анализировать strokes как изображение через VLM, но распознавание детского почерка не гарантированно. Спорные символы нужно подтверждать, особенно перед оценкой ответа.

Нужно ли постоянно снимать screenshot доски?

Нет. Лучше анализировать по событию: после паузы, нажатия «Проверить шаг», голосового вопроса или завершения значимого объекта.

Можно ли строить графики функций прямо на доске?

Да. Лучше вернуть structured action с формулой, после чего frontend строит точный интерактивный график через библиотеку вроде Mafs.

Как не дать ИИ решить всё за ребёнка?

Использовать отдельную tutoring policy с уровнями помощи. Сначала выделить проблемное место и задать вопрос, затем напомнить правило; готовый шаг показывать только после собственных попыток.

Подойдёт ли планшет?

Да, и для младших детей часто это лучший клиент. Тяжёлый AI-server может работать на отдельном ПК, а планшет открывает доску в браузере по локальной сети.

Нужно ли хранить всю историю доски?

Для отладки можно хранить session replay ограниченное время. Для долгосрочного прогресса полезнее структурированные события: навык, ошибка, подсказка, самостоятельное исправление и последующая проверка.

Источники и проекты

Следующий шаг

Карта знаний: как ИИ решает, что ребёнку учить дальше

После того как ИИ умеет наблюдать за решением, следующий уровень — превращать ошибки на доске в карту навыков и выбирать правильную следующую тему.