[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-2313":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":14,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},2313,"DeepTutor","HKUDS\u002FDeepTutor","HKUDS","DeepTutor: Agent-native, Open-sourced Personalized Tutoring. https:\u002F\u002Fdeeptutor.info\u002F.","http:\u002F\u002Farxiv.org\u002Fabs\u002F2604.26962",null,"Python",24707,3337,145,32,0,34,158,890,45,"Apache License 2.0",false,"main",true,[26,27,28,29,30,31,32,33,34],"ai-agents","ai-tutor","clawdbot","cli-tool","deepresearch","interactive-learning","large-language-models","multi-agent-systems","rag","2026-06-12 02:00:40","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"assets\u002Flogo-ver2.png\" alt=\"DeepTutor\" width=\"140\" style=\"border-radius: 15px;\">\n\n# DeepTutor: Agent-Native Personalized Tutoring\n\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F17099\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F17099\" alt=\"HKUDS%2FDeepTutor | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\n[![Python 3.11+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![Next.js 16](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNext.js-16-000000?style=flat-square&logo=next.js&logoColor=white)](https:\u002F\u002Fnextjs.org\u002F)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue?style=flat-square)](LICENSE)\n[![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FHKUDS\u002FDeepTutor?style=flat-square&color=brightgreen)](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases)\n[![arXiv](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FarXiv-2604.26962-b31b1b?style=flat-square&logo=arxiv&logoColor=white)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.26962)\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Community-5865F2?style=flat-square&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FeRsjPgMU4t)\n[![Feishu](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFeishu-Group-00D4AA?style=flat-square&logo=feishu&logoColor=white)](.\u002FCommunication.md)\n[![WeChat](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWeChat-Group-07C160?style=flat-square&logo=wechat&logoColor=white)](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fissues\u002F78)\n\n[Features](#-key-features) · [Get Started](#-get-started) · [Explore](#-explore-deeptutor) · [TutorBot](#-tutorbot--persistent-autonomous-ai-tutors) · [CLI](#%EF%B8%8F-deeptutor-cli--agent-native-interface) · [Roadmap](#%EF%B8%8F-roadmap) · [Community](#-community--ecosystem)\n\n[🇨🇳 中文](assets\u002FREADME\u002FREADME_CN.md) · [🇯🇵 日本語](assets\u002FREADME\u002FREADME_JA.md) · [🇪🇸 Español](assets\u002FREADME\u002FREADME_ES.md) · [🇫🇷 Français](assets\u002FREADME\u002FREADME_FR.md) · [🇸🇦 العربية](assets\u002FREADME\u002FREADME_AR.md) · [🇷🇺 Русский](assets\u002FREADME\u002FREADME_RU.md) · [🇮🇳 हिन्दी](assets\u002FREADME\u002FREADME_HI.md) · [🇵🇹 Português](assets\u002FREADME\u002FREADME_PT.md) · [🇹🇭 ภาษาไทย](assets\u002FREADME\u002FREADME_TH.md)  · 🇵🇱 [Polski](assets\u002FREADME\u002FREADME_PL.md)\n\n\u003C\u002Fdiv>\n\n---\n\n> 🤝 **We welcome any kinds of contributing!** See our [Contributing Guide](CONTRIBUTING.md) for branching strategy, coding standards, and how to get started.\n\n### 📦 Releases\n\n> **[2026.5.4]** [v1.3.7](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.7) — Thinking-model\u002Fprovider fixes, visible Knowledge index history, and safer Co-Writer clear\u002Ftemplate editing.\n\n> **[2026.5.3]** [v1.3.6](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.6) — Catalog-based model selection for chat and TutorBot, safer RAG re-indexing, OpenAI Responses token-limit fixes, and Skills editor validation.\n\n> **[2026.5.2]** [v1.3.5](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.5) — Smoother local launch settings, safer RAG queries, cleaner local embedding auth, and Settings dark-mode polish.\n\n> **[2026.5.1]** [v1.3.4](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.4) — Book page chat persistence and rebuild flows, chat-to-book references, stronger language\u002Freasoning handling, RAG document extraction hardening.\n\n> **[2026.4.30]** [v1.3.3](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.3) — NVIDIA NIM + Gemini embedding support, unified Space context for chat history\u002Fskills\u002Fmemory, session snapshots, RAG re-index resilience.\n\n> **[2026.4.29]** [v1.3.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.2) — Transparent embedding endpoint URLs, RAG re-index resilience for invalid persisted vectors, memory cleanup for thinking-model output, Deep Solve runtime fix.\n\n> **[2026.4.28]** [v1.3.1](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.1) — Stability: safer RAG routing & embedding validation, Docker persistence, IME-safe input, Windows\u002FGBK robustness.\n\n> **[2026.4.27]** [v1.3.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.3.0) — Versioned KB indexes with re-index workflow, rebuilt Knowledge workspace, embedding auto-discovery with new adapters, Space hub.\n\n> **[2026.4.25]** [v1.2.5](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.5) — Persistent chat attachments with file-preview drawer, attachment-aware capability pipelines, TutorBot Markdown export.\n\n> **[2026.4.25]** [v1.2.4](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.4) — Text\u002Fcode\u002FSVG attachments, one-command Setup Tour, Markdown chat export, compact KB management UI.\n\n> **[2026.4.24]** [v1.2.3](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.3) — Document attachments (PDF\u002FDOCX\u002FXLSX\u002FPPTX), reasoning thinking-block display, Soul template editor, Co-Writer save-to-notebook.\n\n> **[2026.4.22]** [v1.2.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.2) — User-authored Skills system, chat input performance overhaul, TutorBot auto-start, Book Library UI, visualization fullscreen.\n\n> **[2026.4.21]** [v1.2.1](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.1) — Per-stage token limits, Regenerate response across all entry points, RAG & Gemma compatibility fixes.\n\n> **[2026.4.20]** [v1.2.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.2.0) — Book Engine \"living book\" compiler, multi-document Co-Writer, interactive HTML visualizations, Question Bank @-mention.\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Past releases (more than 2 weeks ago)\u003C\u002Fb>\u003C\u002Fsummary>\n\n> **[2026.4.18]** [v1.1.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.1.2) — Schema-driven Channels tab, RAG single-pipeline consolidation, externalized chat prompts.\n\n> **[2026.4.17]** [v1.1.1](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.1.1) — Universal \"Answer now\", Co-Writer scroll sync, unified settings panel, streaming Stop button.\n\n> **[2026.4.15]** [v1.1.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.1.0) — LaTeX block math overhaul, LLM diagnostic probe, Docker + local LLM guidance.\n\n> **[2026.4.14]** [v1.1.0-beta](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.1.0-beta) — Bookmarkable sessions, Snow theme, WebSocket heartbeat & auto-reconnect, embedding registry overhaul.\n\n> **[2026.4.13]** [v1.0.3](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.3) — Question Notebook with bookmarks & categories, Mermaid in Visualize, embedding mismatch detection, Qwen\u002FvLLM compatibility, LM Studio & llama.cpp support, and Glass theme.\n\n> **[2026.4.11]** [v1.0.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.2) — Search consolidation with SearXNG fallback, provider switch fix, and frontend resource leak fixes.\n\n> **[2026.4.10]** [v1.0.1](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.1) — Visualize capability (Chart.js\u002FSVG), quiz duplicate prevention, and o4-mini model support.\n\n> **[2026.4.10]** [v1.0.0-beta.4](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.0-beta.4) — Embedding progress tracking with rate-limit retry, cross-platform dependency fixes, and MIME validation fix.\n\n> **[2026.4.8]** [v1.0.0-beta.3](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.0-beta.3) — Native OpenAI\u002FAnthropic SDK (drop litellm), Windows Math Animator support, robust JSON parsing, and full Chinese i18n.\n\n> **[2026.4.7]** [v1.0.0-beta.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.0-beta.2) — Hot settings reload, MinerU nested output, WebSocket fix, and Python 3.11+ minimum.\n\n> **[2026.4.4]** [v1.0.0-beta.1](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv1.0.0-beta.1) — Agent-native architecture rewrite (~200k lines): Tools + Capabilities plugin model, CLI & SDK, TutorBot, Co-Writer, Guided Learning, and persistent memory.\n\n> **[2026.1.23]** [v0.6.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.6.0) — Session persistence, incremental document upload, flexible RAG pipeline import, and full Chinese localization.\n\n> **[2026.1.18]** [v0.5.2](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.5.2) — Docling support for RAG-Anything, logging system optimization, and bug fixes.\n\n> **[2026.1.15]** [v0.5.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.5.0) — Unified service configuration, RAG pipeline selection per knowledge base, question generation overhaul, and sidebar customization.\n\n> **[2026.1.9]** [v0.4.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.4.0) — Multi-provider LLM & embedding support, new home page, RAG module decoupling, and environment variable refactor.\n\n> **[2026.1.5]** [v0.3.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.3.0) — Unified PromptManager architecture, GitHub Actions CI\u002FCD, and pre-built Docker images on GHCR.\n\n> **[2026.1.2]** [v0.2.0](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Freleases\u002Ftag\u002Fv0.2.0) — Docker deployment, Next.js 16 & React 19 upgrade, WebSocket security hardening, and critical vulnerability fixes.\n\n\u003C\u002Fdetails>\n\n### 📰 News\n\n> **[2026.4.19]** 🎉 We've reached 20k stars after 111 days! Thank you for the incredible support — we're committed to continuous iteration toward truly personalized, intelligent tutoring for everyone.\n\n> **[2026.4.10]** 📄 Our paper is now live on arXiv! Read the [preprint](https:\u002F\u002Farxiv.org\u002Fabs\u002F2604.26962) to learn more about the design and ideas behind DeepTutor.\n\n> **[2026.4.4]** Long time no see! ✨ DeepTutor v1.0.0 is finally here — an agent-native evolution featuring a ground-up architecture rewrite, TutorBot, and flexible mode switching under the Apache-2.0 license. A new chapter begins, and our story continues!\n\n> **[2026.2.6]** 🚀 We've reached 10k stars in just 39 days! A huge thank you to our incredible community for the support!\n\n> **[2026.1.1]** Happy New Year! Join our [Discord](https:\u002F\u002Fdiscord.gg\u002FeRsjPgMU4t), [WeChat](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fissues\u002F78), or [Discussions](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fdiscussions) — let's shape the future of DeepTutor together!\n\n> **[2025.12.29]** DeepTutor is officially released!\n\n\n## ✨ Key Features\n\n- **Unified Chat Workspace** — Six modes, one thread. Chat, Deep Solve, Quiz Generation, Deep Research, Math Animator, and Visualize share the same context — start a conversation, escalate to multi-agent problem solving, generate quizzes, visualize concepts, then deep-dive into research, all without losing a single message.\n- **AI Co-Writer** — A multi-document Markdown workspace where AI is a first-class collaborator. Select text, rewrite, expand, or summarize — drawing from your knowledge base and the web. Every piece feeds back into your learning ecosystem.\n- **Book Engine** — Turn your materials into structured, interactive \"living books\". A multi-agent pipeline designs outlines, retrieves relevant sources, and compiles rich pages with 14 block types — quizzes, flash cards, timelines, concept graphs, interactive demos, and more.\n- **Knowledge Hub** — Upload PDFs, Markdown, and text files to build RAG-ready knowledge bases. Organize insights in color-coded notebooks, revisit quiz questions in the Question Bank, and create custom Skills that shape how DeepTutor teaches you. Your documents don't just sit there — they actively power every conversation.\n- **Persistent Memory** — DeepTutor builds a living profile of you: what you've studied, how you learn, and where you're heading. Shared across all features and TutorBots, it gets sharper with every interaction.\n- **Personal TutorBots** — Not chatbots — autonomous tutors. Each TutorBot lives in its own workspace with its own memory, personality, and skill set. They set reminders, learn new abilities, and evolve as you grow. Powered by [nanobot](https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot).\n- **Agent-Native CLI** — Every capability, knowledge base, session, and TutorBot is one command away. Rich terminal output for humans, structured JSON for AI agents and pipelines. Hand DeepTutor a [`SKILL.md`](SKILL.md) and your agents can operate it autonomously.\n\n---\n\n## 🚀 Get Started\n\n### Prerequisites\n\nBefore you begin, make sure the following are installed on your system:\n\n| Requirement | Version | Check | Notes |\n|:---|:---|:---|:---|\n| [Git](https:\u002F\u002Fgit-scm.com\u002F) | Any | `git --version` | For cloning the repository |\n| [Python](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F) | 3.11+ | `python --version` | Backend runtime |\n| [Node.js](https:\u002F\u002Fnodejs.org\u002F) | 20.9+ | `node --version` | Frontend runtime for local Web installs |\n| [npm](https:\u002F\u002Fwww.npmjs.com\u002F) | Bundled with Node.js | `npm --version` | Installed with Node.js |\n\n> **Windows only (missing compiler fix):** If you do not have Visual Studio, install [Visual Studio Build Tools](https:\u002F\u002Fvisualstudio.microsoft.com\u002Fvisual-cpp-build-tools\u002F) and ensure the **Desktop development with C++** workload is selected.\n\nYou'll also need an **API key** from at least one LLM provider (e.g. [OpenAI](https:\u002F\u002Fplatform.openai.com\u002Fapi-keys), [DeepSeek](https:\u002F\u002Fplatform.deepseek.com\u002F), [Anthropic](https:\u002F\u002Fconsole.anthropic.com\u002F)). The Setup Tour will walk you through entering it.\n\n### Option A — Setup Tour (Recommended)\n\nA guided CLI wizard for first-time local Web setup. It checks your environment, installs Python and Node.js dependencies, writes `.env`, and lets you choose optional add-ons such as TutorBot, Matrix, and Math Animator.\n\n**1. Clone the repository**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor.git\ncd DeepTutor\n```\n\n**2. Create and activate a Python environment**\n\nPick **one** of the following based on your system.\n\nmacOS \u002F Linux with `venv`:\n\n```bash\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npython -m pip install --upgrade pip\n```\n\nWindows PowerShell with `venv`:\n\n```powershell\npy -3.11 -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\npython -m pip install --upgrade pip\n```\n\nAnaconda \u002F Miniconda:\n\n```bash\nconda create -n deeptutor python=3.11\nconda activate deeptutor\npython -m pip install --upgrade pip\n```\n\n**3. Launch the guided tour**\n\n```bash\npython scripts\u002Fstart_tour.py\n```\n\nDuring the install step, the tour asks which dependency profile you want:\n\n| Choice | What it installs | When to choose it |\n|:---|:---|:---|\n| Web app (recommended) | CLI + API server + RAG\u002Fdocument parsing | Most first-time users |\n| Web + TutorBot | Adds TutorBot engine and common channel SDKs | If you want autonomous tutor bots or channel integrations |\n| Web + TutorBot + Matrix | Adds Matrix \u002F Element channel support | Only if you already have `libolm` installed or are ready to install it |\n| Math Animator add-on | Installs Manim separately | Only if you need animation generation and have LaTeX\u002Fffmpeg\u002Fsystem build tools ready |\n\nOnce the wizard finishes:\n\n```bash\npython scripts\u002Fstart_web.py\n```\n\n> **Daily launch** — The tour is only needed once. From now on, keep that Python environment activated and run `python scripts\u002Fstart_web.py` to boot both the backend and frontend. The frontend URL is printed in the terminal. Re-run `start_tour.py` only if you want to reconfigure providers, change ports, or install optional add-ons.\n\n> **Updating a local install** — If you installed with Option A or Option B from a git clone, run `python scripts\u002Fupdate.py`. The updater fetches the remote for your current branch, shows the local-vs-remote commit gap, asks you to confirm the detected branch mapping, then performs a safe fast-forward pull.\n\n### Option B — Manual Local Install\n\nUse this path if you prefer to run each setup command yourself.\n\n**1. Clone the repository**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor.git\ncd DeepTutor\n```\n\n**2. Create and activate a Python environment**\n\nPick **one** of the following.\n\nmacOS \u002F Linux with `venv`:\n\n```bash\npython3 -m venv .venv\nsource .venv\u002Fbin\u002Factivate\npython -m pip install --upgrade pip\n```\n\nWindows PowerShell with `venv`:\n\n```powershell\npy -3.11 -m venv .venv\n.\\.venv\\Scripts\\Activate.ps1\npython -m pip install --upgrade pip\n```\n\nAnaconda \u002F Miniconda:\n\n```bash\nconda create -n deeptutor python=3.11\nconda activate deeptutor\npython -m pip install --upgrade pip\n```\n\n**3. Install dependencies**\n\n```bash\n# Backend + Web server dependencies. Includes CLI, RAG, document parsing,\n# and built-in LLM provider SDKs.\npython -m pip install -e \".[server]\"\n\n# Optional add-ons — install only the ones you need:\n#   python -m pip install -e \".[tutorbot]\"       # TutorBot engine + channel SDKs\n#   python -m pip install -e \".[tutorbot,matrix]\" # TutorBot + Matrix channel; requires libolm\n#   python -m pip install -e \".[math-animator]\"  # Manim; also requires LaTeX\u002Fffmpeg\u002Fsystem build tools\n#   python -m pip install -e \".[all]\"            # Everything above + dev tools\n\n# Frontend dependencies. Requires Node.js 20.9+.\ncd web\nnpm install\ncd ..\n```\n\n**4. Configure environment**\n\n```bash\ncp .env.example .env\n```\n\nEdit `.env` and fill in at least the LLM fields. Embedding fields are needed for Knowledge Base features and can be left for later if you only want to try chat first.\n\n```dotenv\n# LLM (required for chat)\nLLM_BINDING=openai\nLLM_MODEL=gpt-4o-mini\nLLM_API_KEY=sk-xxx\nLLM_HOST=https:\u002F\u002Fapi.openai.com\u002Fv1\n\n# Embedding (required for Knowledge Base \u002F RAG)\nEMBEDDING_BINDING=openai\nEMBEDDING_MODEL=text-embedding-3-large\nEMBEDDING_API_KEY=sk-xxx\n# v1.3.0+: use the full endpoint URL, not just https:\u002F\u002Fapi.openai.com\u002Fv1\nEMBEDDING_HOST=https:\u002F\u002Fapi.openai.com\u002Fv1\u002Fembeddings\n# Leave empty unless you need to force a specific dimension.\nEMBEDDING_DIMENSION=\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Supported LLM Providers\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Provider | Binding | Default Base URL |\n|:--|:--|:--|\n| AiHubMix | `aihubmix` | `https:\u002F\u002Faihubmix.com\u002Fv1` |\n| Anthropic | `anthropic` | `https:\u002F\u002Fapi.anthropic.com\u002Fv1` |\n| Azure OpenAI | `azure_openai` | — |\n| BytePlus | `byteplus` | `https:\u002F\u002Fark.ap-southeast.bytepluses.com\u002Fapi\u002Fv3` |\n| BytePlus Coding Plan | `byteplus_coding_plan` | `https:\u002F\u002Fark.ap-southeast.bytepluses.com\u002Fapi\u002Fcoding\u002Fv3` |\n| Custom | `custom` | — |\n| Custom (Anthropic API) | `custom_anthropic` | — |\n| DashScope | `dashscope` | `https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1` |\n| DeepSeek | `deepseek` | `https:\u002F\u002Fapi.deepseek.com` |\n| Gemini | `gemini` | `https:\u002F\u002Fgenerativelanguage.googleapis.com\u002Fv1beta\u002Fopenai\u002F` |\n| GitHub Copilot | `github_copilot` | `https:\u002F\u002Fapi.githubcopilot.com` |\n| Groq | `groq` | `https:\u002F\u002Fapi.groq.com\u002Fopenai\u002Fv1` |\n| llama.cpp | `llama_cpp` | `http:\u002F\u002Flocalhost:8080\u002Fv1` |\n| LM Studio | `lm_studio` | `http:\u002F\u002Flocalhost:1234\u002Fv1` |\n| MiniMax | `minimax` | `https:\u002F\u002Fapi.minimaxi.com\u002Fv1` |\n| MiniMax (Anthropic) | `minimax_anthropic` | `https:\u002F\u002Fapi.minimaxi.com\u002Fanthropic` |\n| Mistral | `mistral` | `https:\u002F\u002Fapi.mistral.ai\u002Fv1` |\n| Moonshot | `moonshot` | `https:\u002F\u002Fapi.moonshot.cn\u002Fv1` |\n| Ollama | `ollama` | `http:\u002F\u002Flocalhost:11434\u002Fv1` |\n| OpenAI | `openai` | `https:\u002F\u002Fapi.openai.com\u002Fv1` |\n| OpenAI Codex | `openai_codex` | `https:\u002F\u002Fchatgpt.com\u002Fbackend-api` |\n| OpenRouter | `openrouter` | `https:\u002F\u002Fopenrouter.ai\u002Fapi\u002Fv1` |\n| OpenVINO Model Server | `ovms` | `http:\u002F\u002Flocalhost:8000\u002Fv3` |\n| Qianfan | `qianfan` | `https:\u002F\u002Fqianfan.baidubce.com\u002Fv2` |\n| SiliconFlow | `siliconflow` | `https:\u002F\u002Fapi.siliconflow.cn\u002Fv1` |\n| Step Fun | `stepfun` | `https:\u002F\u002Fapi.stepfun.com\u002Fv1` |\n| vLLM\u002FLocal | `vllm` | — |\n| VolcEngine | `volcengine` | `https:\u002F\u002Fark.cn-beijing.volces.com\u002Fapi\u002Fv3` |\n| VolcEngine Coding Plan | `volcengine_coding_plan` | `https:\u002F\u002Fark.cn-beijing.volces.com\u002Fapi\u002Fcoding\u002Fv3` |\n| Xiaomi MIMO | `xiaomi_mimo` | `https:\u002F\u002Fapi.xiaomimimo.com\u002Fv1` |\n| Zhipu AI | `zhipu` | `https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fpaas\u002Fv4` |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Supported Embedding Providers\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Provider | Binding | Model Example | Default Dim |\n|:--|:--|:--|:--|\n| OpenAI | `openai` | `text-embedding-3-large` | 3072 |\n| Azure OpenAI | `azure_openai` | deployment name | — |\n| Cohere | `cohere` | `embed-v4.0` | 1024 |\n| Jina | `jina` | `jina-embeddings-v3` | 1024 |\n| Ollama | `ollama` | `nomic-embed-text` | 768 |\n| vLLM \u002F LM Studio | `vllm` | Any embedding model | — |\n| Any OpenAI-compatible | `custom` | — | — |\n\nOpenAI-compatible providers (DashScope, SiliconFlow, etc.) work via the `custom` or `openai` binding.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Supported Web Search Providers\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Provider | Env Key | Notes |\n|:--|:--|:--|\n| Brave | `BRAVE_API_KEY` | Recommended, free tier available |\n| Tavily | `TAVILY_API_KEY` | |\n| Serper | `SERPER_API_KEY` | Google Search results via Serper |\n| Jina | `JINA_API_KEY` | |\n| SearXNG | — | Self-hosted, no API key needed |\n| DuckDuckGo | — | No API key needed |\n| Perplexity | `PERPLEXITY_API_KEY` | Requires API key |\n\n\u003C\u002Fdetails>\n\n**5. Start services**\n\nThe quickest way to launch everything:\n\n```bash\npython scripts\u002Fstart_web.py\n```\n\nThis starts both the backend and frontend. Keep the terminal open, then open the frontend URL printed in the terminal.\n\nAlternatively, start each service manually in separate terminals:\n\n```bash\n# Backend (FastAPI)\npython -m deeptutor.api.run_server\n\n# Frontend (Next.js) — in a separate terminal\ncd web && npm run dev -- -p 3782\n```\n\n| Service | Default Port |\n|:---:|:---:|\n| Backend | `8001` |\n| Frontend | `3782` |\n\nOpen [http:\u002F\u002Flocalhost:3782](http:\u002F\u002Flocalhost:3782) and you're ready to go.\n\n### Option C — Docker Deployment\n\nDocker wraps the backend and frontend into a single container — no local Python or Node.js required. You only need [Docker Desktop](https:\u002F\u002Fwww.docker.com\u002Fproducts\u002Fdocker-desktop\u002F) (or Docker Engine + Compose on Linux).\n\n**1. Configure environment variables** (required for both options below)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor.git\ncd DeepTutor\ncp .env.example .env\n```\n\nEdit `.env` and fill in at least the required fields (same as [Option B](#option-b--manual-local-install) above).\n\n**2a. Pull official image (recommended)**\n\nOfficial images are published to [GitHub Container Registry](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fpkgs\u002Fcontainer\u002Fdeeptutor) on every release, built for `linux\u002Famd64` and `linux\u002Farm64`.\n\n```bash\ndocker compose -f docker-compose.ghcr.yml up -d\n```\n\nTo pin a specific version, edit the image tag in `docker-compose.ghcr.yml`:\n\n```yaml\nimage: ghcr.io\u002Fhkuds\u002Fdeeptutor:1.3.4  # or :latest\n```\n\n**2b. Build from source**\n\n```bash\ndocker compose up -d\n```\n\nThis builds the image locally from `Dockerfile` and starts the container.\n\n**3. Verify & manage**\n\nOpen [http:\u002F\u002Flocalhost:3782](http:\u002F\u002Flocalhost:3782) once the container is healthy.\n\n```bash\ndocker compose logs -f   # tail logs\ndocker compose down       # stop and remove container\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Cloud \u002F remote server deployment\u003C\u002Fb>\u003C\u002Fsummary>\n\nWhen deploying to a remote server, the browser needs to know the public URL of the backend API. Add one more variable to your `.env`:\n\n```dotenv\n# Set to the public URL where the backend is reachable\nNEXT_PUBLIC_API_BASE_EXTERNAL=https:\u002F\u002Fyour-server.com:8001\n```\n\nThe frontend startup script applies this value at runtime — no rebuild needed.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Development mode (hot-reload)\u003C\u002Fb>\u003C\u002Fsummary>\n\nLayer the dev override to mount source code and enable hot-reload for both services:\n\n```bash\ndocker compose -f docker-compose.yml -f docker-compose.dev.yml up\n```\n\nChanges to `deeptutor\u002F`, `deeptutor_cli\u002F`, `scripts\u002F`, and `web\u002F` are reflected immediately.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Custom ports\u003C\u002Fb>\u003C\u002Fsummary>\n\nOverride the default ports in `.env`:\n\n```dotenv\nBACKEND_PORT=9001\nFRONTEND_PORT=4000\n```\n\nThen restart:\n\n```bash\ndocker compose up -d     # or docker compose -f docker-compose.ghcr.yml up -d\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Data persistence\u003C\u002Fb>\u003C\u002Fsummary>\n\nUser data and knowledge bases are persisted via Docker volumes mapped to local directories:\n\n| Container path | Host path | Content |\n|:---|:---|:---|\n| `\u002Fapp\u002Fdata\u002Fuser` | `.\u002Fdata\u002Fuser` | Settings, workspace, sessions, logs |\n| `\u002Fapp\u002Fdata\u002Fmemory` | `.\u002Fdata\u002Fmemory` | Shared long-term memory (`SUMMARY.md`, `PROFILE.md`) |\n| `\u002Fapp\u002Fdata\u002Fknowledge_bases` | `.\u002Fdata\u002Fknowledge_bases` | Uploaded documents & vector indices |\n\nThese directories survive `docker compose down` and are reused on the next `docker compose up`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Environment variables reference\u003C\u002Fb>\u003C\u002Fsummary>\n\n| Variable | Required | Description |\n|:---|:---:|:---|\n| `LLM_BINDING` | **Yes** | LLM provider (`openai`, `anthropic`, etc.) |\n| `LLM_MODEL` | **Yes** | Model name (e.g. `gpt-4o`) |\n| `LLM_API_KEY` | **Yes** | Your LLM API key |\n| `LLM_HOST` | **Yes** | API endpoint URL |\n| `EMBEDDING_BINDING` | Knowledge Base only | Embedding provider |\n| `EMBEDDING_MODEL` | Knowledge Base only | Embedding model name |\n| `EMBEDDING_API_KEY` | Knowledge Base only | Embedding API key |\n| `EMBEDDING_HOST` | Knowledge Base only | Full embedding endpoint URL |\n| `EMBEDDING_DIMENSION` | No | Vector dimension; leave empty for auto-detection |\n| `SEARCH_PROVIDER` | No | Search provider (`tavily`, `jina`, `serper`, `perplexity`, etc.) |\n| `SEARCH_API_KEY` | No | Search API key |\n| `BACKEND_PORT` | No | Backend port (default `8001`) |\n| `FRONTEND_PORT` | No | Frontend port (default `3782`) |\n| `NEXT_PUBLIC_API_BASE_EXTERNAL` | No | Public backend URL for cloud deployment |\n| `DISABLE_SSL_VERIFY` | No | Disable SSL verification (default `false`) |\n\n\u003C\u002Fdetails>\n\n### Option D — CLI Only\n\nIf you just want the CLI without the web frontend:\n\n```bash\n# Includes RAG, document parsing, and all built-in LLM provider SDKs.\n# Same set as Option B minus FastAPI\u002Fuvicorn.\npython -m pip install -e \".[cli]\"\n```\n\nYou still need to configure your LLM provider. The quickest way:\n\n```bash\ncp .env.example .env   # then edit .env to fill in your API keys\n```\n\nOnce configured, you're ready to go:\n\n```bash\ndeeptutor chat                                   # Interactive REPL\ndeeptutor run chat \"Explain Fourier transform\"   # One-shot capability\ndeeptutor run deep_solve \"Solve x^2 = 4\"         # Multi-agent problem solving\ndeeptutor kb create my-kb --doc textbook.pdf     # Build a knowledge base\n```\n\n> See [DeepTutor CLI](#%EF%B8%8F-deeptutor-cli--agent-native-interface) for the full feature guide and command reference.\n\n---\n\n## 📖 Explore DeepTutor\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdeeptutor-architecture.png\" alt=\"DeepTutor Architecture\" width=\"800\">\n\u003C\u002Fdiv>\n\n### 💬 Chat — Unified Intelligent Workspace\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdt-chat.png\" alt=\"Chat Workspace\" width=\"800\">\n\u003C\u002Fdiv>\n\nSix distinct modes coexist in a single workspace, bound by a **unified context management system**. Conversation history, knowledge bases, and references persist across modes — switch between them freely within the same topic, whenever the moment calls for it.\n\n| Mode | What It Does |\n|:---|:---|\n| **Chat** | Fluid, tool-augmented conversation. Choose from RAG retrieval, web search, code execution, deep reasoning, brainstorming, and paper search — mix and match as needed. |\n| **Deep Solve** | Multi-agent problem solving: plan, investigate, solve, and verify — with precise source citations at every step. |\n| **Quiz Generation** | Generate assessments grounded in your knowledge base, with built-in validation. |\n| **Deep Research** | Decompose a topic into subtopics, dispatch parallel research agents across RAG, web, and academic papers, and produce a fully cited report. |\n| **Math Animator** | Turn mathematical concepts into visual animations and storyboards powered by Manim. |\n| **Visualize** | Generate interactive SVG diagrams, Chart.js charts, Mermaid graphs, or self-contained HTML pages from natural language descriptions. |\n\nTools are **decoupled from workflows** — in every mode, you decide which tools to enable, how many to use, or whether to use any at all. The workflow orchestrates the reasoning; the tools are yours to compose.\n\n> Start with a quick chat question, escalate to Deep Solve when it gets hard, visualize a concept, generate quiz questions to test yourself, then launch a Deep Research to go deeper — all in one continuous thread.\n\n### ✍️ Co-Writer — Multi-Document AI Writing Workspace\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdt-cowriter.png\" alt=\"Co-Writer\" width=\"800\">\n\u003C\u002Fdiv>\n\nCo-Writer brings the intelligence of Chat directly into a writing surface. Create and manage multiple documents, each persisted in its own workspace — not a single throwaway scratchpad, but a full-featured multi-document Markdown editor where AI is a first-class collaborator.\n\nSelect any text and choose **Rewrite**, **Expand**, or **Shorten** — optionally drawing context from your knowledge base or the web. The editing flow is non-destructive with full undo\u002Fredo, and every piece you write can be saved straight to your notebooks, feeding back into your learning ecosystem.\n\n### 📖 Book Engine — Interactive \"Living Books\"\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdt-book-0.png\" alt=\"Book Library\" width=\"270\">\u003Cimg src=\"assets\u002Ffigs\u002Fdt-book-1.png\" alt=\"Book Reader\" width=\"270\">\u003Cimg src=\"assets\u002Ffigs\u002Fdt-book-2.png\" alt=\"Book Animation\" width=\"270\">\n\u003C\u002Fdiv>\n\nGive DeepTutor a topic, point it at your knowledge base, and it produces a structured, interactive book — not a static export, but a living document you can read, quiz yourself on, and discuss in context.\n\nBehind the scenes, a multi-agent pipeline handles the heavy lifting: proposing an outline, retrieving relevant sources from your knowledge base, synthesizing a chapter tree, planning each page, and compiling every block. You stay in control — review the proposal, reorder chapters, and chat alongside any page.\n\nPages are assembled from 14 block types — text, callout, quiz, flash cards, code, figure, deep dive, animation, interactive demo, timeline, concept graph, section, user note, and placeholder — each rendered with its own interactive component. A real-time progress timeline lets you watch compilation unfold as the book takes shape.\n\n### 📚 Knowledge Management — Your Learning Infrastructure\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdt-knowledge.png\" alt=\"Knowledge Management\" width=\"800\">\n\u003C\u002Fdiv>\n\nKnowledge is where you build and manage the document collections, notes, and teaching personas that power everything else in DeepTutor.\n\n- **Knowledge Bases** — Upload PDF, TXT, or Markdown files to create searchable, RAG-ready collections. Add documents incrementally as your library grows.\n- **Notebooks** — Organize learning records across sessions. Save insights from Chat, Co-Writer, Book, or Deep Research into categorized, color-coded notebooks.\n- **Question Bank** — Browse and revisit all generated quiz questions. Bookmark entries and @-mention them directly in chat to reason over past performance.\n- **Skills** — Create custom teaching personas via `SKILL.md` files. Each skill defines a name, description, optional triggers, and a Markdown body that is injected into the chat system prompt when active — turning DeepTutor into a Socratic tutor, a peer study partner, a research assistant, or any role you design.\n\nYour knowledge base is not passive storage — it actively participates in every conversation, every research session, and every learning path you create.\n\n### 🧠 Memory — DeepTutor Learns As You Learn\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fdt-memory.png\" alt=\"Memory\" width=\"800\">\n\u003C\u002Fdiv>\n\nDeepTutor maintains a persistent, evolving understanding of you through two complementary dimensions:\n\n- **Summary** — A running digest of your learning progress: what you've studied, which topics you've explored, and how your understanding has developed.\n- **Profile** — Your learner identity: preferences, knowledge level, goals, and communication style — automatically refined through every interaction.\n\nMemory is shared across all features and all your TutorBots. The more you use DeepTutor, the more personalized and effective it becomes.\n\n---\n\n### 🦞 TutorBot — Persistent, Autonomous AI Tutors\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Ftutorbot-architecture.png\" alt=\"TutorBot Architecture\" width=\"800\">\n\u003C\u002Fdiv>\n\nTutorBot is not a chatbot — it is a **persistent, multi-instance agent** built on [nanobot](https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot). Each TutorBot runs its own agent loop with independent workspace, memory, and personality. Create a Socratic math tutor, a patient writing coach, and a rigorous research advisor — all running simultaneously, each evolving with you.\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Ftb.png\" alt=\"TutorBot\" width=\"800\">\n\u003C\u002Fdiv>\n\n- **Soul Templates** — Define your tutor's personality, tone, and teaching philosophy through editable Soul files. Choose from built-in archetypes (Socratic, encouraging, rigorous) or craft your own — the soul shapes every response.\n- **Independent Workspace** — Each bot has its own directory with separate memory, sessions, skills, and configuration — fully isolated yet able to access DeepTutor's shared knowledge layer.\n- **Proactive Heartbeat** — Bots don't just respond — they initiate. The built-in Heartbeat system enables recurring study check-ins, review reminders, and scheduled tasks. Your tutor shows up even when you don't.\n- **Full Tool Access** — Every bot reaches into DeepTutor's complete toolkit: RAG retrieval, code execution, web search, academic paper search, deep reasoning, and brainstorming.\n- **Skill Learning** — Teach your bot new abilities by adding skill files to its workspace. As your needs evolve, so does your tutor's capability.\n- **Multi-Channel Presence** — Connect bots to Telegram, Discord, Slack, Feishu, WeChat Work, DingTalk, Email, and more. Your tutor meets you wherever you are.\n- **Team & Sub-Agents** — Spawn background sub-agents or orchestrate multi-agent teams within a single bot for complex, long-running tasks.\n\n```bash\ndeeptutor bot create math-tutor --persona \"Socratic math teacher who uses probing questions\"\ndeeptutor bot create writing-coach --persona \"Patient, detail-oriented writing mentor\"\ndeeptutor bot list                  # See all your active tutors\n```\n\n---\n\n### ⌨️ DeepTutor CLI — Agent-Native Interface\n\n\u003Cdiv align=\"center\">\n\u003Cimg src=\"assets\u002Ffigs\u002Fcli-architecture.png\" alt=\"DeepTutor CLI Architecture\" width=\"800\">\n\u003C\u002Fdiv>\n\nDeepTutor is fully CLI-native. Every capability, knowledge base, session, memory, and TutorBot is one command away — no browser required. The CLI serves both humans (with rich terminal rendering) and AI agents (with structured JSON output).\n\nHand the [`SKILL.md`](SKILL.md) at the project root to any tool-using agent ([nanobot](https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot), or any LLM with tool access), and it can configure and operate DeepTutor autonomously.\n\n**One-shot execution** — Run any capability directly from the terminal:\n\n```bash\ndeeptutor run chat \"Explain the Fourier transform\" -t rag --kb textbook\ndeeptutor run deep_solve \"Prove that √2 is irrational\" -t reason\ndeeptutor run deep_question \"Linear algebra\" --config num_questions=5\ndeeptutor run deep_research \"Attention mechanisms in transformers\"\ndeeptutor run visualize \"Draw the architecture of a transformer\"\n```\n\n**Interactive REPL** — A persistent chat session with live mode switching:\n\n```bash\ndeeptutor chat --capability deep_solve --kb my-kb\n# Inside the REPL: \u002Fcap, \u002Ftool, \u002Fkb, \u002Fhistory, \u002Fnotebook, \u002Fconfig to switch on the fly\n```\n\n**Knowledge base lifecycle** — Build, query, and manage RAG-ready collections entirely from the terminal:\n\n```bash\ndeeptutor kb create my-kb --doc textbook.pdf       # Create from document\ndeeptutor kb add my-kb --docs-dir .\u002Fpapers\u002F         # Add a folder of papers\ndeeptutor kb search my-kb \"gradient descent\"        # Search directly\ndeeptutor kb set-default my-kb                      # Set as default for all commands\n```\n\n**Dual output mode** — Rich rendering for humans, structured JSON for pipelines:\n\n```bash\ndeeptutor run chat \"Summarize chapter 3\" -f rich    # Colored, formatted output\ndeeptutor run chat \"Summarize chapter 3\" -f json    # Line-delimited JSON events\n```\n\n**Session continuity** — Resume any conversation right where you left off:\n\n```bash\ndeeptutor session list                              # List all sessions\ndeeptutor session open \u003Cid>                         # Resume in REPL\n```\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Full CLI command reference\u003C\u002Fb>\u003C\u002Fsummary>\n\n**Top-level**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor run \u003Ccapability> \u003Cmessage>` | Run any capability in a single turn (`chat`, `deep_solve`, `deep_question`, `deep_research`, `math_animator`, `visualize`) |\n| `deeptutor chat` | Interactive REPL with optional `--capability`, `--tool`, `--kb`, `--language` |\n| `deeptutor serve` | Start the DeepTutor API server |\n\n**`deeptutor bot`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor bot list` | List all TutorBot instances |\n| `deeptutor bot create \u003Cid>` | Create and start a new bot (`--name`, `--persona`, `--model`) |\n| `deeptutor bot start \u003Cid>` | Start a bot |\n| `deeptutor bot stop \u003Cid>` | Stop a bot |\n\n**`deeptutor kb`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor kb list` | List all knowledge bases |\n| `deeptutor kb info \u003Cname>` | Show knowledge base details |\n| `deeptutor kb create \u003Cname>` | Create from documents (`--doc`, `--docs-dir`) |\n| `deeptutor kb add \u003Cname>` | Add documents incrementally |\n| `deeptutor kb search \u003Cname> \u003Cquery>` | Search a knowledge base |\n| `deeptutor kb set-default \u003Cname>` | Set as default KB |\n| `deeptutor kb delete \u003Cname>` | Delete a knowledge base (`--force`) |\n\n**`deeptutor memory`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor memory show [file]` | View memory (`summary`, `profile`, or `all`) |\n| `deeptutor memory clear [file]` | Clear memory (`--force`) |\n\n**`deeptutor session`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor session list` | List sessions (`--limit`) |\n| `deeptutor session show \u003Cid>` | View session messages |\n| `deeptutor session open \u003Cid>` | Resume session in REPL |\n| `deeptutor session rename \u003Cid>` | Rename a session (`--title`) |\n| `deeptutor session delete \u003Cid>` | Delete a session |\n\n**`deeptutor notebook`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor notebook list` | List notebooks |\n| `deeptutor notebook create \u003Cname>` | Create a notebook (`--description`) |\n| `deeptutor notebook show \u003Cid>` | View notebook records |\n| `deeptutor notebook add-md \u003Cid> \u003Cpath>` | Import markdown as record |\n| `deeptutor notebook replace-md \u003Cid> \u003Crec> \u003Cpath>` | Replace a markdown record |\n| `deeptutor notebook remove-record \u003Cid> \u003Crec>` | Remove a record |\n\n**`deeptutor book`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor book list` | List all books in the workspace |\n| `deeptutor book health \u003Cbook_id>` | Check KB drift and book health |\n| `deeptutor book refresh-fingerprints \u003Cbook_id>` | Refresh KB fingerprints and clear stale pages |\n\n**`deeptutor config` \u002F `plugin` \u002F `provider`**\n\n| Command | Description |\n|:---|:---|\n| `deeptutor config show` | Print current configuration summary |\n| `deeptutor plugin list` | List registered tools and capabilities |\n| `deeptutor plugin info \u003Cname>` | Show tool or capability details |\n| `deeptutor provider login \u003Cprovider>` | Provider auth (`openai-codex` OAuth login; `github-copilot` validates an existing Copilot auth session) |\n\n\u003C\u002Fdetails>\n\n## 🗺️ Roadmap\n\n| Status | Milestone |\n|:---:|:---|\n| 🎯 | **Authentication & Login** — Optional login page for public deployments with multi-user support |\n| 🎯 | **Themes & Appearance** — Diverse theme options and customizable UI appearance |\n| 🎯 | **Interaction Improvement** — optimize icon design and interaction details |\n| 🔜 | **Better Memories** — integrating better memory management |\n| 🔜 | **LightRAG Integration** — Integrate [LightRAG](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FLightRAG) as an advanced knowledge base engine |\n| 🔜 | **Documentation Site** — Comprehensive docs page with guides, API reference, and tutorials |\n\n> If you find DeepTutor useful, [give us a star](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fstargazers) — it helps us keep going!\n\n---\n\n## 🌐 Community & Ecosystem\n\nDeepTutor stands on the shoulders of outstanding open-source projects:\n\n| Project | Role in DeepTutor |\n|:---|:---|\n| [**nanobot**](https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot) | Ultra-lightweight agent engine powering TutorBot |\n| [**LlamaIndex**](https:\u002F\u002Fgithub.com\u002Frun-llama\u002Fllama_index) | RAG pipeline and document indexing backbone |\n| [**ManimCat**](https:\u002F\u002Fgithub.com\u002FWing900\u002FManimCat) | AI-driven math animation generation for Math Animator |\n\n**From the HKUDS ecosystem:**\n\n| [⚡ LightRAG](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FLightRAG) | [🤖 AutoAgent](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAutoAgent) | [🔬 AI-Researcher](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FAI-Researcher) | [🧬 nanobot](https:\u002F\u002Fgithub.com\u002FHKUDS\u002Fnanobot) |\n|:---:|:---:|:---:|:---:|\n| Simple & Fast RAG | Zero-Code Agent Framework | Automated Research | Ultra-Lightweight AI Agent |\n\n\n## 🤝 Contributing\n\n\u003Cdiv align=\"center\">\n\nWe hope DeepTutor becomes a gift for the community. 🎁\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=HKUDS\u002FDeepTutor&max=999\" alt=\"Contributors\" \u002F>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on setting up your development environment, code standards, and pull request workflow.\n\n## ⭐ Star History\n\n\u003Cdiv align=\"center\">\n\n\u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#HKUDS\u002FDeepTutor&type=timeline&legend=top-left\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=HKUDS\u002FDeepTutor&type=timeline&theme=dark&legend=top-left\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=HKUDS\u002FDeepTutor&type=timeline&legend=top-left\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=HKUDS\u002FDeepTutor&type=timeline&legend=top-left\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n \u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002Fhkuds\u002Fdeeptutor\">\n  \u003Cpicture>\n   \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fbadge?repo=HKUDS\u002FDeepTutor&theme=dark\" \u002F>\n   \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fbadge?repo=HKUDS\u002FDeepTutor\" \u002F>\n   \u003Cimg alt=\"Star History Rank\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fbadge?repo=HKUDS\u002FDeepTutor\" \u002F>\n  \u003C\u002Fpicture>\n \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cdiv align=\"center\">\n\n**[Data Intelligence Lab @ HKU](https:\u002F\u002Fgithub.com\u002FHKUDS)**\n\n[⭐ Star us](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fstargazers) · [🐛 Report a bug](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fissues) · [💬 Discussions](https:\u002F\u002Fgithub.com\u002FHKUDS\u002FDeepTutor\u002Fdiscussions)\n\n---\n\nLicensed under the [Apache License 2.0](LICENSE).\n\n\u003Cp>\n  \u003Cimg src=\"https:\u002F\u002Fvisitor-badge.laobi.icu\u002Fbadge?page_id=HKUDS.DeepTutor&style=for-the-badge&color=00d4ff\" alt=\"Views\">\n\u003C\u002Fp>\n\n\u003C\u002Fdiv>\n","DeepTutor 是一个基于代理的个性化学习助手，旨在为用户提供定制化的教育体验。项目利用了大型语言模型和多代理系统技术，能够根据用户的具体需求生成互动式的学习内容，并支持通过命令行界面进行操作。其核心功能包括但不限于智能辅导、自适应学习路径规划以及知识检索增强等。DeepTutor 适用于希望获得更加个性化的在线教育资源的学生或教师，也适合于那些想要探索人工智能在教育领域应用的研究者和技术爱好者。",2,"2026-06-11 02:49:25","top_language"]