ГАЙД 2026

DeepTutor локально: разворачиваем ИИ-репетитора с памятью и своими материалами

Открытая платформа персонального обучения: агент ведёт занятия по вашим материалам, помнит прогресс и цитирует источники. Разворачиваем на своём сервере за четыре шага.

ИИ-репетиторыSelf-hostOpen Source
Уровень СреднийВремя настройки 25–40 минутОбновлено 06.11.2026

DeepTutor — открытая платформа персонального обучения от команды HKUDS: агент-репетитор, который работает не по одному промпту, а по учебному workspace — с книгами, траекториями освоения, практикой, памятью о прогрессе и цитированием ваших же материалов. Репозиторий набрал 55 635 звёзд и 6 818 форков, последний релиз — v1.7.1 от 31.10.2026, лицензия Apache-2.0. Ниже — как поднять его на своём сервере и на что смотреть в первые полчаса.

55 635
Звёзд на GitHub
снято 06.11.2026
3 512
Коммитов за 52 недели
stats/participation
v1.7.1
Последний релиз
31.10.2026
3782
Порт веб-приложения
единственный обязательный
Зачем self-host, если есть чат-боты
Ключевая разница — в привязке к вашим данным и в памяти. Облачный чат начинает каждый диалог с нуля; DeepTutor хранит workspace, базы знаний, журнал обучения и трёхуровневую память локально в файлах. Для преподавателя, методиста или команды, которая учится на внутренних документах, это снимает вопрос «а куда уходят материалы».

01Что именно вы разворачиваете

DeepTutor — не модель и не обёртка над одним API. Это рантайм агента плюс веб-приложение: Next.js-фронтенд, бэкенд на Python, набор инструментов (поиск в вебе, поиск статей, Zotero, исполнение кода, RAG по своим базам, генерация изображений и видео) и файловая память. Модель вы подключаете сами — любой OpenAI-совместимый провайдер, включая локальные vLLM, LM Studio и llama.cpp, а также облачные DashScope и NVIDIA NIM.

Рабочее пространство делится на пять областей. Home — чат, доска задач, календарь и учебный блокнот. Learning — книги, траектории освоения (Mastery Path), иммерсивное чтение и практика. Resources — история чатов, избранное, журнал обучения, банк вопросов и центр знаний. Partners — постоянные агенты-компаньоны с собственной памятью и каналами в мессенджерах. Personalization — персоны, навыки, MCP-сервисы, CLI-приложения и настройки памяти.

Практическая ценность в том, что все режимы делят один контекст сессии: вы можете начать с чтения PDF, попросить объяснить фрагмент, сгенерировать по нему вопросы и вернуться к тем же материалам через неделю — состояние учебной активности сохраняется. Это ближе к LMS с агентом внутри, чем к чат-интерфейсу.

Веб-интерфейс (Next.js)Home, Learning, Resources, Partners, Personalization — пять областей одного workspaceчто видит пользовательРантайм агента и инструментыЧат, Quiz, Research, Visualize, Solve, Mastery Path, Reading, Book, Practiceчто решает задачиПамять L1–L3Файлы: трассы событий, курируемые факты по поверхностям, кросс-синтезчто помнитБазы знанийLlamaIndex, PageIndex, GraphRAG, LightRAG — версионируемые библиотеки с цитатамина чём учитсяПровайдеры моделейOpenAI-совместимые API, DashScope, NVIDIA NIM, локальные vLLM / LM Studio / llama.cppкто генерирует

Схема важна для диагностики: когда ответ «не знает» материал, проблема почти всегда в слое баз знаний, а когда «не помнит прошлый разговор» — в слое памяти. Настройки этих слоёв независимы, и это экономит время при разборе инцидентов.

02Требования и четыре способа установки

Терминальные варианты используют один общий runtime home: приватные настройки лежат в data/user/settings/ рядом с каталогом запуска либо там, куда указывают DEEPTUTOR_HOME или deeptutor start --home. Проектный .env намеренно игнорируется — конфигурация живёт в JSON-файлах, и это стоит запомнить, чтобы не искать «почему не подхватился ключ».

