DeepTutor logo DeepTutor

# DeepTutor: Персонализированное Обучение на Базе Агентов

Docs — deeptutor.info

HKUDS%2FDeepTutor | Trendshift  HKUDS%2FDeepTutor | Trendshift  HKUDS%2FDeepTutor | Trendshift

English  简体中文  日本語  Español  Français  Arabic  Русский  Hindi  Português  Thai  Polski

[![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/downloads/) [![Next.js 16](https://img.shields.io/badge/Next.js-16-000000?style=flat-square&logo=next.js&logoColor=white)](https://nextjs.org/) [![License](https://img.shields.io/badge/License-Apache_2.0-blue?style=flat-square)](LICENSE) [![GitHub release](https://img.shields.io/github/v/release/HKUDS/DeepTutor?style=flat-square&color=brightgreen)](https://github.com/HKUDS/DeepTutor/releases) [![arXiv](https://img.shields.io/badge/arXiv-2604.26962-b31b1b?style=flat-square&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2604.26962) [![Discord](https://img.shields.io/badge/Discord-Сообщество-5865F2?style=flat-square&logo=discord&logoColor=white)](https://discord.gg/eRsjPgMU4t) [![Feishu](https://img.shields.io/badge/Feishu-Группа-00D4AA?style=flat-square&logo=feishu&logoColor=white)](./Communication.md) [![WeChat](https://img.shields.io/badge/WeChat-Группа-07C160?style=flat-square&logo=wechat&logoColor=white)](https://github.com/HKUDS/DeepTutor/issues/78) [Возможности](#-ключевые-возможности) · [Начать](#-начало-работы) · [Исследовать](#-обзор-deeptutor) · [CLI](#%EF%B8%8F-deeptutor-cli--интерфейс-для-агентов) · [Экосистема](#-экосистема--eduhub-и-сообщество-навыков) · [Сообщество](#-сообщество)
--- > 🤝 **Мы приветствуем любые вклады в проект!** Голосуйте за элементы дорожной карты или предлагайте новые на странице [`Roadmap`](https://github.com/HKUDS/DeepTutor/issues/498), а также изучите наше [Руководство по участию](CONTRIBUTING.md) с описанием стратегии ветвления, стандартов кодирования и инструкций по началу работы. ### 📰 Новости - **2026-05-22** 🌐 Официальный сайт документации запущен на [**deeptutor.info**](https://deeptutor.info/) — руководства, справочники и туры по возможностям в одном месте. - **2026-04-19** 🎉 20 тысяч звёзд за 111 дней! Благодарим за поддержку на пути к по-настоящему персонализированному интеллектуальному обучению. - **2026-04-10** 📄 Наша статья опубликована на arXiv — прочитайте [препринт](https://arxiv.org/abs/2604.26962) о дизайне и идеях, лежащих в основе DeepTutor. - **2026-02-06** 🚀 10 тысяч звёзд всего за 39 дней! Огромная благодарность нашему удивительному сообществу. - **2026-01-01** 🎊 С Новым Годом! Присоединяйтесь к нашему [Discord](https://discord.gg/eRsjPgMU4t), [WeChat](https://github.com/HKUDS/DeepTutor/issues/78) или [Обсуждениям](https://github.com/HKUDS/DeepTutor/discussions) — давайте вместе формировать DeepTutor. - **2025-12-29** 🎓 DeepTutor официально выпущен! ## ✨ Ключевые возможности DeepTutor — это агентная учебная рабочая среда, объединяющая репетиторство, решение задач, генерацию викторин, исследования, визуализацию и практику освоения в одной расширяемой системе. - **Единая среда выполнения для всех режимов** — Chat, Quiz, Research, Visualize, Solve и Mastery Path работают на одном цикле агента, поэтому вы переключаете цель, а не движок, и контекст перемещается вместе с учащимся. - **Связанный контекст обучения** — базы знаний, книги, черновики Co-Writer, блокноты, банки вопросов, персоны и Memory доступны во всех рабочих процессах, а не живут в изолированных инструментах. - **Субагенты и Partners** — консультируйте живой Claude Code, Codex или Partner из любого хода (или импортируйте их прошлые разговоры) и запускайте постоянных IM-компаньонов на том же мозге. - **Многодвигательные знания** — версионированные RAG-библиотеки на основе LlamaIndex, PageIndex, GraphRAG, LightRAG или связанного хранилища Obsidian с подключаемым разбором документов. - **Расширяемые инструменты и навыки** — встроенные инструменты, MCP-серверы, модели генерации изображений / видео / голоса и устанавливаемые навыки сообщества из EduHub. - **Проверяемая память** — трассировки L1, сводки поверхностей L2 и синтез L3 делают персонализацию видимой и редактируемой, а Memory Graph прослеживает каждое утверждение до его источника. --- ## 🚀 Начало работы DeepTutor поставляется с четырьмя путями установки. Все они используют одну структуру рабочего пространства: настройки хранятся в `data/user/settings/` в директории запуска (или в `DEEPTUTOR_HOME` / `deeptutor start --home`, если задано явно). Для полного приложения рекомендуемый процесс: **выбрать директорию рабочего пространства → установить → `deeptutor init` → `deeptutor start`**.
Вариант 1 — Установка из PyPI · полное локальное веб-приложение + CLI, клонирование не требуется Полное локальное веб-приложение + CLI без необходимости клонирования. Требуется **Python 3.11+** и среда выполнения **Node.js 20+** в PATH (упакованный автономный сервер Next.js запускается командой `deeptutor start`). ```bash mkdir -p my-deeptutor && cd my-deeptutor pip install -U deeptutor deeptutor init # запрашивает порты + провайдер LLM + необязательное встраивание deeptutor start # запускает бэкенд + фронтенд; держите терминал открытым ``` `deeptutor init` запрашивает порт бэкенда (по умолчанию `8001`), порт фронтенда (по умолчанию `3782`), провайдер LLM / базовый URL / API-ключ / модель и необязательный провайдер встраивания для базы знаний / RAG. После `deeptutor start` откройте URL фронтенда, напечатанный в терминале — по умолчанию [http://127.0.0.1:3782](http://127.0.0.1:3782). Нажмите `Ctrl+C` в этом терминале, чтобы остановить бэкенд и фронтенд. Пропустить `deeptutor init` можно для быстрого пробного запуска; приложение загружается с портами по умолчанию и пустыми настройками модели, которые можно настроить позже в **Настройки → Модели**.
Вариант 2 — Установка из исходного кода · разработка на основе чекаута Для разработки на основе чекаута. Используйте **Python 3.11+** и **Node.js 22 LTS** для соответствия CI и Docker. ```bash git clone https://github.com/HKUDS/DeepTutor.git cd DeepTutor # Создание venv (macOS/Linux). Windows PowerShell: # py -3.11 -m venv .venv ; .\.venv\Scripts\Activate.ps1 python3 -m venv .venv && source .venv/bin/activate python -m pip install --upgrade pip # Установка зависимостей бэкенда + фронтенда python -m pip install -e . ( cd web && npm ci --legacy-peer-deps ) deeptutor init deeptutor start ``` Установки из исходного кода запускают Next.js в режиме разработки для локальной директории `web/`; всё остальное (структура конфигурации, порты, остановка с `Ctrl+C`) соответствует Варианту 1.
Среда Conda (вместо venv) ```bash conda create -n deeptutor python=3.11 conda activate deeptutor python -m pip install --upgrade pip ```
Необязательные дополнения при установке — dev / partners / matrix / math-animator ```bash pip install -e ".[dev]" # инструменты тестирования/линтинга pip install -e ".[partners]" # SDK каналов IM для Партнёров + MCP-клиент pip install -e ".[matrix]" # канал Matrix без E2EE/libolm pip install -e ".[matrix-e2e]" # Matrix E2EE; требует libolm pip install -e ".[math-animator]" # дополнение Manim; требует LaTeX/ffmpeg/системных библиотек ```
Настройка зависимостей фронтенда и устранение неполадок сервера разработки **Изменение зависимостей фронтенда:** запустите `npm install --legacy-peer-deps` для обновления `web/package-lock.json`, затем зафиксируйте оба файла `web/package.json` и `web/package-lock.json`. **Зависший сервер разработки:** если `deeptutor start` сообщает о существующем фронтенде, который не отвечает, остановите PID, который он печатает. Если процесс Next.js фактически не запущен, файлы блокировки устарели — удалите их и повторите попытку: ```bash rm -f web/.next/dev/lock web/.next/lock deeptutor start ```
Вариант 3 — Docker · один автономный контейнер Один контейнер для полного веб-приложения. Образы в GitHub Container Registry: - `ghcr.io/hkuds/deeptutor:latest` — стабильный выпуск - `ghcr.io/hkuds/deeptutor:pre` — предварительный выпуск, когда доступен > Смотрите [CONTAINERIZATION.md](./CONTAINERIZATION.md) для развёртываний на podman/rootless/read-only-rootfs и полного руководства по установке. ```bash docker run --rm --name deeptutor \ -p 127.0.0.1:3782:3782 \ -v deeptutor-data:/app/data \ ghcr.io/hkuds/deeptutor:latest ``` > **Публиковать нужно только порт `3782`.** Браузер обращается исключительно к источнику фронтенда; промежуточный слой Next.js (`web/proxy.ts`) перенаправляет `/api/*` и `/ws/*` на бэкенд FastAPI **внутри контейнера**. Публикация `8001` (`-p 127.0.0.1:8001:8001`) необязательна — полезна только при прямом обращении к API через curl или скрипты. Откройте [http://127.0.0.1:3782](http://127.0.0.1:3782). Контейнер создаёт `/app/data/user/settings/*.json` при первом запуске; настройте провайдеров моделей на странице веб-настроек. Конфигурация, API-ключи, логи, файлы рабочего пространства, память и базы знаний сохраняются в томе `deeptutor-data`. - **Другие порты хоста:** измените левую часть каждого маппинга `-p host:container` (например, `-p 127.0.0.1:8088:3782`). Если вы измените порты на стороне контейнера в `/app/data/user/settings/system.json`, перезапустите и обновите правую часть каждого маппинга. - **Фоновый режим:** добавьте `-d`, затем `docker logs -f deeptutor` для слежения, `docker stop deeptutor` для остановки, `docker rm deeptutor` перед повторным использованием имени. Том `deeptutor-data` сохраняет ваши настройки и рабочее пространство между перезапусками. **Удалённый Docker / обратный прокси:** браузер обращается только к источнику фронтенда (`:3782`); промежуточный слой Next.js внутри контейнера перенаправляет `/api/*` и `/ws/*` на бэкенд на стороне сервера. В типичном случае с одним контейнером вы вообще не настраиваете базовый URL API — просто направьте ваш обратный прокси / TLS-терминатор на `:3782`. Базовый URL API нужен только для **разделённого развёртывания** (бэкенд в отдельном контейнере/хосте): установите `next_public_api_base` в `data/user/settings/system.json` на внутрисетевой адрес, который фронтенд-сервер использует для достижения бэкенда (он читается на стороне сервера, никогда не отправляется браузеру). ```json { "next_public_api_base": "http://backend:8001" } ``` `next_public_api_base_external` (и его псевдоним `public_api_base`) принимаются как запасные варианты с более низким приоритетом. CORS использует **источники** фронтенда, а не URL API. При отключённой аутентификации DeepTutor разрешает обычные HTTP/HTTPS источники браузера по умолчанию. При включённой аутентификации добавьте точные источники фронтенда: ```json { "cors_origins": ["https://deeptutor.example.com"] } ```
Подключение к Ollama / LM Studio / llama.cpp / vLLM / Lemonade на хосте Внутри Docker `localhost` — это сам контейнер, а не хост-машина. Чтобы обратиться к модельному сервису, запущенному на хосте, используйте шлюз хоста (рекомендуется): ```bash docker run --rm --name deeptutor \ -p 127.0.0.1:3782:3782 -p 127.0.0.1:8001:8001 \ --add-host=host.docker.internal:host-gateway \ -v deeptutor-data:/app/data \ ghcr.io/hkuds/deeptutor:latest ``` Затем в **Настройки → Модели** укажите базовый URL провайдера как `host.docker.internal`: - Ollama LLM: `http://host.docker.internal:11434/v1` - Ollama embedding: `http://host.docker.internal:11434/api/embed` - LM Studio: `http://host.docker.internal:1234/v1` - llama.cpp: `http://host.docker.internal:8080/v1` - Lemonade: `http://host.docker.internal:13305/api/v1` Docker Desktop (macOS/Windows) обычно разрешает `host.docker.internal` без `--add-host`. На Linux этот флаг — переносимый способ создания этого имени хоста в современном Docker Engine. **Альтернатива для Linux — сетевой режим хоста:** добавьте `--network=host` и уберите флаги `-p`. Контейнер напрямую использует сеть хоста, поэтому откройте [http://127.0.0.1:3782](http://127.0.0.1:3782) (или `frontend_port` в `system.json`), а сервисы хоста доступны через обычные localhost-URL, например `http://127.0.0.1:11434/v1`. Обратите внимание, что хостовый сетевой режим открывает порты контейнера напрямую на хосте и может конфликтовать с существующими сервисами — чтобы оставить их на loopback, установите `BACKEND_HOST=127.0.0.1` и `FRONTEND_HOST=127.0.0.1` (см. [CONTAINERIZATION.md](./CONTAINERIZATION.md)).
Вариант 4 — Только CLI · без веб-интерфейса, из чекаута исходного кода Когда веб-интерфейс не нужен. Пакет только для CLI устанавливается из чекаута исходного кода, а не из PyPI. ```bash git clone https://github.com/HKUDS/DeepTutor.git cd DeepTutor # Создание venv (macOS/Linux). Windows PowerShell: # py -3.11 -m venv .venv-cli ; .\.venv-cli\Scripts\Activate.ps1 python3 -m venv .venv-cli && source .venv-cli/bin/activate python -m pip install --upgrade pip python -m pip install -e ./packaging/deeptutor-cli deeptutor init --cli deeptutor chat ``` `deeptutor init --cli` использует ту же структуру `data/user/settings/`, что и полное приложение, но пропускает запросы портов бэкенда/фронтенда и по умолчанию отключает встраивание (выберите `Yes`, если планируете использовать `deeptutor kb …` или инструменты RAG). Он всё равно записывает полную структуру среды выполнения (`system.json`, `auth.json`, `integrations.json`, `model_catalog.json`, `main.yaml`, `agents.yaml`) и запрашивает активный провайдер и модель LLM.
Основные команды ```bash deeptutor chat # интерактивный REPL deeptutor chat --capability deep_solve --tool rag --kb my-kb deeptutor run chat "Explain Fourier transform" deeptutor run deep_solve "Solve x^2 = 4" --tool rag --kb my-kb deeptutor kb create my-kb --doc textbook.pdf deeptutor memory show deeptutor config show ```
Локальная установка `deeptutor-cli` не включает веб-ресурсы или серверные зависимости. Сохраните чекаут исходного кода — редактируемая установка указывает на него. Чтобы позже добавить веб-приложение, установите пакет PyPI (Вариант 1) и запустите `deeptutor init` + `deeptutor start` из того же рабочего пространства.
Песочница выполнения кода (офисные навыки) · запуск сгенерированного моделью кода для docx / pdf / pptx / xlsx Встроенные офисные навыки — **docx / pdf / pptx / xlsx** — работают, заставляя модель написать короткий Python-скрипт (`python-docx`, `reportlab`, `openpyxl`, …), запустить его через инструменты `exec` / `code_execution` и вернуть URL для скачивания. Эти инструменты монтируются при наличии активного бэкенда песочницы, который активен **по умолчанию** в каждом варианте развёртывания: - **Локально (Вариант 1 / 2) и Docker (Вариант 3, один контейнер):** ограниченная подпроцессная песочница запускает код модели (локально на хосте или внутри контейнера под Docker — контейнер сам является изолирующей границей). - **docker-compose:** вместо этого направляется в защищённый сайдкар с минимальными привилегиями (**runner sidecar** `Dockerfile.runner`) через `DEEPTUTOR_SANDBOX_RUNNER_URL` — наиболее строгий вариант, используемый автоматически при наличии. Подпроцессная песочница управляется настройкой `sandbox_allow_subprocess` в `data/user/settings/system.json` (по умолчанию `true`). Запуск сгенерированного моделью кода на вашем хосте — это реальное доверительное решение; установите значение `false` (или экспортируйте `DEEPTUTOR_SANDBOX_ALLOW_SUBPROCESS=0`) для отключения выполнения на стороне хоста, ценой того, что офисные навыки больше не смогут создавать файлы.
Справочник конфигурации — файлы конфигурации в data/user/settings/ (JSON/YAML) Всё в `data/user/settings/` — это обычный JSON/YAML. Страница **Настройки** в браузере является рекомендуемым редактором. | Файл | Назначение | |:---|:---| | `model_catalog.json` | Профили провайдеров LLM, встраивания и поиска; API-ключи; активные модели | | `system.json` | Порты бэкенда/фронтенда, публичный базовый URL API, CORS, верификация SSL, директория вложений | | `auth.json` | Необязательное переключение аутентификации, имя пользователя, хэш пароля, настройки токенов/куки | | `integrations.json` | Необязательные настройки интеграции PocketBase и сайдкара | | `interface.json` | Язык интерфейса / тема / настройки боковой панели | | `main.yaml` | Значения по умолчанию для среды выполнения и внедрение пути | | `agents.yaml` | Настройки температуры и токенов для возможностей/инструментов | Корневой файл `.env` проекта **не** читается как файл конфигурации приложения. Для минимальной настройки модели откройте **Настройки → Модели**, добавьте профиль LLM (базовый URL / API-ключ / имя модели) и сохраните. Добавляйте профиль встраивания только если планируете использовать функции базы знаний / RAG.
## 📖 Обзор DeepTutor Начните с основных поверхностей, которые вы будете использовать ежедневно: Chat, Partners, My Agents, Co-Writer, Book, Knowledge Center, Learning Space, Memory и Settings. Затем тур охватывает многопользовательские развёртывания для общих изолированных рабочих пространств.
Главная страница DeepTutor — рабочее пространство чата со всеми поверхностями на боковой панели
🏗️ Архитектура системы
Архитектура системы DeepTutor
💬 Чат — Цикл Агента, Который Вы Используете на Практике Чат — это возможность по умолчанию и место, где начинается большинство работ. Один поток может нормально общаться, вызывать инструменты, опираться на выбранные базы знаний, читать вложения, генерировать изображения, обращаться к субагентам, записывать в блокнот и продолжать с тем же контекстом в последующих ходах.
Рабочее пространство чата DeepTutor
Цикл намеренно прост: модель думает раундами, вызывает инструменты при необходимости, наблюдает результаты и завершает сообщением без инструментов. `ask_user` особенный — вместо угадывания агент может приостановить ход, задать структурированный уточняющий вопрос и возобновить работу, когда вы ответите.
Цикл агента чата DeepTutor
Переключаемые пользователем инструменты: `brainstorm`, `web_search`, `paper_search`, `reason` и `geogebra_analysis` — плюс `imagegen` и `videogen` после настройки соответствующей генеративной модели. Контекстные инструменты, такие как `rag`, `read_source`, `read_memory`, `write_memory`, `read_skill`, `load_tools`, `exec`, `web_fetch`, `ask_user`, `list_notebook`, `write_note`, `github` и `consult_subagent`, монтируются автоматически, когда ход имеет подходящий контекст. Контекст бывает двух видов: **постоянный контекст сессии** (субагент, базы знаний, персонаж, модель, голос) находится на панели инструментов редактора и сохраняется между ходами; **одноразовые ссылки** (файлы, история чата, книги, блокноты, банк вопросов, импортированные агенты) берутся из меню `+` для одного хода. Чат также является точкой запуска более глубоких возможностей: **Quiz** для генерации вопросов, **Research** для цитируемых отчётов, **Visualize** для графиков / диаграмм / анимаций, и — в разделе *Дополнительные возможности* — **Solve** для обоснованных рассуждений и **Mastery Path** для учебных планов.
🤝 Partner — Постоянные Компаньоны на Том Же Мозге
Рабочее пространство партнёров DeepTutor
Партнёры — это постоянные компаньоны со своей душой, политикой модели, библиотекой, памятью и каналами. Они не являются отдельным движком бота: каждое входящее веб- или IM-сообщение становится обычным ходом `ChatOrchestrator` внутри рабочего пространства, ограниченного партнёром. Партнёр — это «чат с личностью и номером телефона».
Архитектура партнёров DeepTutor
Каждый партнёр имеет `SOUL.md`, выбор модели, каналы, политику инструментов и назначенную библиотеку. Базы знаний, навыки и блокноты копируются в `data/partners//workspace/`, поэтому те же инструменты RAG, навыков, блокнотов и памяти работают без специальных случаев. Партнёр читает память своего владельца, но пишет только в собственную.
Конфигурация IM-канала для каждого партнёра
Слой каналов управляется схемой и может подключаться к IM-платформам, таким как Feishu, Telegram, Slack, Discord, DingTalk, QQ/NapCat, WeCom, WhatsApp, Zulip, Mattermost, Matrix, Mochat и Microsoft Teams, в зависимости от установленных дополнений и настроенных учётных данных. Партнёр также может быть подключён как субагент и использован из обычного хода чата — см. **Мои Агенты** ниже.
🧑‍🚀 Мои Агенты — Консультация и Импорт Других Агентов
Рабочее пространство «Мои Агенты» DeepTutor
Мои Агенты превращают других агентов в контекст для DeepTutor и делают две разные вещи. **Подключите живого агента** — Claude Code или Codex CLI на вашей машине, или одного из ваших Партнёров — и обращайтесь к нему изнутри хода чата: DeepTutor фактически *запускает* другого агента и транслирует его работу в панель Activity через инструмент `consult_subagent`. Выберите его чипом агента (или введите `@`) и задайте, сколько раундов может занять обращение.
Обращение к субагенту Claude Code в реальном времени
**Импортируйте прошлые разговоры** — загрузите существующую историю Claude Code и Codex как именованных, доступных для поиска, возобновляемых агентов. Выберите, за какие дни импортировать; обновление повторно синхронизирует их. Ссылайтесь на импортированный разговор из любого хода чата через `+` → Мои Агенты, и DeepTutor читает его как транскрипт третьей стороны — это *их* разговор, а не собственный голос DeepTutor.
✍️ Co-Writer — Редактирование Markdown с Учётом Выделения
Рабочее пространство Co-Writer DeepTutor
Co-Writer — это разделённое рабочее пространство Markdown для отчётов, руководств, заметок и долгосрочных учебных артефактов. Документы автосохраняются и отображают живой предварительный просмотр (математика KaTeX, ограждения диаграмм), и могут быть сохранены обратно в блокноты, когда черновик становится повторно используемым контекстом.
Редактор Co-Writer с живым предварительным просмотром
Его определяющая идея — **хирургическое редактирование**: выберите фрагмент и попросите DeepTutor переписать, расширить или сократить его. Агент редактирования может опираться на базу знаний или веб-данные, ведёт след вызовов инструментов и показывает каждое изменение как diff с принятием/отклонением — так ничто не применяется до вашего одобрения.
📖 Книга — Живые Книги из Ваших Материалов
Библиотека книг DeepTutor
Книга превращает выбранные источники в интерактивную **живую книгу** — не статический PDF, а среда чтения, построенная из типизированных блоков. Книга может начинаться с баз знаний, блокнотов, банков вопросов или истории чата; процесс создания предлагает план глав перед генерацией содержания, поэтому вы рассматриваете структуру вместо того, чтобы принимать слепой одноразовый вывод.

Блок викторины книги   Блок анимации Manim книги   Блок интерактивного виджета книги

Каждая глава компилируется в типизированные блоки — текст, выноски, викторины, флэш-карточки, временные шкалы, код, рисунки, интерактивный HTML, анимации, концептуальные графы, углублённые рассуждения и пользовательские заметки — и каждая страница имеет свой собственный чат. Блоки редактируемы: вставляйте, перемещайте, регенерируйте или меняйте тип блока без переписывания главы. Команды обслуживания `deeptutor book health` и `deeptutor book refresh-fingerprints` помогают обнаружить, когда исходные знания расходятся со скомпилированными страницами.
📚 Центр Знаний — Многодвигательные RAG-Библиотеки
Центр Знаний DeepTutor
Базы знаний — это коллекции документов для RAG, которые обосновывают ходы Chat, редакции Co-Writer, генерацию Book и разговоры с Партнёрами. Отличительной чертой является **выбор движков поиска**: **LlamaIndex** (по умолчанию, локальный вектор + BM25), **PageIndex** (размещённый, поиск с рассуждением с цитатами на уровне страницы), **GraphRAG** и **LightRAG** (поиск на основе графа знаний), **LightRAG Server** (поиск, делегированный внешнему экземпляру LightRAG, подключаемому по HTTP), или связанное хранилище **Obsidian**, которое репетитор читает и записывает на месте. Каждая KB привязана к одному движку.
Создание базы знаний
При создании KB вы либо **создаёте новую** (загружаете документы и строите свежий индекс), либо **связываете существующую** (повторно используете индекс, построенный в другом месте, читаете на месте без переиндексирования). Переиндексирование записывает новую плоскую директорию `version-N` и сохраняет предыдущие, поэтому рабочий индекс никогда не уничтожается в процессе перестройки. Отдельный документ можно удалить даже из базы в состоянии **error** — убрав файл, который не удалось разобрать, без полного удаления и пересборки. Разбор документов — только текст, MinerU, Docling, markitdown или PyMuPDF4LLM — выбирается в **Настройки → База знаний**, с отключёнными по умолчанию загрузками локальных моделей. CLI отражает жизненный цикл командами `deeptutor kb list`, `info`, `create`, `add`, `search`, `set-default` и `delete`.
🌐 Пространство Обучения — Навыки, Персоны и Многоразовый Контекст
Хаб Пространства Обучения DeepTutor
Пространство Обучения — это библиотека и уровень персонализации — место, где живут постоянные вещи. **Разговоры и материалы** содержат историю чата, блокноты и банк вопросов (каждый сохранённый вопрос хранит ваш ответ, эталонный ответ и объяснение). **Персонализация** содержит пути мастерства, персонажей (поведенческие пресеты, такие как *коллега*, *исследовательский ассистент*, *учитель*) и навыки (сценарии `SKILL.md`, которые модель читает по требованию). Всё здесь можно повторно использовать из Chat, Partners, Co-Writer и Book.
Импорт навыков из EduHub
Вам не нужно писать каждый навык самостоятельно — **Импорт из EduHub** просматривает каталог сообщества и загружает навык прямо в вашу библиотеку через шлюз безопасности (см. [Экосистема](#-экосистема--eduhub-и-сообщество-навыков)).
🧠 Память — Проверяемая Персонализация
Обзор Памяти DeepTutor
Память — это трёхуровневая система на основе файлов, которую можно читать, курировать и проверять — намеренно *не* скрытое векторное хранилище. **L1** — зеркало рабочего пространства плюс трассировка событий только для добавления (`trace//.jsonl`); **L2** — курированные факты на уровне поверхности (`L2/.md`); **L3** — межповерхностный синтез (`L3/.md`). Поскольку L2 цитирует L1, а L3 цитирует L2, ничто в вашем профиле не является неотчётным.
Граф Памяти DeepTutor
Граф памяти показывает всю пирамиду — синтез L3 в центре, L2 в среднем кольце, трассировки L1 снаружи — так что вы можете проследить любое синтезированное утверждение обратно до точного исходного события. Память отслеживается по поверхностям `chat`, `notebook`, `quiz`, `kb`, `book`, partner и `cowriter`; бюджеты обновления / аудита / дедупликации консолидатора настраиваются в **Настройки → Память**.
⚙️ Настройки — Единая Панель Управления
Хаб настроек DeepTutor
Настройки — это операционная панель управления с живой строкой статуса (Бэкенд, LLM, Встраивание, Поиск) и одной карточкой для каждой области: **Внешний вид** (тема + язык интерфейса), **Сеть** (базовый URL API, порты, CORS), **Модели** (LLM, Встраивание, Поиск, Синтез речи, Распознавание речи, Генерация изображений, Генерация видео), **База знаний** (движок разбора документов), **Чат** (инструменты, MCP-серверы, параметры по возможностям), **Партнёры и агенты** (субагенты, к которым можно обратиться из хода) и **Память** (бюджеты консолидатора).
Настройки внешнего вида и темы DeepTutor
Большинство разделов используют поток черновика и применения, поэтому вы можете протестировать провайдера перед подтверждением. В комплект входят четыре темы — Default, Cream, Dark и Glass. Корневые файлы `.env` проекта намеренно игнорируются; конфигурация среды выполнения хранится в `data/user/settings/*.json`, если только `DEEPTUTOR_HOME` или `deeptutor start --home` не указывает приложению другое место.
👥 Многопользовательский режим — Общие Развёртывания · необязательная аутентификация, изолированные рабочие пространства Аутентификация **отключена по умолчанию** — DeepTutor работает в однопользовательском режиме. Включите её, и одно дерево `data/` содержит рабочее пространство администратора, изолированные пользовательские рабочие пространства и партнёрские рабочие пространства рядом: ```text data/ ├── user/ # Рабочее пространство администратора + глобальные настройки ├── users// # Пользовательская область: история чата, память, блокноты, KB ├── partners//workspace/ # Область партнёра (синтетического пользователя) └── system/ # auth/users.json · grants/.json · audit/usage.jsonl ``` **Первый зарегистрированный пользователь становится администратором** и владеет каталогами моделей, учётными данными провайдеров, общими базами знаний, навыками и грантами для пользователей. Все остальные получают изолированное рабочее пространство и отредактированную страницу Настроек — назначенные администратором модели, KB и навыки отображаются как ограниченные опции только для чтения, а не как сырые API-ключи. **Включение:** включите аутентификацию в `data/user/settings/auth.json`, перезапустите `deeptutor start`, зарегистрируйте первого администратора по адресу `/register`, затем добавляйте пользователей из `/admin/users` и назначайте модели, KB, навыки, Partners, политику инструментов/MCP и доступ к выполнению кода через гранты. > PocketBase остаётся однопользовательской интеграцией — оставьте `integrations.pocketbase_url` пустым для многопользовательских развёртываний, если только вы не подключили внешнее хранилище пользователей.
## ⌨️ DeepTutor CLI — Интерфейс для Агентов Один бинарный файл `deeptutor`, два способа входа: интерактивный **REPL** для тех, кто живёт в терминале, и структурированный **JSON** для других агентов, которые управляют DeepTutor как инструментом. Одни и те же возможности, инструменты и базы знаний в любом случае.
Управляйте им самостоятельно `deeptutor chat` открывает интерактивный REPL; `deeptutor run ""` выполняет один ход и завершается. Оба используют одинаковые флаги `--capability`, `--tool`, `--kb` и `--config`. ```bash deeptutor chat # интерактивный REPL deeptutor chat --capability deep_solve --kb my-kb --tool rag deeptutor run chat "Explain the Fourier transform" --tool rag --kb textbook deeptutor run deep_research "Survey 2026 papers on RAG" \ --config mode=report --config depth=standard ``` Всё, что делает веб-приложение, доступно и здесь — базы знаний (`kb`), сессии (`session`), партнёры (`partner`), навыки (`skill`), блокноты, память и конфигурация. Полный список ниже.
Позвольте агенту управлять им DeepTutor создан для того, чтобы *им управлял другой агент*. Добавьте `--format json` к любой команде `run`, и каждый ход транслирует **NDJSON — одно событие на строку** (`content`, `tool_call`, `tool_result`, `done`, …), каждая строка помечена своим `session_id`. Запуски безопасны без TTY: пауза `ask_user` без TTY автоматически разрешается пустым ответом вместо зависания. ```bash # Один запрос, машиночитаемый deeptutor run deep_solve "Find d/dx[sin(x^2)]" --tool reason --format json # Цепочка ходов в одной сессии с состоянием — захватите id, повторно используйте его SID=$(deeptutor run deep_research "Survey 2026 papers on RAG" \ --config mode=report --config depth=standard --format json \ | jq -r 'select(.type=="done").session_id') deeptutor run deep_question "Quiz me on that survey" --session "$SID" --format json ``` В репозитории есть корневой [`SKILL.md`](SKILL.md) — документ передачи на ~150 строк, который знакомит любой использующий инструменты LLM со всей поверхностью за одно чтение. Передайте его Claude Code, Codex или OpenCode (они автоматически подхватывают `SKILL.md`), или оберните `deeptutor run` как инструмент в цикл LangChain / AutoGen. Полные рецепты: [Agent Handoff](https://deeptutor.info/docs/cli/agent-handoff/).
Справочник команд | Команда | Описание | |:---|:---| | `deeptutor init` | Создать или обновить `data/user/settings` для текущего рабочего пространства | | `deeptutor start [--home PATH]` | Запустить бэкенд + фронтенд вместе | | `deeptutor serve [--port PORT]` | Запустить только бэкенд FastAPI | | `deeptutor run ` | Запустить один ход возможности (`chat`, `deep_solve`, `deep_question`, `deep_research`, `visualize`, `math_animator`, `mastery_path`); добавьте `--format json` для вывода NDJSON | | `deeptutor chat` | Интерактивный REPL с управлением возможностями, инструментами, KB, блокнотами и историей | | `deeptutor partner list/create/start/stop` | Управление партнёрами, подключёнными к IM | | `deeptutor kb list/info/create/add/search/set-default/delete` | Управление базами знаний LlamaIndex | | `deeptutor skill search/install/list/remove/login/logout/publish/update` | Управление навыками, установка из хабов и публикация своих (`eduhub:` по умолчанию, см. Экосистема) | | `deeptutor memory show/clear` | Просмотр документов памяти L2/L3 или очистка памяти L1/всей памяти | | `deeptutor session list/show/open/rename/delete` | Управление общими сессиями | | `deeptutor notebook list/create/show/add-md/replace-md/remove-record` | Управление блокнотами из файлов Markdown | | `deeptutor book list/health/refresh-fingerprints` | Просмотр книг и обновление исходных отпечатков | | `deeptutor plugin list/info` | Просмотр зарегистрированных инструментов и возможностей | | `deeptutor config show` | Вывод сводки конфигурации | | `deeptutor provider login ` | Аутентификация провайдера (`openai-codex` вход через OAuth; `github-copilot` проверяет существующую сессию аутентификации Copilot) |
Дистрибутив только с CLI Пакет только с CLI находится в `packaging/deeptutor-cli`. В этом чекауте установите его из исходного кода: ```bash python -m pip install -e ./packaging/deeptutor-cli ``` Он ещё не опубликован в PyPI, поэтому основной раздел [Начало работы](#-начало-работы) сохраняет путь установки из исходного кода.
## 🧩 Экосистема — EduHub и Сообщество Навыков Навыки DeepTutor используют открытый формат **Agent-Skills** — папку с плейбуком `SKILL.md` (YAML frontmatter + Markdown) и необязательными справочными файлами. В нём нет ничего специфичного для DeepTutor, поэтому любой реестр, говорящий на этом формате, становится источником для вашей библиотеки. DeepTutor поставляется с **[EduHub](https://eduhub.deeptutor.info/)** — нашим собственным образовательным реестром навыков — встроенным в качестве хаба по умолчанию.
EduHub — экосистема навыков DeepTutor [**EduHub**](https://eduhub.deeptutor.info/) — это хаб сообщества, запущенный DeepTutor для обмена обучающими навыками агентов — сократовские репетиторы, создатели флэш-карточек, обратная связь по эссе, планы экзаменов, объяснители концепций и многое другое. Он встроен в DeepTutor, поэтому настраивать ничего не нужно: голый слаг или префикс `eduhub:` разрешается в него. **Найти и установить** — в браузере откройте **Пространство Обучения → Навыки → Импорт из EduHub** для просмотра каталога и загрузки навыка прямо в вашу библиотеку. Из терминала: ```bash deeptutor skill search "socratic tutor" # поиск в EduHub (хаб по умолчанию) deeptutor skill install socratic-tutor # получить → проверить → зарегистрировать deeptutor skill install eduhub:socratic-tutor@1.2.0 # указать хаб и версию deeptutor skill list # локальные навыки с их хабовой принадлежностью ``` **Опубликуйте свой** — упакуйте `SKILL.md` и поделитесь им обратно с сообществом: ```bash deeptutor skill login # вход через браузер в EduHub deeptutor skill publish ./my-skill # интерактивно: выберите трек + теги, затем загрузите deeptutor skill update # откатиться или выпустить новую версию ``` EduHub также является отдельным, совместимым с ClawHub реестром, поэтому агенты, отличные от DeepTutor (Claude Code, Codex, …), могут использовать его напрямую через CLI `eduhub` — `npx eduhub install socratic-tutor`.
Шлюз безопасности импорта Независимо от источника, каждый импорт проходит через **один шлюз безопасности** перед тем, как что-либо коснётся вашего рабочего пространства: - сначала проверяется **вердикт безопасности** реестра — отмеченные пакеты отклоняются, если вы не передали `--allow-unverified`; - архивы извлекаются защищённо (защита от zip-slip / zip-bomb) за **белым списком суффиксов** для текста/скриптов, поэтому бинарные файлы никогда не попадают в рабочее пространство; - frontmatter нормализуется по схеме DeepTutor, и `always:` **удаляется**, поэтому загруженный навык никогда не может принудить себя в каждый системный промпт; - происхождение — хаб, версия, вердикт и время установки — записывается в `.hub-lock.json` для аудитов и обновлений. В многопользовательских развёртываниях установка является исключительно привилегией администратора: новый навык попадает в каталог администратора и остаётся невидимым для других пользователей до тех пор, пока грант не назначит его, поэтому администратор может проверить его перед развёртыванием.
Также совместим с ClawHub Поскольку DeepTutor использует открытый формат Agent-Skills, **[ClawHub](https://clawhub.ai/)** также работает как первоклассный источник — он встроен рядом с EduHub. Выберите его с префиксом хаба: ```bash deeptutor skill search "git release notes" --hub clawhub deeptutor skill install clawhub:git-release-notes@1.0.1 ``` Добавляйте дополнительные реестры в `settings/skill_hubs.json`: запись `type: "clawhub"` указывает на любой совместимый HTTP API (EduHub и ClawHub оба его поддерживают), `type: "command"` оборачивает любой CLI получения, который поставляет реестр, а `"default"` выбирает хаб, используемый для голых слагов. Все они передаются через тот же шлюз импорта.
## 🌐 Сообщество ### 📮 Контакты DeepTutor — это проект с открытым исходным кодом, который ведёт [Bingxi Zhao](https://github.com/pancacake) в составе группы [HKUDS](https://github.com/HKUDS), и он развивается в **полностью открытом формате**, создаваясь вместе с сообществом. До сих пор у нас **НЕТ** платных онлайн-продуктов в каком-либо виде. Не стесняйтесь обращаться по адресу **bingxizhao39@gmail.com** для обсуждений, идей или сотрудничества. ### 🙏 Благодарности Сердечная благодарность [**Chao Huang**](https://sites.google.com/view/chaoh), директору Лаборатории интеллектуальных данных @ HKU, и нашим коллегам из HKUDS за их тёплую поддержку — особенно [**Jiahao Zhang**](https://github.com/zzhtx258), [**Zirui Guo**](https://github.com/LarFii) и [**Xubin Ren**](https://github.com/Re-bin). Мы также глубоко благодарны **сообществу открытого исходного кода**: ваши звёзды, вопросы, пул-реквесты и обсуждения каждый день формируют DeepTutor. DeepTutor также стоит на плечах выдающихся проектов с открытым исходным кодом, которые дали нам инструменты и вдохновение: | Проект | Роль / Вдохновение | |:---|:---| | [**LlamaIndex**](https://github.com/run-llama/llama_index) | Конвейер RAG и основа индексирования документов | | [**nanobot**](https://github.com/HKUDS/nanobot) | Ультралёгкий движок агентов, обеспечивавший оригинальный TutorBot *(HKUDS)* | | [**LightRAG**](https://github.com/HKUDS/LightRAG) | Простой и быстрый RAG *(HKUDS)* | | [**AutoAgent**](https://github.com/HKUDS/AutoAgent) | Фреймворк агентов без кода *(HKUDS)* | | [**AI-Researcher**](https://github.com/HKUDS/AI-Researcher) | Автоматизированный исследовательский конвейер *(HKUDS)* | | [**OpenClaw**](https://github.com/openclaw/openclaw) | Открытый шлюз агентов и экосистема навыков за ClawHub | | [**Codex**](https://github.com/openai/codex) | Агентный CLI кодирования, вдохновивший наш рабочий процесс CLI | | [**Claude Code**](https://github.com/anthropics/claude-code) | Агентный CLI кодирования, вдохновивший цикл агента DeepTutor | | [**ManimCat**](https://github.com/Wing900/ManimCat) | Генерация математической анимации на основе ИИ для Math Animator | ### 🗺️ Дорожная карта и участие Мы хотим, чтобы DeepTutor продолжал развиваться и совершенствоваться — и в конечном итоге стал подарком, который мы возвращаем сообществу открытого исходного кода. Наша [**дорожная карта**](https://github.com/HKUDS/DeepTutor/issues/498) обновляется непрерывно; голосуйте там за пункты или предлагайте новые. Если вы хотите участвовать, см. [**Руководство по участию**](CONTRIBUTING.md) с описанием стратегии ветвления, стандартов кодирования и инструкций по началу работы.
Мы надеемся, что DeepTutor станет подарком для сообщества. 🎁 Участники
Диаграмма истории звёзд

Рейтинг истории звёзд

Лицензировано по [Apache License 2.0](LICENSE).

Views