GitHub - HKUDS/DeepTutor: DeepTutor: Lifelong Personalized Tutoring. https://deeptutor.info/.
DeepTutor: Lifelong Personalized Tutoring Features · Get Started · Explore · CLI · Ecosystem · Community 🤝 We welcome any kinds of contributing! Vote on roadmap items or propose new ones at Roadmap , and see our Contributing Guide for branching strategy,
社区作者 · Aitroys 管理员
它解决什么问题
DeepTutor: Lifelong Personalized Tutoring
Features · Get Started · Explore · CLI · Ecosystem · Community
🤝 We welcome any kinds of contributing! Vote on roadmap items or propose new ones at Roadmap , and see our Contributing Guide for branching strategy, coding standards, and how to get started.
📦 Releases
[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/ .
Past releases (more than 1 week ago)
[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.
📰 News
- 2026-05-22 🌐 Official docs site live at deeptutor.info — guides, references, and capability tours in one place.
- 2026-04-19 🎉 20k stars in 111 days! Thank you for the support toward truly personalized, intelligent tutoring.
- 2026-04-10 📄 Our paper is live on arXiv — read the preprint for the design and ideas behind DeepTutor.
- 2026-02-06 🚀 10k stars in just 39 days! A huge thank you to our incredible community.
- 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, problem solving, quiz generation, research, visualization, and mastery practice in one extensible system.
- One runtime for every mode — Chat, Quiz, Research, Visualize, Solve, and Mastery Path run on the same agent loop, so you switch the objective, not the engine, and context moves with the learner.
- Connected learning context — Knowledge bases, books, Co-Writer drafts, notebooks, question banks, personas, and Memory stay available across every workflow instead of living in isolated tools.
- Subagents and Partners — consult a live coding CLI (Claude Code, Codex, Gemini, Kimi, opencode, or MiMo) or a Partner from any turn (or import their past conversations), and run persistent IM companions on the same brain.
- Multi-engine knowledge — versioned RAG libraries across LlamaIndex, PageIndex, GraphRAG, LightRAG, or a linked Obsidian vault, with pluggable document parsing.
- Extensible tools and skills — built-in tools, MCP servers, CLI apps, image / video / voice generation models, and installable community skills from EduHub.
- Inspectable memory — L1 traces, L2 surface summaries, and L3 synthesis make personalization visible and editable, with a Memory Graph that traces every claim back to its evidence.
🚀 Get Started
DeepTutor ships four installation paths. They all share one workspace layout: settings live in data/user/settings/ under the directory you launch from (or under DEEPTUTOR_HOME / deeptutor start --home if you set one explicitly).
For the full app, the recommended flow is pick a workspace directory → install → deeptutor init → deeptutor start .
Option 1 — Install From PyPI · full local Web app + CLI, no clone required Full local Web app + CLI, no clone required. Needs Python 3.11–3.13 and a Node.js 20+ runtime on PATH (the packaged Next.js standalone server is spawned by deeptutor start ).
mkdir -p my-deeptutor && cd my-deeptutorpip install -U deeptutordeeptutor init # prompts for ports + LLM provider + optional embedding deeptutor start # starts backend + frontend; keep the terminal open
deeptutor init prompts for backend port (default 8001 ), frontend port (default 3782 ), LLM provider / base URL / API key / model, and an optional embedding provider for Knowledge Base / RAG.
After deeptutor start , open the frontend URL printed in the terminal — by default http://127.0.0.1:3782 . Press Ctrl+C in that terminal to stop both backend and frontend.
Skipping deeptutor init is fine for a quick trial; the app boots with default ports and empty model settings, configure them later in Settings → Models .
Option 2 — Install From Source · develop against a checkout For development against a checkout. Use Python 3.11–3.13 and Node.js 22 LTS to match CI and Docker.
git clone https://github.com/HKUDS/DeepTutor.gitcd DeepTutorCreate a venv (macOS/Linux). Windows PowerShell:
py -3.11 -m venv .venv ; .\.venv\Scripts\Activate.ps1
python3 -m venv .venv && source .venv/bin/activatepython -m pip install --upgrade pipInstall backend + frontend deps
python -m pip install -e .( cd web && npm ci --legacy-peer-deps )
deeptutor init deeptutor start --dev
deeptutor start builds the local web/ frontend for production once and reuses it; --dev runs Next.js with HMR. Config layout, ports, and Ctrl+C match Option 1.
Conda environment (instead of venv )conda create -n deeptutor python=3.11conda activate deeptutorpython -m pip install --upgrade pipOptional install extras — dev / partners / matrix / math-animator
pip install -e " .[dev] " # tests/lint toolspip install -e " .[partners] " # Partner IM channel SDKs + MCP clientpip install -e " .[matrix] " # Matrix channel without E2EE/libolmpip install -e " .[matrix-e2e] " # Matrix E2EE; requires libolmpip install -e " .[math-animator] " # Manim addon; requires LaTeX/ffmpeg/system libsFrontend dependency tweaks & dev-server troubleshooting Changing frontend dependencies: run npm install --legacy-peer-deps to refresh web/package-lock.json , then commit both web/package.json and web/package-lock.json .
Stuck dev server: if deeptutor start --dev reports an existing frontend that isn't responding, stop the PID it prints. If no Next.js process is actually running, the lock files are stale — remove them and retry:
rm -f web/.next/dev/lock web/.next/lock deeptutor start --dev
Option 3 — Docker · one self-contained container One container for the full Web app. Images on GitHub Container Registry:
- ghcr.io/hkuds/deeptutor:latest — stable release
- ghcr.io/hkuds/deeptutor:pre — pre-release, when available
See CONTAINERIZATION.md for podman/rootless/read-only-rootfs deployments and the full per-installation guide.
docker run --rm --name deeptutor \-p 127.0.0.1:3782:3782 \ -v deeptutor-data:/app/data \ ghcr.io/hkuds/deeptutor:latest
Only 3782 needs to be published. The browser talks exclusively to the frontend origin; the Next.js middleware ( web/proxy.ts ) forwards /api/* and /ws/* to the FastAPI backend inside the container . Publishing 8001 ( -p 127.0.0.
1:8001:8001 ) is optional — handy only for hitting the API directly with curl or scripts.
Open http://127.0.0.1:3782 . The container creates /app/data/user/settings/*.json on first boot; configure model providers from the Web Settings page. Config, API keys, logs, workspace files, memory, and knowledge bases persist in the deeptutor-data volume.
- Different host ports: change the left side of each -p host:container mapping (e.g. -p 127.0.0.1:8088:3782 ). If you change container-side ports in /app/data/user/settings/system.json , restart and update the right side of each mapping to match.
- Detached: add -d , then docker logs -f deeptutor to follow, docker stop deeptutor to stop, docker rm deeptutor before reusing the name. The deeptutor-data volume keeps your settings and workspace across restarts.
Remote Docker / reverse proxy: the browser only talks to the frontend origin ( :3782 ); the in-container Next.js middleware forwards /api/* and /ws/* to the backend server-side.
For the common single-container case you don't configure an API base at all — just point your reverse proxy / TLS terminator at :3782 . You only need an API base for a split deployment
(backend in a separate container/host)
set next_public_api_base indata/user/settings/system.json to the in-network address the frontend server uses to reach the backend (it's read server-side, never sent to the browser).
{ "next_public_api_base" : " http://backend:8001 " }
next_public_api_base_external (and its alias public_api_base ) are accepted as lower-precedence fallbacks. CORS uses frontend origins , not API URLs. With auth disabled, DeepTutor permits normal HTTP/HTTPS browser origins by default. With auth enabled, add exact frontend origins:
{ "cors_origins" : [ " https://deeptutor.example.com " ] }
Connecting to Ollama / LM Studio / llama.cpp / vLLM / Lemonade on the host Inside Docker, localhost is the container itself, not your host machine. To reach a model service running on the host, use the host gateway (recommended):
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
Then in Settings → Models , point the provider Base URL at 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) usually resolves host.docker.internal without --add-host . On Linux, the flag is the portable way to create that hostname on modern Docker Engine.Linux alternative — host networking: add --network=host and drop the -p flags. The container shares the host network directly, so open http://127.0.0.1:3782 (or the frontend_port in system.
json ), and host services can be reached with normal localhost URLs like http://127.0.0.1:11434/v1 .
Note that host networking exposes container ports directly on the host and may conflict with existing services — to keep them on loopback, set BACKEND_HOST=127.0.0.1 and FRONTEND_HOST=127.0.0.1 (see CONTAINERIZATION.md ).
Option 4 — CLI Only · no Web UI, from a source checkout When you don't need the Web UI. The CLI-only package is installed from a source checkout, not from PyPI.
git clone https://github.com/HKUDS/DeepTutor.gitcd DeepTutorCreate a 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/activatepython -m pip install --upgrade pippython -m pip install -e ./packaging/deeptutor-clideeptutor init --cli deeptutor chat
deeptutor init --cli shares the same data/user/settings/ layout as the full app but skips the backend/frontend port prompts and defaults embeddings to off (choose Yes if you plan to use deeptutor kb … or RAG tools).
It still writes a complete runtime layout ( system.json , auth.json , integrations.json , model_catalog.json , main.yaml , agents.yaml ) and still prompts for the active LLM provider and model.
Common commands deeptutor chat # interactive 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
The local deeptutor-cli install ships no Web assets or server dependencies. Keep the source checkout around — the editable install points to it. To add the Web app later, install the PyPI package (Option 1) and run deeptutor init + deeptutor start from the same workspace.
Code Execution Sandbox (office skills) · running model-generated code for docx / pdf / pptx / xlsx The built-in office skills — docx / pdf / pptx / xlsx — work by having the model write a short Python script ( python-docx , reportlab , openpyxl , …), run it through the exec / code_execution tools, and hand back a download URL.
Those tools mount whenever a sandbox backend is active, which it is by default in every deployment shape:
subprocess sandbox runs the model's code (on the host locally, or inside the container under Docker — the container being its own isolation boundary).
- Local (Option 1 / 2) and Docker (Option 3, single container): a restricted
sidecar ( Dockerfile.runner ) via DEEPTUTOR_SANDBOX_RUNNER_URL — the strongest posture, and preferred automatically when present.
- docker-compose: routed instead to a hardened, least-privileged runner
The subprocess sandbox is controlled by the sandbox_allow_subprocess setting in data/user/settings/system.json (default true ). Running model-generated code on your host is a real trust decision — set it to false (or export
DEEPTUTOR_SANDBOX_ALLOW_SUBPROCESS=0 ) to disable host-side execution, at thecost of the office skills no longer being able to produce files.
Configuration reference — config files under data/user/settings/ (JSON/YAML) Everything under data/user/settings/ is plain JSON/YAML. The Settings page in the browser is the recommended editor.
File Purpose
model_catalog.json LLM, embedding, and search provider profiles; API keys; active models
system.json Backend/frontend ports, public API base, CORS, SSL verification, attachment directory and upload/extraction limits
auth.json Optional auth toggle, username, password hash, token/cookie settings
integrations.json Optional PocketBase and sidecar integration settings
interface.json UI and model output language / theme / sidebar preferences
main.yaml Runtime behavior defaults and path injection
agents.yaml Capability/tool temperature and token settings
Project-root .env is not read as an application config file. For a minimal model setup, open Settings → Models , add an LLM profile (Base URL / API key / model name), and save. Add an embedding profile only if you plan to use Knowledge Base / RAG features.
📖 Explore DeepTutor
Start with the main surfaces you will use day to day: Chat, Partners, My Agents, Co-Writer, Book, Knowledge Center, Learning Space, Memory, and Settings. The tour then covers Multi-User deployments for shared, isolated workspaces.
🏗️ System architecture
💬 Chat — The Agent Loop You Actually Use 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 loop is deliberately simple: the model thinks in rounds, calls tools when useful, observes the results, and finishes with a tool-free message.
ask_user is special — instead of guessing, the agent can pause the turn, ask a structured clarifying question, and resume once you answer.
User-toggleable tools are brainstorm , web_search , paper_search , reason , and geogebra_analysis — plus imagegen and videogen once you configure the matching generation model.
Contextual tools such as rag , kb_files , read_source , read_memory , write_memory , read_skill , load_tools , exec , web_fetch , ask_user , list_notebook , write_note , github , and consult_subagent mount automatically when the turn has the right context.
Context comes in two kinds: sticky session context (subagent, knowledge bases, persona, model, voice) lives on the composer toolbar and persists across turns; one-time references (files, chat history, books, notebooks, question bank, imported agents) come from the + menu for a single turn.
Chat is also the launch point for deeper capabilities: Quiz for question generation, Research for cited reports, Visualize for charts / diagrams / animations, and — under More Capabilities — Solve for worked reasoning and Mastery Path for learning-plan flows.
🤝 Partner — Persistent Companions on the Same Brain
Partners are persistent companions with their own soul, model policy, library, memory, and channels. They are not a separate bot engine: every inbound web or IM message becomes a normal ChatOrchestrator turn inside a partner-scoped workspace.
A partner is "a chat that has a personality and a phone number."
Each partner has a SOUL.md , model selection, channels, tool policy, and assigned library. Knowledge bases, skills, and notebooks are copied into data/partners/<id>/workspace/ , so the same RAG, skill, notebook, and memory tools work without special cases.
A partner reads its owner's memory but writes only its own.
The channel layer is schema-driven and can connect to IM platforms such as Feishu, Telegram, Slack, Discord, DingTalk, QQ/NapCat, WeCom, WhatsApp, Zulip, Mattermost, Matrix, Mochat, and Microsoft Teams depending on installed extras and configured credentials.
A partner can also be connected as a subagent and consulted from a normal chat turn — see My Agents below.
🧑🚀 My Agents — Consult & Import Other Agents
My Agents turns other agents into context for DeepTutor, and does two distinct things.
Connect a live agent — a Claude Code, Codex, Gemini, Kimi, opencode, or MiMo Code CLI on your machine, or one of your Partners — and consult it from inside a chat turn: DeepTutor actually runs the other agent and streams its work into the Activity panel via the consult_subagent tool.
Select it with the Agent chip (or type @ ), and set how many rounds the consult may take.
Import past conversations — bring in your existing Claude Code and Codex history as named, searchable, resumable agents. Pick which days to import; refreshing re-syncs them.
Reference an imported conversation from any chat turn via + → My Agents, and DeepTutor reads it as a third-party transcript — it stays their conversation, not DeepTutor's own voice.
✍️ Co-Writer — Selection-Aware Markdown Drafting
Co-Writer is a split-view Markdown workspace for reports, tutorials, notes, and long-form learning artifacts. Documents autosave and render a live preview (KaTeX math, diagram fences), and can be saved back into notebooks when a draft becomes reusable context.
Its defining idea is surgical editing : select a span and ask DeepTutor to rewrite, expand, or shorten it. The edit agent can ground the change in a knowledge base or we
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
[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/ . Past releases (more than 1 week ago) [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 sys