СпособЧто требуетсяЧто получаетеКогда выбирать
DockerТолько DockerПолное веб-приложениеБыстрый пробный запуск
PyPI (deeptutor[full])Python 3.11–3.14, Node.js 20.9+Веб-приложение и CLIПостоянная работа на сервере
Из исходниковPython 3.11–3.14, Node.js 22 LTSDev-сборка и правки кодаРазработка и отладка
CLI (core)Python 3.11–3.14Чат, вопросы, SDK без фронтендаАгентный режим и скрипты
Варианты установки по разделу Get Started README DeepTutor, снято 06.11.2026
1Шаг 1. Запустить контейнерОдна команда docker run, порт 3782, том deeptutor-data для настроек и данных2Шаг 2. Открыть веб-интерфейсhttp://127.0.0.1:3782 — имя хоста и порт печатает сам контейнер3Шаг 3. Подключить провайдераНастройки → Провайдеры → адрес и ключ, затем выбрать языковую модель4Шаг 4. Создать workspace и базу знанийЗагрузить материалы, проиндексировать, проверить цитаты в ответеМинимальный путь до первого осмысленного ответа — около 20 минут без учёта индексации
Docker: полное приложение без Python и Node.js
1
Запуск контейнера
Том сохраняет настройки и локальные данные между перезапусками; наружу нужен только порт 3782.
terminalcopy
docker run --rm --name deeptutor
  -p 127.0.0.1:3782:3782
  -v deeptutor-data:/app/data
  ghcr.io/hkuds/deeptutor:latest
2
Проверка
Откройте http://127.0.0.1:3782. Если порт занят — меняйте только левую часть проброса.
terminalcopy
curl -I http://127.0.0.1:3782
PyPI: постоянная установка на сервере
1
Каталог и установка
Пакет deeptutor[full] ставит и веб-приложение, и CLI; голый deeptutor — только ядро чата и SDK.
terminalcopy
mkdir -p deeptutor && cd deeptutor
python -m pip install -U "deeptutor[full]"
2
Инициализация
Мастер спросит порты, провайдера модели и, по желанию, эмбеддинги и поиск.
terminalcopy
deeptutor init
3
Запуск
Поднимаются бэкенд и фронтенд; Ctrl+C останавливает оба процесса.
terminalcopy
deeptutor start
Обновление с 1.6.15 и раньше
В README отдельно предупреждают: перед установкой новой линейки остановите DeepTutor, сделайте бэкап runtime home и удалите устаревший пакет deeptutor-cli. После установки сохраните тот же DEEPTUTOR_HOME и прогоните python -m pip check и deeptutor module list — иначе часть модулей останется от старой версии.

03Провайдер моделей: где взять и как проверить

После запуска приложение открывается без модели: чат не работает, пока не настроен провайдер. Логика такая: провайдер хранит адрес и ключ вендора, а модели ссылаются на провайдера и задают имя модели и её возможности. Отдельная страница Task models закрепляет маленькую быструю модель для служебных задач — автоназваний диалогов, стартовых подсказок, починки анимаций; если оставить поле пустым, возьмётся активная модель по умолчанию.

Поддерживаются OpenAI-совместимые API — это значит, что подойдёт и облачный вендор, и локальный сервер. Из коробки в релизах упоминаются DashScope, NVIDIA NIM, Atlas Cloud, Eden AI, LM Studio и llama.cpp; для локального инференса достаточно поднять vLLM или LM Studio и указать его адрес как OpenAI-совместимый эндпоинт. Отдельный экспериментальный путь — вход через OpenAI Codex OAuth: профиль использует вашу подписку ChatGPT, ключ не нужен, но токен привязан к одному человеку и не шарится между пользователями.

Проверять подключение лучше сразу, до загрузки материалов: в интерфейсе есть пробный прогон модели перед сохранением, а раздел Runtime status показывает матрицу готовности — какие возможности заблокированы, где предупреждения. Это быстрее, чем искать причину пустых ответов в логах.

Локальная модель без облака
Связка «vLLM на своём GPU + DeepTutor в Docker» работает без внешних API: провайдер указывает на http://host.docker.internal:8000/v1 (или на IP хоста), ключ можно оставить пустым. Минус — качество рассуждений локальной модели ниже облачной, а часть инструментов (веб-поиск, генерация изображений) всё равно потребует внешних ключей.

