DeepTutor

HKUDSApache-2.0活跃维护

基于多智能体与 RAG 的个性化 AI 导师,能长期跟踪学习进度、按个人情况调整教学内容,适合搭建交互式学习与深度研究场景。

DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.

v1.7.2发布于 2026-11-06 08:42 UTC57,817star +1,716 / 7 天7,046fork同步于 2026-11-10 11:19 UTC

怎么上手

由 README 提炼,执行前请确认
下载对应平台安装包:https://github.com/HKUDS/DeepTutor/releases/latest
硬件要求按 README 说明

README 未说明显存或 GPU 要求,提供 macOS Apple Silicon、macOS Intel 与 Windows x64 桌面安装包

支持 Apple Silicon有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

港大开源的终身个性化 AI 辅导系统,把知识库、课程与练习串成持续学习闭环

基于多智能体与 RAG 的个性化 AI 导师,能长期跟踪学习进度、按个人情况调整教学内容,适合搭建交互式学习与深度研究场景。

核心能力

  • 以知识库和文件夹工作区组织学习资料并支持检索
  • Mastery Path 掌握路径按掌握度控制可用工具
  • 生成书籍、视频课、测验与 Anki 卡片等学习内容
  • 支持多模型供应商与 MCP 插件扩展工具能力
  • 提供 CLI 与桌面端,可本地运行并接入多种解析引擎

容易踩的坑