04Свои материалы и цитаты

Центр знаний строит версионируемые библиотеки на одном из четырёх движков: LlamaIndex, PageIndex, GraphRAG или LightRAG. Версия библиотеки фиксирует, чем именно она построена, — это защита от классической проблемы RAG, когда после смены модели эмбеддингов старый индекс начинает выдавать мусор, а причина не видна. Здесь индекс можно перестроить и сравнить результат.

Ответы по материалам приходят со ссылками на источник: у цитат есть привязка к фрагменту, а в режиме иммерсивного чтения разговор идёт рядом с документом, страницей или видео. Для учебного сценария это принципиально: студент должен видеть, откуда взялось утверждение, а преподаватель — проверить, что агент не выдумал параграф.

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

05Память L1–L3 и прогресс обучения

Память в DeepTutor намеренно файловая, а не скрытое векторное хранилище — её можно прочитать, отредактировать и проверить. Уровень L1 — зеркало рабочего пространства и журнал событий в формате JSONL (append-only). L2 — курируемые факты по каждой поверхности с ссылками на сущности L1. L3 — кросс-синтез, который фиксирует, какие поверхности L2 в него вошли.

В интерфейсе это показано графом памяти: синтез L3 в центре, факты L2 в среднем кольце, трассы L1 снаружи. Память отслеживается по чату, блокноту, квизам, базам знаний, книгам и агентам-компаньонам. Бюджеты консолидатора (обновление, аудит, дедупликация) настраиваются отдельно — если модель начинает «придумывать» прошлые договорённости, начинать разбор надо именно оттуда.

Практика обучения живёт в отдельных активностях: Mastery Path разбивает цель на темы и копит доказательства освоения, Practice собирает вопросы и назначает следующий повтор, Book превращает материалы в интерактивную книгу с блоками и квизами. Карточки из блокнота экспортируются в Anki, календарь — в формат .ics для Apple Calendar, Google Calendar, Outlook и Thunderbird. Это тот слой, из-за которого DeepTutor интересен не как чат, а как учебная система.

06CLI и агентный режим

Один бинарник deeptutor даёт два входа: интерактивный REPL для человека и структурированный JSON для другого агента. Это редкая и полезная особенность — DeepTutor спроектирован так, чтобы им управлял coding-агент: в репозитории лежит корневой SKILL.md с описанием handover, а вывод в режиме --format json идёт потоком NDJSON, по событию на строку, с session_id в каждом.

terminalbash
deeptutor chat

deeptutor chat --capability deep_solve --kb my-kb

deeptutor run chat "Explain the Fourier transform" \
  --kb textbook --format json

deeptutor run deep_research "Survey 2026 papers on RAG" \
  --config mode=report --config depth=standard --format json

Флаг --kb подключает базу знаний к автоматическому RAG и к инструменту поиска «за пределами материала»; --tool включает отдельные инструменты; --workspace выбирает зарегистрированное рабочее пространство. Прогоны headless-safe: если модель захочет уточнить вопрос, а терминала нет, пауза разрешится пустым ответом, а не зависнет.

Для администраторов пригодятся служебные команды: deeptutor memory show и memory clear для разбора памяти, deeptutor book health — чтобы увидеть, что источники книги изменились, и deeptutor module list — чтобы понять, какие модули реально установлены после обновления.

07Типичные ошибки и что делать

СимптомПричинаЧто делать
Порт 3782 занятДругой контейнер или сервисСменить левую часть проброса: -p 127.0.0.1:3783:3782
Чат отвечает пустоПровайдер не настроен или модель не выбранаНастройки → Провайдеры, затем Language models; прогнать пробный вызов
Не подхватился .envПроектный .env игнорируетсяПисать конфигурацию в data/user/settings/*.json
Ответы без цитатБаза знаний не подключена к диалогуВыбрать KB в чате или передать --kb в CLI
Индекс выдаёт мусорСменилась модель эмбеддинговПерестроить библиотеку: версия индекса фиксирует движок
Модули пропали после обновленияОстался старый deeptutor-clipip check и deeptutor module list, затем переустановка модулей
Собрано по разделам Get Started, Settings и Troubleshooting README DeepTutor, снято 06.11.2026

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

08Насколько живой проект

Для self-host-платформы активность важнее звёзд: заброшенный проект придётся поддерживать самому. По данным GitHub API, за последние 52 недели в репозиторий ушло 3 512 коммитов, а последний пуш был 06.11.2026 — в день подготовки этого гайда. Релизы идут регулярно: v1.7.0 вышел 28.10.2026, v1.7.1 — 31.10.2026.

Коммиты по неделям: последний кварталЧисло коммитов в неделю, последние 13 недель; stats/participation GitHub, снято 06.11.2026
010020030040014.0828.0811.0925.0909.1023.1006.113389149262158100271186280112125327213
Пики соответствуют релизным циклам; недели начинаются с воскресенья.
Звёзды проектов HKUDS на 06.11.2026Для масштаба: DeepTutor — второй по популярности проект команды
0 звёзд30 000 звёзд60 000 звёздCLI-Anything58 333 звёздDeepTutor55 635 звёздnanobot49 870 звёздLightRAG40 569 звёздRAG-Anything24 445 звёзд
Данные GitHub API; снято 06.11.2026. Звёзды показывают интерес, но не качество кода.

Что это значит на практике: проект развивается быстрыми итерациями, и часть интерфейса меняется между минорными версиями (в 1.7.0 переделали навигацию и внешний вид). Перед промышленным развёртыванием фиксируйте версию образа или пакета, а не тяните latest — иначе обновление может принести переименованные маршруты и новые обязательные шаги настройки.

Стоимость владения
Сам DeepTutor бесплатен (Apache-2.0). Платить придётся за три вещи: инференс модели (тарифы провайдера — уточняйте на официальном сайте), эмбеддинги для баз знаний и, при облачном веб-поиске, за его API. Локальный инференс убирает первую статью расходов, но требует GPU.
Вердикт Qantcore
8,6/ 10
DeepTutor — редкий случай, когда открытый проект закрывает не «ещё один чат», а полноценный учебный процесс: материалы, траектория, практика, память и цитаты. Развёртывание в Docker занимает минуты, PyPI-вариант — четверть часа с мастером настройки. Главное ограничение — качество вашей модели и дисциплина с базами знаний: платформа даёт механику, но не гарантирует pedagogical quality.

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

DeepTutor бесплатный?
Да, код под Apache-2.0 и его можно развернуть без платежей вендору. Расходы начинаются на стороне моделей: инференс LLM, эмбеддинги для баз знаний, платный веб-поиск. Локальная модель через vLLM или LM Studio убирает плату за инференс, но требует собственного GPU.
Можно ли поставить DeepTutor без Docker?
Да. Есть установка из PyPI (Python 3.11–3.14 и Node.js 20.9+): pip install -U "deeptutor[full]", затем deeptutor init и deeptutor start. Для CLI-режима достаточно голого пакета deeptutor — без Node.js и фронтенда.
Какие модели поддерживаются?
Любые OpenAI-совместимые API, а также отдельные адаптеры вроде DashScope и NVIDIA NIM. Локально проверены связки с vLLM, LM Studio и llama.cpp. Модель выбирается в разделе Language models и привязывается к сохранённому провайдеру.
Где хранятся данные и память?
Локально. Настройки — в data/user/settings/*.json рядом с каталогом запуска или в DEEPTUTOR_HOME. Память — файлы: журнал событий L1 в JSONL, курируемые факты L2 и кросс-синтез L3 в markdown. При Docker-запуске всё это лежит в томе, который вы примонтировали.
Подходит ли DeepTutor для школы или вуза?
Для небольшой группы — да: есть аккаунты ученика и наставника, изолированные рабочие пространства и админские гранты. Но разграничение доступа нужно настроить до загрузки материалов, а юридические требования к персональным данным учащихся проверяйте отдельно — платформа тут ничего не регулирует.

Источники и официальные ссылки

Собрать стек вокруг агента
Память, базы знаний и локальный инференс — три отдельных слоя; посмотрите, как они собираются вместе.