需自行配置模型供应商的 API Key 才能使用;部分功能依赖额外解析引擎或外部服务;版本迭代频繁,接口与配置项可能随版本变化

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.7.2
  1. v1.7.2最新正式版2026-11-06 · 2026-11-06 08:42 UTC

    DeepTutor v1.7.2 Release Notes

    Release Date: 2026.11.06

    Building on v1.7.1, v1.7.2 adds selected-text read-aloud, easier model setup, and more reliable guided learning, retrieval, and updates. Desktop releases now require Apple Silicon and Intel Mac installers alongside both Windows downloads.

    What's New

    Complete desktop downloads and sturdier Windows support

    GitHub Releases provide Apple Silicon and Intel DMGs, a Windows installer, and a Windows portable ZIP. The release workflow checks every platform and all versioned downloads and stable aliases. Windows fixes cover session and migration locks, plugin environments, Python executable discovery, non-UTF-8 output, and paths containing spaces.

    Read just the passage you need

    Select text in Chat, Mastery Path, or Reading and choose Read aloud to hear it through your configured speech provider. Chat read-aloud also remembers playback speed per conversation in the current browser. Voice rendering handles escaped percent signs and degree notation more naturally, and Video Lesson's Edge fallback selects a voice matching the lesson language.

    Easier provider setup and broader compatibility

    Settings discovers available models after credential edits and lets you import several at once. New custom providers default to automatic protocol selection. NVIDIA NIM adds text retrieval embeddings with distinct query and passage roles; newer DashScope image models use their matching generation protocol, with 4K restricted to wan2.7-image-pro. Responses API tool arguments, structured output, replayed history, and Codex custom headers receive compatibility fixes.

    Guided learning that keeps the context

    Choose a model before a Mastery Path outline starts. Follow-up clarifications and missing parts are assessed with the explanation they complete, while stale card replies and duplicate retries are handled more carefully. Source quotation mismatches receive a bounded retry, and mastery navigation, board scrolling, and tutoring-memory recovery are more reliable.

    More accessible conversations and retrieval

    Korean is available as a partial interface translation, with English fallback for untranslated text. More labels and dates follow the selected interface language. Little Tutor threads appear in the command palette, document readers load on demand, and socket failures and cancellation recover more predictably. BM25 preserves dotted identifiers, document extraction stays off the API event loop, and notebook and favorite tools support read-only record retrieval.

    Safer updates and bounded reasoning recovery

    Package updates keep installed feature modules on the target core version and record launch failures instead of remaining stuck at restart. Detached launches avoid stale source-tree imports, and failed CLI-app rollbacks preserve backups. The shared agent loop can stop or make one explicitly bounded higher-budget retry when reasoning exhausts the output budget without a visible answer.

    Upgrade Notes

    • Full app: stop DeepTutor and back up the runtime home, then run python -m pip install --upgrade "deeptutor[full]==1.7.2". Keep the same DEEPTUTOR_HOME; verify with python -m pip check and deeptutor module list before restarting. Any additional feature wheels must also match version 1.7.2.
    • Legacy installations: upgrades from 1.6.15 or earlier must uninstall the legacy deeptutor-cli package before installing the modular package family. Follow the migration commands in v1.7.0.
    • Source installs: install requirements/full.txt, then python -m pip install -e . --no-deps. Stop active servers and CLI turns before changing modules.
    • Docker: pull ghcr.io/hkuds/deeptutor:1.7.2 or :latest and recreate the container with the existing data volume.
    • Desktop: use the matching installer or portable ZIP on this GitHub Release. Windows builds remain unsigned. Automatic desktop upda
  2. v1.7.12026-10-31 · 2026-10-31 16:51 UTC
    查看更新说明

    DeepTutor v1.7.1 Release Notes

    Release Date: 2026.11.01

    Building on v1.7.0, v1.7.1 introduces Open DeepTutor desktop previews, broader localization, and substantial improvements to chat, lessons, accounts, providers, and document handling. Existing runtime data stays in place; no manual migration is required.

    What's New

    Open DeepTutor desktop previews

    Open DeepTutor bundles Python, Node.js, and the full learning workspace into a desktop app for Apple Silicon Macs, Intel Macs, and Windows x64. Preview builds are available from the Desktop Release workflow, with DMG downloads for macOS and Setup or portable ZIP options for Windows.

    More languages and account controls

    Vietnamese, Japanese, Turkish, and Brazilian Portuguese join the interface and reply-language options, alongside expanded translations, regional date formatting, and right-to-left rendering. Account-scoped learning text controls adjust font size and line spacing. Users can change their passwords from Profile, while accounts still using an admin-assigned temporary password receive a change prompt.

    Chat that keeps your work and sources together

    Unsent composer drafts survive navigation, and conversational creation drafts retain early work. Message-level Little Tutor threads can recover, move, or clear their source anchor without losing the surrounding conversation. Generated files gain consistent open and download controls, while editing or resending a message uses the current model and reply language.

    Checked lessons and portable study materials

    Video Lesson narrates through the configured Text-to-Speech provider with Edge fallback, checks browser layout, and runs targeted repairs. Math Animator adds dry-run geometry checks and task-model repairs. Notebook flashcards export to Anki, and Calendar events export as iCalendar files for external calendar apps.

    More models, search providers, and agent options

    Claude Code integration gains official SDK model discovery and source-image forwarding. Provider coverage expands with xAI models, Mistral embeddings and voice, You.com and self-hosted Google browser search, plus CloudGPU, LLMTR, and Runcrate gateways. Task models now handle targeted Math Animator and Video Lesson repairs as well as background helpers.

    Retrieval and document fidelity

    PageIndex indexing can use the configured Task model, while LlamaIndex folder synchronization publishes one coherent version. MinerU retains reference lists, and hybrid retrieval excludes zero-score BM25 hits. Office and DOCX fallbacks better preserve equations, pictures, slide order, sparse spreadsheet columns, and grouped mathematical terms.

    Reliability across the runtime

    This release also hardens archive extraction, Unicode filename handling, cancellation cleanup, voice transcription and audio conversion, tutor-thread recovery, workspace draft saves, and desktop signing and notarization. These fixes reduce partial failures and preserve existing data when an operation cannot complete.

    English and Chinese guides are synchronized with this release at deeptutor.info.

    Upgrade Notes

    • Full app: stop DeepTutor and back up the runtime home, then run python -m pip install --upgrade "deeptutor[full]==1.7.1". Keep the same DEEPTUTOR_HOME, run python -m pip check and deeptutor module list, then restart.
    • Legacy installations: upgrades from 1.6.15 or earlier must uninstall the legacy deeptutor-cli package before installing the new package family. Follow the migration commands in v1.7.0; runtime-home data remains separate from installed packages.
    • Source installs: install requirements/full.txt, then python -m pip install -e . --no-deps. Core and feature wheels must use matching versions; stop active servers and CLI turns before changing modules.
    • Docker: pull ghcr.io/hkuds/deeptutor:1.7.1 or :latest and recreate the container with the existing data
  3. v1.7.02026-10-28 · 2026-10-28 14:13 UTC
    查看更新说明

    DeepTutor v1.7.0 Release Notes

    Release Date: 2026.10.28

    Building on v1.6.15, v1.7.0 brings modular installation, a refreshed learning workspace, block-based notebooks with Dito, and narrated video lessons. Full-app upgrades now use deeptutor[full]; existing runtime data remains separate from the installed packages.

    What's New

    Install the parts you use

    deeptutor now provides core chat, CLI, and SDK; deeptutor[full] selects the Web app and standard feature modules. The deeptutor-cli package becomes a compatibility alias. Inspect installed, enabled, and ready states with deeptutor module list, then enable, disable, install, or remove modules while the app is stopped. Dependency checks protect required modules, and removal preserves user data.

    A workspace organized around learning

    Modern and Classic layouts offer different navigation arrangements. Home brings together Chat, the Task Board, Learning notebook, and Calendar; Learning and Resources keep study activities and materials accessible. Customize Chat modes, controls, and starting prompts, or choose which learning methods appear on the New learning page. Conversation and resource navigation retain their workspace boundaries.

    Notebook pages with Dito beside them

    The Learning notebook replaces the former Co-Writer editor with pages, subpages, and blocks. Import Word documents, insert source records from Favorites, discuss a passage with Dito, and review proposed edits before accepting them. Export pages as Markdown or Word. Favorites hold saved source records; notebook pages hold your own writing and understanding.

    Video lessons and free read-aloud

    Choose Video Lesson to generate a lesson that plays directly in the browser, with captions and optional Microsoft Edge narration. Frame checks execute generated code inside a bounded WebAssembly interpreter; Docker is not required. Microsoft Edge also joins the read-aloud providers, and reply playback is more reliable on iOS.

    More reliable tutoring and indexing

    Compatible interrupted LlamaIndex rebuilds can resume completed embedding checkpoints. Knowledge-base creation retains same-named documents, and one failed caption group no longer aborts the entire ingestion. Chat recovers worker failures more consistently, completed Anthropic thinking is excluded from history replay, and prompt caching uses steadier conversation prefixes. Guided Learning preserves mathematical meaning when checking citations and keeps review work within its eligibility gate.

    English and Chinese guides are synchronized with this release at deeptutor.info.

    Upgrade Notes

    • Full app: stop DeepTutor and back up the runtime home, then run python -m pip install --upgrade "deeptutor[full]==1.7.0". Run python -m pip check and deeptutor module list before restarting with the same DEEPTUTOR_HOME. Bare deeptutor now selects core only.
    • Legacy CLI package: first run python -m pip uninstall deeptutor-cli, then install the new core or full profile. Optionally reinstall deeptutor-cli==1.7.0 as the compatibility alias. The old CLI owns shared Python files, so upgrading it in the same transaction can remove files needed by the new core. Package removal leaves runtime-home data intact.
    • Source installs: install requirements/full.txt, then python -m pip install -e . --no-deps. Use python scripts/install_extras.py <extra> for optional source dependencies. Source checkouts support module enable/disable; package install/uninstall requires a wheel environment.
    • Docker: pull ghcr.io/hkuds/deeptutor:1.7.0 or :latest and recreate the container with the existing data volume.
    • Video Lesson: the backend needs Node.js 22+ and npm; first use downloads pinned rendering packages. Install the edge-tts extra for narration. Without available narration, lessons retain their captions and play silently.
    • Module versions: core and f
  4. v1.6.152026-10-18 · 2026-10-18 20:13 UTC
    查看更新说明

    DeepTutor v1.6.15 Release Notes

    Release Date: 2026.10.19

    Building on v1.6.14, v1.6.15 improves Guided Learning with reviewed outline changes, independently graded question groups, and bounded tutoring memory. It also strengthens chat recovery and document parsing, adds retrieval comparisons, and brings native Gemini speech.

    What's New

    Learning paths you can revise and practice

    Preview module reordering before committing it, and apply coordinated changes across modules together. Tutors can present two to four questions as a group, retain partial submissions, and assess each answer independently. Source-grounded semantic assessment accepts equivalent explanations while distinguishing incomplete, incorrect, and uncertain answers. Concept and design cards remain practice; mastery still requires the learner's own explanation.

    Teaching continuity in longer sessions

    Guided Learning retains teaching preferences, unresolved misunderstandings, and relevant source anchors in bounded memory, with access to original exchanges when needed. Source preparation follows the current learning request, preserves visible teaching, and reports progress and repair failures in the session language. Usage totals now include preparation and memory-compression calls; compression has its own cost.

    More reliable conversations and settings

    Streamed content is saved periodically for recovery, completed streams release their in-memory events, and reconnecting clients wait for the actual terminal event. Unsent messages retain recoverable copies until the server acknowledges their dismissal or replacement. Settings keep drafts after failed catalog writes and show actionable permission or HTTP errors. Learning navigation respects account grants, and named timezones work on Windows.

    Parsing that isolates failures

    MinerU CLI workers have explicit process ownership and consistent deadlines, retain terminal error details, and are not stopped merely because their logs go quiet. Unreadable PDFs and native parser failures are isolated during indexing so other documents can continue. Cancellation stays attached to the correct indexing run, and recovery messages distinguish reusable parsing from embedding work that must restart.

    Retrieval experiments and workspace instructions

    An optional query-rewrite layer produces one standalone search query and falls back to the original on failure. deeptutor kb eval --rewrite off|standalone records rewrite provenance; deeptutor kb eval-diff baseline.json candidate.json compares saved metrics and cases. Workspace instructions guide subsequent turns in supported capabilities. Reading also accepts browser-zipped .epub.zip folders and improves playback, citations, and annotation recovery.

    Providers and optional request screening

    Gemini TTS uses native generateContent speech with Google voices, and onomeo joins the OpenAI-compatible provider catalog. An optional guard extra adds HTTP rate limits, address rules, and request-pattern screening; it is disabled by default and does not inspect request bodies or WebSocket traffic.

    English and Chinese documentation is updated alongside the release at deeptutor.info.

    Upgrade Notes

    Run pip install -U deeptutor; Docker users pull ghcr.io/hkuds/deeptutor:latest. Restart running services after upgrading.

    • Gemini speech: select a Google voice and WAV or PCM output. This adapter does not accept a speed parameter; use voice instructions for delivery style.
    • Query rewrite: disabled by default. Enable it in data/user/settings/query_rewrite.json, through the documented process overrides, or explicitly for an evaluation. Rewriting makes an additional model call.
    • Workspace instructions: configure them in Settings → Workspace. Changes apply from the next turn; Deep Research, Quiz, and Manim do not use them.
    • Request screening: install deeptutor[guard] and enabl
  5. v1.6.142026-10-08 · 2026-10-08 03:35 UTC
    查看更新说明

    DeepTutor v1.6.14 Release Notes

    Release Date: 2026.10.08

    Building on v1.6.13, v1.6.14 brings original-source visual practice, recoverable knowledge-base indexing, scientific research tools, and managed plugins. Video learning now lives in Reading; existing Watching conversations migrate when reopened.

    What's New

    Original figures, pages, and visual practice

    Ask about an exact figure, table, or PDF page in an attached knowledge base. DeepTutor retrieves the original image or renders the selected page or region, preserving document identity and source links. The Files view exposes source visual coverage, including missing or unverified extraction. Guided Learning uses this evidence for visual questions and distinguishes explanations, assisted practice, and independent mastery; inaccessible or uncertain evidence stays ungraded.

    Indexing that can recover

    Knowledge-base details show durable indexing progress, individual source outcomes, and recovery information. Retries reuse compatible completed parses and validated MinerU cloud slices; cancellation takes effect at a safe boundary. LlamaIndex publishes a new version only after reload, vector validation, and a retrieval probe succeed, preserving an earlier queryable version when a rebuild fails. Retrieval also reports hybrid-to-vector fallback and incomplete IMA evidence.

    Reading includes video learning

    YouTube and Bilibili media share the Reading workspace, with timestamp-grounded discussion and native playback. Previous Watching conversations, positions, and notes can be imported without modifying their legacy media or notebook records. Reading panels resize independently, offer a focus preset, and retain usable pagination and selection controls on narrow screens.

    Research with traceable evidence

    Scientific requests and Deep Research gain tools for reading versioned arXiv papers and original pages, checking paper claims against a pinned GitHub revision, and building literature evidence matrices. The MCP catalog adds alphaXiv. Administrators can approve an exact private-network MCP origin for account-owned research connections, with approval checked again when tools run.

    Reviewed plugin lifecycle

    The plugin CLI supports inspection, installation, permission approval, enable/disable, rollback, and uninstall. Managed wheels run in separate environments, with artifact checks and revocable runtime gates. The official catalog format supports reviewed packages; this release ships an empty catalog, so it does not install new third-party code automatically.

    Learning continuity and everyday fixes

    Space gains a workspace learning journal showing the current mission, last-session handoff, and confirmed learning records. Chat retries reuse the original conversation after a lost acknowledgement, parked questions survive reloads, and unsent drafts remain recoverable. Branch navigation, memory account isolation, launcher recovery, and error reporting improve; Visualize also gains Mermaid mindmaps.

    Providers and setup

    GitHub Copilot uses device login and per-owner credentials, with inference checked during setup. Opper joins LLM and embedding providers, and Y-API joins LLM providers. Provider settings offer a clearer add flow, protocol-aware default endpoints, and provider voice discovery. Local embedding services can work without API keys, while embedding concurrency and Qwen3-Instruct thinking handling are corrected.

    Updated English and Chinese documentation accompanies the release at deeptutor.info.

    Upgrade Notes

    Run pip install -U deeptutor; Docker users pull ghcr.io/hkuds/deeptutor:latest.

    • Video learning: use Reading for new video sessions. The standalone immersive_watching capability and watching / watch CLI aliases are retired. Existing Watching links enter the compatibility migration; keep the existing application data available. A missing legacy video leaves its conversat

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    License GitHub release arXiv Discord Feishu WeChat

    Features · Get Started · Explore · CLI · Ecosystem · Community


    🤝 We're actively recruiting maintainers! See the Contributing Guide for the roles, requirements and how to apply.

    📦 Releases

    [2026.11.6] v1.7.2 — Complete desktop downloads, selected-text speech, easier model setup, Korean interface preview, NVIDIA NIM embeddings, and more reliable mastery, retrieval, and updates.

    [2026.11.1] v1.7.1 — Desktop previews, broader localization, password changes, checked video lessons, Anki and calendar exports, more providers, and wide reliability improvements.

    [2026.10.28] v1.7.0 — Modular installation, a refreshed learning workspace, block notebooks with Dito, narrated video lessons, resumable embedding checkpoints, and more reliable tutoring.

    [2026.10.19] v1.6.15 — Reviewed learning-path changes, grouped assessments, bounded tutoring memory, reliable chat recovery, sturdier parsing, retrieval comparisons, and native Gemini speech.

    [2026.10.8] v1.6.14 — Original-source visual practice, recoverable indexing, unified video Reading, scientific research tools, managed plugins, a learning journal, and provider setup improvements.

    [2026.10.4] v1.6.13 — Reading and listening improvements, question-bank practice, resilient document parsing, configurable speech, workspace-visible attachments, Polish, and new providers.

    [2026.9.27] v1.6.12 — Workspace KB moves, Kiwix archives, source figures, Task Board, German UI, and chat recovery.

    [2026.9.24] v1.6.11 — French and Ukrainian interfaces, reading folders with in-chat selection actions, figures sent to vision models, paged Office previews, and self-syncing knowledge bases.

    [2026.9.22] v1.6.10 — Native LightRAG role models, a published index that records and enforces what built it, PDF attachments that follow your parsing engine, visible truncation, and unfiltered provider choices.

    [2026.9.21] v1.6.9 — Folder-based learning workspaces, daily practice, redesigned Settings, clearer streaming conversations, persistent usage accounting, and recoverable archives with explicit permanent deletion.

    [2026.9.14] v1.6.8 — A recycle bin for deleted chats, search across your whole conversation history, a tool that looks past your knowledge base, and a sweep of fixes for quiet failures.

    [2026.9.11] v1.6.7 — A fix release: books that arrived as one empty chapter, quizzes that produced nothing, the model's scratchpad in the text, formulas printed raw, and cards you could not submit.

    [2026.9.8] v1.6.6 — A fix release: answers that could not submit, a copy button that lied, connected knowledge bases for partners, Codex sign-in inside Docker, and a 100 KB lighter home route.

    [2026.9.6] v1.6.5 — A content workspace you point at any folder, one exec tool for every language, Mastery Path modes that gate its tools, and Settings that grades readiness.

    [2026.9.3] v1.6.4 — Faster isolated runtimes, controllable Book generation, source-complete Mastery paths and Chat hand-offs, durable Reading, unified activity UI, recoverable sessions, and explicit per-model API capabilities.

    [2026.9.2] v1.6.3 — Breaking front/back-end refactor, strict canonical routes and recoverable streams, plus learner/guardian accounts, grounded Reading, WeKnora, broader parsing, Python 3.14, and DashScope media.

    [2026.8.31] v1.6.2 — Immersive YouTube learning, a plugin-driven Visualize catalog, three new agent harnesses, safer reading citations, multi-format MinerU, live Partner channel status, and guided updates.

    [2026.8.30] v1.6.1 — One vendor key linked to every service it serves, a task model for background work, Settings as a searchable navigator, a sidebar you arrange, and first-party LightRAG.

    [2026.8.27] v1.6.0 — Faithful EPUB reading and annotations, Courses with Little Tutor and Ask Questions, bounded web-source sync, shared Books with private learning state, and Serply/native search.

    [2026.8.25] v1.5.17 — Partners each member owns with private conversations and linkable chat accounts, GitHub repos as a knowledge source, Antigravity CLI, browser WeChat QR login, and deeptutor doctor.

    [2026.8.22] v1.5.16 — MarginNote 4 libraries you connect and its add-on fills, Book pages that turn again, and tool-call ids, embeddings and temperature limits that stop breaking behind a gateway.

    [2026.8.20] v1.5.15 — PageIndex OSS you host yourself with reasoning retrieval, a question bank you can finally file into, third-party tool/capability plugins, and Apache Tika parsing.

    [2026.8.19] v1.5.14 — Immersive Reading: a document open beside the thread, cited page by page; DeepTutor configures itself from chat; IMA libraries you browse and write to; a notebook console.

    [2026.8.17] v1.5.13 — Books stream while they compile, track your progress, and export to Markdown; a cost estimate before you approve a spine; and home starter suggestions drawn from memory.

    [2026.8.13] v1.5.12 — Web search rebuilt with six new providers (Doubao, Bocha, Zhipu, Firecrawl, Qianfan, Aliyun IQS), a LiteParse parsing engine, MCP servers that reconnect on credential change, and CodeBuddy + OrcaRouter.

    [2026.8.10] v1.5.11 — Prose around a DSML tool call stops vanishing, a truncated reply continues instead of ending, live memory usage in Settings, and LightRAG indexing off the event loop.

    [2026.8.7] v1.5.10 — Every account signs in to its own Codex, model output language becomes its own setting, empty tool calls are rejected instead of retried, and uploads stop blocking the loop.

    [2026.8.4] v1.5.9 — Gemini Embedding 2 on its native endpoint, a per-model reasoning effort control, a Novita AI gateway, retrieval roles for queries, and Compose deployments that keep all of data/.

    [2026.8.2] v1.5.8 — Memory: a real heap ceiling for the dev server, source installs serve a production build, bounded LLM client and index caches, and a keep-alive fix for stray 500s.

    [2026.7.31] v1.5.7 — A per-account MCP Services store, 101 CLI Apps the tutor can run, credentials moved out of the sandbox's reach, and a mobile layout.

    [2026.7.29] v1.5.6 — Remote Codex sign-in completes behind an SSH tunnel, generated files get their own card in Activity, non-English languages stop collapsing to Chinese, and book creation no longer times out.

    [2026.7.26] v1.5.5 — Sign in with your ChatGPT plan via OpenAI Codex OAuth, an Eden AI provider, knowledge bases that report what they hold, traceable rag citations, and GraphRAG indexing without a workaround.

    [2026.7.24] v1.5.4 — Maintenance sweep: the post-answer "generating" stall is gone, IM partners render Markdown tables faithfully, LLM JSON parsing is sturdier, plus quiz, create-KB form, and Math Animator fixes.

    [2026.7.24] v1.5.3 — Themeable code blocks, four more coding CLIs in My Agents (Gemini, Kimi, opencode, MiMo), an Atlas Cloud LLM provider, and a broad chat, memory, embedding, and parsing reliability sweep.

    [2026.7.19] v1.5.2 — Configurable chat attachment limits, PageIndex retrieval that reasons across your documents via agentic tool calls, broader Anthropic/OpenAI model support, and steadier Book, Knowledge Base, and chat UI.

    [2026.7.9] v1.5.1 — Remove a single failed document from a knowledge base — even one stuck in an error state — instead of deleting and rebuilding the whole base.

    [2026.7.4] v1.5.0 — LlamaIndex ingestion now honors your Document Parsing engine with multimodal image extraction, Partner & Soul ids stay URL-safe for non-Latin names, and optional RAG extras install cleanly on Python 3.14+.

    [2026.6.30] v1.4.15 — A native Mattermost channel for Partners, plus fixes so Guided Learning multiple-choice questions grade correctly and a configured zero chunk overlap is honored.

    [2026.6.29] v1.4.14 — Click an assigned partner to chat in one step, Deep Research flags partial reports, LightRAG indexes without MinerU, FAISS handles non-ASCII paths, and PocketBase sessions are isolated per user.

    [2026.6.27] v1.4.13 — Partners support non-Latin names and become assignable to users, logos render after login (#599), tiny knowledge bases retrieve reliably, and containers start cleanly under rootless Podman.

    [2026.6.24] v1.4.12 — A new LightRAG Server retrieval engine, a lightweight PyMuPDF4LLM parsing engine, and a FAISS vector backend that makes large knowledge-base retrieval dramatically faster.

    [2026.6.23] v1.4.11 — Native tool calling on every cloud OpenAI-compatible provider, a redesigned admin Users page, LaTeX in quiz options, an honest session-loading spinner, and configurable container host binding.

    [2026.6.21] v1.4.10 — A self-service Profile page with avatars, a rootless-ready container guide with a single-port request-time proxy, and deny-by-default MCP tools for non-admin users.

    [2026.6.19] v1.4.9 — Settings polish: Search shows only the fields your provider needs, connection profiles can be renamed and auto-named by provider, and graded Mastery Path questions flow into your Question Bank.

    [2026.6.18] v1.4.8 — Connect your own Partners under My Agents and consult them live in chat — answering through their own persona, library and skills — each with its own private memory.

    [2026.6.18] v1.4.7 — Connect your local Claude Code / Codex and consult it live mid-turn, My Agents graduates to a top-level /agents, and Partner conversations gain branch / resume / delete with a replayable trace.

    [2026.6.17] v1.4.6 — Four-surface consolidation: a Space learning dashboard with importable My Agents and top-level Memory, a Knowledge Center with GraphRAG / PageIndex / LightRAG / linked-KB / Obsidian, opened-up Settings, and per-model capability gating.

    [2026.6.14] v1.4.5 — Guided Learning rebuilt on the chat agent loop with a hard per-type mastery gate and a /learning dashboard, a new loop-plugin framework, plus Markdown export / save-to-notebook for Partner conversations.

    [2026.6.13] v1.4.4 — Install community skills from ClawHub with deeptutor skill install behind a security gate, plus real in-browser DOCX/XLSX previews for knowledge-base files.

    [2026.6.12] v1.4.3 — TutorBot becomes Partners on a production-grade IM pipeline (15 channels, live streaming), Chat moves to a single agent loop, real per-user isolation, and a rebuilt Visualize.

    [2026.5.28] v1.4.2 — Stability + polish: Gemini 2.5+ unblocked across Visualize and Chat, auth-routing fix (#485), smooth-streaming chat UX, a Recents sidebar, and Lemonade local-provider support.

    [2026.5.27] v1.4.1 — Security + stability: TutorBot tool sandbox locked down, per-user resource isolation, multimodal image fallback, an HTTP/SSE API for TutorBots, and a v1.4.0 chat regression fix.

    [2026.5.22] v1.4.0 — GA cut of v1.4: Auto Mode, three-layer Memory, agentic Deep Research / Solve / Question, LlamaIndex RAG refactor, Visualize/Animator merge, and restart-safe turn runtime.

    [2026.5.21] v1.4.0-beta — Three-layer Memory workbench (L1/L2/L3), every chat capability rebuilt on a single agentic engine, LlamaIndex-only RAG, and a unified Settings + Capabilities surface.

    [2026.5.10] v1.3.10 — Remote Docker CORS recovery, DISABLE_SSL_VERIFY across SDK providers, safer code-block citations, and optional Matrix E2EE add-on.

    [2026.5.9] v1.3.9 — TutorBot Zulip and NVIDIA NIM support, safer thinking-model routing, deeptutor start, sidebar tooltips, and session-store parity.

    [2026.5.8] v1.3.8 — Optional multi-user deployments with isolated user workspaces, admin grants, auth routes, and scoped runtime access.

    [2026.5.4] v1.3.7 — Thinking-model/provider fixes, visible Knowledge index history, and safer Co-Writer clear/template editing.

    [2026.5.3] v1.3.6 — Catalog-based model selection for chat and TutorBot, safer RAG re-indexing, OpenAI Responses token-limit fixes, and Skills editor validation.

    [2026.5.2] v1.3.5 — Smoother local launch settings, safer RAG queries, cleaner local embedding auth, and Settings dark-mode polish.

    [2026.5.1] v1.3.4 — Book page chat persistence and rebuild flows, chat-to-book references, stronger language/reasoning handling, RAG document extraction hardening.

    [2026.4.30] v1.3.3 — NVIDIA NIM + Gemini embedding support, unified Space context for chat history/skills/memory, session snapshots, RAG re-index resilience.

    [2026.4.29] v1.3.2 — Transparent embedding endpoint URLs, RAG re-index resilience for invalid persisted vectors, memory cleanup for thinking-model output, Deep Solve runtime fix.

    [2026.4.28] v1.3.1 — Stability: safer RAG routing & embedding validation, Docker persistence, IME-safe input, Windows/GBK robustness.

    [2026.4.27] v1.3.0 — Versioned KB indexes with re-index workflow, rebuilt Knowledge workspace, embedding auto-discovery with new adapters, Space hub.

    [2026.4.25] v1.2.5 — Persistent chat attachments with file-preview drawer, attachment-aware capability pipelines, TutorBot Markdown export.

    [2026.4.25] v1.2.4 — Text/code/SVG attachments, one-command Setup Tour, Markdown chat export, compact KB management UI.

    [2026.4.24] v1.2.3 — Document attachments (PDF/DOCX/XLSX/PPTX), reasoning thinking-block display, Soul template editor, Co-Writer save-to-notebook.

    [2026.4.22] v1.2.2 — User-authored Skills system, chat input performance overhaul, TutorBot auto-start, Book Library UI, visualization fullscreen.

    [2026.4.21] v1.2.1 — Per-stage token limits, Regenerate response across all entry points, RAG & Gemma compatibility fixes.

    [2026.4.20] v1.2.0 — Book Engine "living book" compiler, multi-document Co-Writer, interactive HTML visualizations, Question Bank @-mention.

    [2026.4.18] v1.1.2 — Schema-driven Channels tab, RAG single-pipeline consolidation, externalized chat prompts.

    [2026.4.17] v1.1.1 — Universal "Answer now", Co-Writer scroll sync, unified settings panel, streaming Stop button.

    [2026.4.15] v1.1.0 — LaTeX block math overhaul, LLM diagnostic probe, Docker + local LLM guidance.

    [2026.4.14] v1.1.0-beta — Bookmarkable sessions, Snow theme, WebSocket heartbeat & auto-reconnect, embedding registry overhaul.

    [2026.4.13] v1.0.3 — Question Notebook with bookmarks & categories, Mermaid in Visualize, embedding mismatch detection, Qwen/vLLM compatibility, LM Studio & llama.cpp support, and Glass theme.

    [2026.4.11] v1.0.2 — Search consolidation with SearXNG fallback, provider switch fix, and frontend resource leak fixes.

    [2026.4.10] v1.0.1 — Visualize capability (Chart.js/SVG), quiz duplicate prevention, and o4-mini model support.

    [2026.4.10] v1.0.0-beta.4 — Embedding progress tracking with rate-limit retry, cross-platform dependency fixes, and MIME validation fix.

    [2026.4.8] v1.0.0-beta.3 — Native OpenAI/Anthropic SDK (drop litellm), Windows Math Animator support, robust JSON parsing, and full Chinese i18n.

    [2026.4.7] v1.0.0-beta.2 — Hot settings reload, MinerU nested output, WebSocket fix, and Python 3.11+ minimum.

    [2026.4.4] v1.0.0-beta.1 — Agent-native architecture rewrite (~200k lines): Tools + Capabilities plugin model, CLI & SDK, TutorBot, Co-Writer, Guided Learning, and persistent memory.

    [2026.1.23] v0.6.0 — Session persistence, incremental document upload, flexible RAG pipeline import, and full Chinese localization.

    [2026.1.18] v0.5.2 — Docling support for RAG-Anything, logging system optimization, and bug fixes.

    [2026.1.15] v0.5.0 — Unified service configuration, RAG pipeline selection per knowledge base, question generation overhaul, and sidebar customization.

    [2026.1.9] v0.4.0 — Multi-provider LLM & embedding support, new home page, RAG module decoupling, and environment variable refactor.

    [2026.1.5] v0.3.0 — Unified PromptManager architecture, GitHub Actions CI/CD, and pre-built Docker images on GHCR.

    [2026.1.2] v0.2.0 — Docker deployment, Next.js 16 & React 19 upgrade, WebSocket security hardening, and critical vulnerability fixes.

    ✨ v1.7.2 is live. pip install -U "deeptutor[full]" installs the full Web app and CLI; bare deeptutor installs core only. See the upgrade steps below for legacy CLI installations.

    📰 News

    • 2026-10-28 🚀 DeepTutor v1.7.0 is here! A fresh look, smoother navigation, and learning tools that work better together.
    • 2026-05-22 🌐 Official docs site live at deeptutor.info — guides, references, and capability tours in one place.
    • 2026-04-10 📄 Our paper is live on arXiv — read the preprint for the design and ideas behind DeepTutor.
    • 2026-01-01 🎊 Happy New Year! Join our Discord, WeChat, or Discussions — let's shape DeepTutor together.
    • 2025-12-29 🎓 DeepTutor is officially released!

    ✨ Key Features

    DeepTutor is an agent-native learning workspace that connects tutoring, research, creation, and practice in one extensible system.

    • One runtime, many learning modes — Chat, Quiz, Research, Visualize, Solve, Mastery Path, Reading, and more share session context while retaining purpose-built workflows.
    • A connected learning workspace — Home, Learning, and Resources connect Chat, Books, Reading, Practice, Task Board, Calendar, and Learning notebook with shared materials, progress, and learning context.
    • Grounded knowledge and reading — Build versioned libraries with LlamaIndex, PageIndex, GraphRAG, or LightRAG, connect external knowledge sources, and learn beside documents, video, and audio with source-linked citations.
    • Partners and subagents — Consult live agents such as Claude Code, Codex, and Grok CLI, import past conversations, or run persistent Partners with their own memory, resources, and IM channels.
    • Inspectable memory — L1 traces, L2 facts, and L3 synthesis make personalization visible and editable, with evidence links you can audit in the Memory Graph.
    • Extensible by design — Add personas, built-in or community skills, MCP services, CLI apps, and generation models through one agent-native runtime.

    🚀 Get Started

    Choose the installation path that fits how you want to use DeepTutor. Terminal-based installs share one runtime home: private settings live in data/user/settings/ under the launch directory, or under DEEPTUTOR_HOME / deeptutor start --home when set explicitly. After starting the app, configure a provider and model in Settings → Providers and Language models.

    Open DeepTutor bundles Python, Node.js, and the full learning workspace, so no terminal or separate runtime installation is needed. Download published desktop builds from the latest GitHub Release, choosing the installer for your computer below.

    For development previews, open a successful Desktop Release workflow run and download the matching Artifact. These previews require GitHub sign-in and expire after seven days; published release downloads do not.

    Your computerDownload targetInstaller
    Mac with Apple Siliconmacos-arm64Open the DMG and drag Open DeepTutor into Applications.
    Mac with Intelmacos-x64Open the DMG and drag Open DeepTutor into Applications.
    Windows x64windows-x64Run the Setup .exe, or extract the portable ZIP and launch Open DeepTutor.exe.

    Windows preview builds are unsigned and may show a SmartScreen warning. See the desktop guide for signing, local data, and source builds.

    Run the full Web app without installing Python or Node.js:

    docker run --rm --name deeptutor \
      -p 127.0.0.1:3782:3782 \
      -v deeptutor-data:/app/data \
      ghcr.io/hkuds/deeptutor:latest
    

    Open http://127.0.0.1:3782. The named volume preserves settings and local data; only port 3782 is required for the Web app. See the Docker guide for host workspaces, local model services, reverse proxies, and production deployment.

    Use Python 3.11–3.14 and Node.js 20.9+. In the modular 1.7.0 release, deeptutor[full] installs the Web app and CLI; bare deeptutor installs core chat and the SDK.

    mkdir -p my-deeptutor && cd my-deeptutor
    python -m pip install -U "deeptutor[full]"
    deeptutor init     # ports + LLM provider + optional embedding/search
    deeptutor start    # starts backend + frontend
    

    Open the URL printed in the terminal, by default http://127.0.0.1:3782. Press Ctrl+C to stop both services.

    Upgrading from 1.6.15 or earlier: stop DeepTutor, back up the runtime home, and uninstall a legacy deeptutor-cli package before installing the new family. Keep the same DEEPTUTOR_HOME, then run python -m pip check and deeptutor module list. See the PyPI and migration guide for the exact upgrade commands.

    Use Python 3.11–3.14 and Node.js 22 LTS to match CI and Docker.

    git clone --branch dev https://github.com/HKUDS/DeepTutor.git
    cd DeepTutor
    python3 -m venv .venv && source .venv/bin/activate
    python -m pip install --upgrade pip
    python -m pip install -r requirements/full.txt
    python -m pip install -e . --no-deps
    ( cd web && npm ci --legacy-peer-deps )
    deeptutor init
    deeptutor start --dev
    

    Use deeptutor start without --dev for a production build. Optional dependencies are installed from the repository root, for example python scripts/install_extras.py dev,partners,math-animator. See the source installation guide for Conda, extras, and troubleshooting, or the Agent Setup guide to let a terminal-capable agent perform and verify the setup.

    For a minimal terminal installation, use the core wheel; no Node.js or Web frontend is required:

    mkdir -p my-deeptutor && cd my-deeptutor
    python -m pip install -U deeptutor
    deeptutor init --cli
    deeptutor chat
    

    Core includes Chat, Ask Questions, the CLI, and the SDK; other capabilities and management commands require their matching feature modules. For the current dev source installation and optional dependencies, see the CLI-only guide. The CLI reference below covers one-shot runs and machine-readable output.

    Workspaces and advanced setup: see Content Workspaces, Local Data Persistence, Containerization and Sandbox Deployment, Configuration Reference, and Troubleshooting.

    📖 Explore DeepTutor

    Start with a workspace for each subject or project. Home, Learning, and Resources change with the active workspace; Partners and Personalization remain available across workspaces.

    AreaScopeWhat it contains
    HomeWorkspaceChat, Task Board, Calendar, and Learning notebook
    LearningWorkspaceBooks, Mastery Path, Immersive Reading, and Practice
    ResourcesWorkspaceChat History, Favorites, Learning journal, Question Bank, and Knowledge Center
    PartnersAccountPersistent companions, Partner Groups, resource access, and IM channels
    PersonalizationAccountMy Agents, Personas, Skills, MCP Services, CLI Apps, Memory, and Settings

    Home is where daily work begins: talk to the tutor, organize next actions, and develop your own notes in the current workspace. Calendar provides an account-wide view while retaining the source workspace for study events.

    Chat is the default capability and where most work begins. A single thread can talk normally, call tools, ground itself in selected knowledge bases, read attachments, generate images, consult subagents, write notebook records, and continue with the same context across turns.

    The tutor calls tools as needed and can pause to ask clarifying questions. Customize page, at the upper right, chooses the visible modes and Skills, MCP, Partners, Preferences, and voice-input controls. Under Starting prompts, add, edit, or remove the titles and prompts in Explain, Solve, Practice, Plan, and Research. Save applies your account preferences; Cancel discards edits, and Restore defaults brings back the original choices.

    User-toggleable tools are brainstorm, web_search, paper_search, zotero_search, reason, and geogebra_analysis — plus imagegen and videogen once you configure the matching generation model. Contextual tools such as rag, kb_files, knowledge_frontier, read_source, read_memory, write_memory, read_skill, load_tools, exec, web_fetch, ask_user, list_favorites, save_favorite, write_note, search_notes, question_bank, github, consult_subagent, workspace_list, workspace_read, workspace_search, workspace_present, and workspace_export mount automatically when the turn has the right context.

    Context comes in two kinds: sticky session context (capability, workspace or course, tools, knowledge bases, persona, model, and Reading / Mastery state) persists across turns; references (files, chat history, books, reading sections, notebooks, selected question-bank entries, imported agents) come from the + menu for one turn by default, or every turn when pinned. The voice button only transcribes the current message.

    Reasoning-only output limits. The shared agent loop retries once when internal reasoning uses the output budget without an answer or tool action. The default prompt strategy keeps the same budget. To stop immediately, set strategy: stop under capabilities.chat.reasoning_budget_recovery in your runtime settings/agents.yaml. An explicit larger budget can help models that need more room, at the cost of potentially higher latency and usage:

    capabilities:
      chat:
        responding:
          max_tokens: 8000
        reasoning_budget_recovery:
          strategy: increase_output_budget
          max_tokens: 16000
    

    The recovery limit must exceed the normal output limit and be at most 131072; choose a value supported by your model. It applies to one recovery call only, retains the existing round and request-timeout bounds, and leaves reasoning effort unchanged. The trace records the policy, old/new limits, effective per-call budgets, and accumulated usage. Visible answer truncation keeps its normal continuation. With the experimental typescript-native runtime, explicit stop or increase_output_budget policies select the shared Python effects host with the TypeScript scheduler before the turn begins; the result reports that compatibility reason.

    With the full profile, Home keeps Chat, Ask Questions, Quiz, Visualize, and Video Lesson one click away; Research for cited reports and Solve for worked reasoning sit under More Capabilities. Select text in an answer to open Little Tutor, a focused sidebar thread that stays nested under the source conversation. With at least three sent messages, the left gutter shows a tick for each question when space allows; hover to preview, click to jump back, or use Alt/Option + ↑/↓ to move between questions.

    Task Board tracks study tasks in To do, In progress, and Done, with notes, drag-and-drop or keyboard-accessible move controls, and a restorable archive. Tasks stay in the current workspace and require no model configuration.

    Calendar keeps personal study sessions, repeating events, and reminders together, with .ics export for Apple Calendar, Google Calendar, Outlook, and Thunderbird. Workspace overlays such as task due dates and reviews remain connected to their source workspace.

    The Learning notebook, formerly Co-Writer, organizes your own writing into pages, subpages, and blocks within the active workspace. Import Word documents, arrange a page tree, and insert original records from Favorites as evidence. Pages keep their save status visible and export as Markdown or Word; interactive content becomes static in Word.

    Export flashcards to Anki. Notebook pages can include Flash Cards. On a page that has them, open the page menu and choose Export flashcards (Anki). From the notebook review queue, choose Export all for Anki. In Anki, use File → Import and select the downloaded .txt file. Cards land in a deck named DeepTutor::<note title> with front/back fields, tags, and math preserved. Re-importing the same file updates existing cards instead of duplicating them. DeepTutor's own review schedule is not included.

    Discuss a passage or block with Dito: ask for an explanation, example, rewrite, or practice question. Conversations remain attached to the relevant page and line. Review proposed changes before accepting them, or insert an answer below the line and keep working. Favorites preserve source records; the notebook is where you build your own understanding.

    Learning is the current workspace's study area. Create an activity from Learning → New learning, then reopen it from All learning with its progress, conversations, and source context intact.

    ActivityUse it forWhat you keep
    BookBuild a structured, interactive book from selected sourcesEditable chapters, typed blocks, reading progress, and Page Chat
    Mastery PathBreak a learning goal into topics and guided studyA knowledge-point map, topic conversations, and mastery evidence
    Immersive ReadingWork beside a document, web page, video, or audio sourceSource-linked conversations, verified citations, highlights, notes, and progress
    PracticeReview collected or imported questionsAnswers, mistakes, recall ratings, and the next review date

    Book turns selected sources into an interactive living book — not a static PDF, but a reading environment built from typed blocks. A book can start from knowledge bases, Favorites, question banks, or chat history; the creation flow proposes a chapter outline before content is generated, so you review the shape instead of accepting a blind one-shot output.

    Each chapter compiles into editable typed blocks — text, callouts, quizzes, flash cards, timelines, code, figures, interactive HTML, animations, concept graphs, deep dives, and user notes — with its own Page Chat. Insert, move, regenerate, rewrite, or switch a block type; selected passages enter a reviewable learning-capture inbox. Progress, bookmarks, quiz attempts, captures, and Page Chat stay private per reader even when an admin book is shared read-only or for collaborative editing; shared deletion stays admin-only. Any book exports to Markdown, long compiles pause and resume, deeptutor book health flags source drift, and deeptutor book refresh-fingerprints refreshes the source baseline.

    Resources is the current workspace's reusable library. Keep original material, saved results, and learning records here so they can be attached to new conversations and activities without mixing projects.

    Knowledge bases are the document collections behind RAG — they ground Chat turns, Learning notebook edits, Book generation, and Partner conversations. What's distinctive is a choice of retrieval engines: LlamaIndex (the default, hybrid vector + BM25 with optional cross-encoder reranking and exact-flat or HNSW FAISS indexes), PageIndex (reasoning retrieval with page-level citations, hosted or self-hosted OSS), GraphRAG and LightRAG (knowledge-graph retrieval), LightRAG Server (retrieval offloaded to an external LightRAG instance you connect over HTTP), WeKnora (retrieval from a knowledge base in your self-hosted deployment, without a local index or document copy), Tencent IMA (a library you curate in IMA — searched, browsed, and written back to over its OpenAPI), MarginNote 4 (your MN4 study data — documents, excerpts, mind-map cards and the links between them — pushed in by the app's Add-on and navigated with dedicated tools), Kiwix (a searchable ZIM archive served over HTTP without local indexing), or a linked Obsidian vault the tutor reads and writes in place. Each KB is bound to one engine.

    Migrating an existing Obsidian, Hermes, or Markdown library? See Knowledge migration guide for connected-vault and indexed-copy paths.

    Creating a KB, you can create new (upload and index documents), link existing (reuse an index in place), or connect Kiwix (search one served ZIM archive on demand). Choose its storage workspace at creation; an existing KB can move between workspaces after a preview, keeping assignments and saved references. A KB can also track GitHub repositories (repo, branch, glob) or documentation-site URLs (bounded crawl depth and page count, re-synced every 24 h by default); sync hash-diffs added, changed, and removed content so followed documentation stays current without re-uploading, and linked folders pick up new or changed local files on sync. Re-indexing writes a new flat version-N directory and keeps prior ones, so a working index is never destroyed mid-rebuild. A single document can be removed even from an error-state base — dropping a file that failed to parse without a full delete-and-rebuild. Document parsing — Text-only, MinerU, Docling, Tika, markitdown, PyMuPDF4LLM, or LiteParse — and an optional image-description model are chosen in Settings → Knowledge & documents, with local model downloads off by default. Docling can also run in remote mode against a Docling Serve server (no local install or models needed), configured on that page (mode=remote, a server base URL, and an optional API key) or the DOCLING_MODE / DOCLING_API_BASE_URL / DOCLING_API_TOKEN environment variables. Tika is remote-only and points at the Apache Tika server configured on that page. The CLI mirrors the lifecycle with list/info/create/connect-kiwix/add/search/eval/eval-diff/set-default/delete, source add/remove commands, list-sources, and sync.

    The built-in LightRAG engine is installed with pip install 'deeptutor[rag-lightrag]'. That extra contains the supported LightRAG SDK but does not install MinerU. Choose MinerU independently in Document Parsing and either configure its cloud mode or install its current local CLI when structured parsing is wanted. MinerU accepts PDF, common raster images, DOCX, PPTX, and XLSX; the legacy magic-pdf command remains PDF-only. Text-only and the other parsing engines do not require MinerU.

    Native LightRAG queries and incremental indexing require the embedding configuration recorded by the published index, including the model, dimension, and endpoint identity. If it changes, restore the original configuration or rebuild with the current embedding; indexes without a recorded embedding identity require a rebuild. The knowledge-base detail and index-version views show recovery guidance, while files remain available for viewing and download.

    Scoring a knowledge base. With several engines available, "which one retrieves best here?" is an empirical question — so deeptutor kb eval answers it. Write a QA set (one JSON object per line: a query plus the gold passages an ideal retrieval should return), then score the KB with deeptutor kb eval <name> --dataset qa.jsonl --top-k 5 [--mode hybrid] [--save baseline.json]. Each case is retrieved through the same path a chat turn uses, its ranked citations are matched against the gold passages using exact text or lexical overlap (thresholds are tunable with --min-ratio; semantic equivalence is not assessed), and the run reports Recall@k / Precision@k / nDCG@k / MRR / MAP / Hit@k. Metrics are pure functions over the ranking; no model judges the output. Compare saved reports with deeptutor kb eval-diff baseline.json candidate.json for per-metric and per-case changes. Use --rewrite off or --rewrite standalone on kb eval to compare original and rewritten queries; reports retain rewrite provenance. Cases whose search failed (a missing index, bad credentials) carry no score and are reported separately rather than dragging the means down. PageIndex uses reasoning as retrieval and returns no ranked chunks, so it is excluded.

    {"query": "Why do transformers scale attention?", "gold": ["Scaling keeps the dot products from growing with the dimension."]}
    

    Chat History reopens conversations with their original learning context. Favorites preserves useful original conversations and results in movable collections with Markdown export, ready to insert into a Learning notebook. The Learning journal records the current mission, session handoff, and confirmed learning records. The Question Bank organizes questions, answers, explanations, and mistakes; select a set for Learning → Practice to review weak areas and schedule repetition.

    Partners belong to the account rather than one subject workspace. Each companion keeps its own identity, instructions, model policy, relationships, and channels while using either a private library or an existing workspace's resources.

    Every inbound Web or IM message becomes a normal ChatOrchestrator turn — a Partner is "a chat that has a personality and a phone number." Its SOUL.md, model selection, tool policy, and library remain editable after creation. A private Partner workspace copies assigned knowledge bases, skills, and Favorites collections; a bound workspace shares its current files and resources instead. Soul, conversations, and relationship memory stay separate in either mode.

    Partner Groups bring two or more Partners into one shared conversation with distinct seats, selectable discussion and shared-memory modes, and durable history. Authenticated users keep private Partner sessions and relationship memory even when a companion is shared.

    Schema-driven channels connect companions to Feishu, Telegram, Slack, Discord, DingTalk, QQ/NapCat, WeCom, WhatsApp, Zulip, Mattermost, Matrix, Mochat, and Microsoft Teams, depending on installed extras and credentials. Browser-based setup supports QR onboarding for selected channels. A Partner can also be connected through Personalization → My Agents and consulted from a normal Chat turn.

    Personalization follows the account across workspaces. Choose how the tutor should behave and which agents, skills, services, applications, and memories it may reuse; workspace and conversation selections can narrow that access further.

    Connect a live agent — Claude Code, Codex, Grok CLI, Antigravity, Kimi, opencode, MiMo Code, Hermes Agent, OpenClaw, DeepSeek Harness, or a Partner — and consult it from a Chat turn. DeepTutor runs the selected agent and streams its work into the Activity panel through consult_subagent; the Agent chip or @ keeps the connection attached to the session. Local harnesses use their own authentication, working directory, and session storage.

    Import past conversations from ChatGPT, Claude Code, and Codex as searchable, resumable references. ChatGPT uses an official conversations.json export; Claude history is selected by project or working directory, and Codex history by date. Reference an imported conversation through + → My Agents without turning it into DeepTutor's own voice.

    Personas reuse a voice, teaching style, or response policy and can also seed a Partner's soul. Skills package repeatable workflows as SKILL.md playbooks, with account-shared and workspace-local libraries. Import from EduHub browses community skills and installs them through a security gate (see Ecosystem).

    MCP Services authorize external tools, while CLI Apps expose installed programs from the CLI-Anything catalog through the execution sandbox. Workspace assignments and user grants determine which resources each turn may use.

    Memory is a file-backed, three-layer system you can read, curate, and audit — deliberately not a hidden vector store. L1 is the workspace mirror plus an append-only event trace (trace/<surface>/<date>.jsonl); L2 is per-surface curated facts (L2/<surface>.md) with references to L1 entities; L3 is cross-surface synthesis (L3/<profile|recent|scope|preferences>.md) that records its contributing L2 surfaces.

    The Memory Graph shows the whole pyramid — L3 synthesis at the centre, L2 in the middle ring, L1 traces on the outside — with exact L2 → L1 evidence edges and L3 → contributing-surface links. Memory is tracked across chat, notebook, quiz, kb, book, partner, and cowriter surfaces; the consolidator's Update / Audit / Dedup budgets are tuned in Settings → Memory.

    Settings is the operational control plane, opening on General for interface and model output language. Its searchable navigator links to independent pages: Personal covers Workspaces, Data migration, Appearance, and Usage statistics; Learning & conversation covers starting points, attachments, Video Learning, learner and guardian controls, Learning progress, and Memory; Models & services covers Providers, Language models, Task models, Embedding, Search, Voice, and Multimodal generation; Features & integrations covers tools, capability parameters, Partners & agents, and Knowledge & documents. System holds Network, Runtime status, and About; Archived chats lets you search, restore, or permanently delete archived conversations. Runtime status contains backend health, resident memory, and the Readiness matrix grading capability blockers, warnings, and suggestions. Workspaces keeps topic files and learning state separate, with verified migration and export under Data migration. A provider holds a vendor's address and credential for reuse by its service models; the model pages choose saved providers and configure model names and capabilities. Task models pin a small, fast model for automatic work — from naming conversations and writing starting points to Math Animator and Video Lesson repairs — and resolve to the active default when empty. Voice groups speech synthesis and transcription; Multimodal generation groups image and video models. Partners & agents configures local harnesses and a remote Hermes gateway.

    Vietnamese: In Settings → General, choose Tiếng Việt for Interface language and select Apply changes. Model output language is independent: choose Tiếng Việt there for Vietnamese replies, or keep another reply language while using the Vietnamese interface. Reply quality depends on the selected model's Vietnamese support.

    NVIDIA NIM embeddings: Select NVIDIA NIM under Settings → Embedding for text retrieval with nvidia/nemotron-3.5-embed-8b. The default endpoint is https://integrate.api.nvidia.com/v1/embeddings; a custom full endpoint is used as entered. Indexing sends input_type=passage, retrieval sends input_type=query, and connection checks default to passage. The hosted model defaults to 4096 dimensions and accepts a configured dimension from 1 to 4096. This binding supports text only; image embeddings and self-hosted model-specific options are outside its scope. Existing OpenAI-compatible profiles retain their previous request behavior; select the NIM binding and re-index when switching an existing knowledge base. See the NVIDIA API contract.

    Xiaomi MiMo speech. Add a Xiaomi MiMo provider with https://api.xiaomimimo.com/v1 and its API key, then add mimo-v2.5-tts under Settings → Voice. Choose a preset such as mimo_default, 冰糖, or 苏打, use wav or pcm16 output, and audition it before applying. Voice instructions control style and speaking speed. This adapter supports preset speech only; voice design and voice cloning require separate models and are not supported. If an older MiMo speech model was configured through the generic OpenAI-compatible adapter, recreate its speech entry using the Xiaomi MiMo provider so it uses the chat-completions protocol. See the [official MiMo speech gu