github HKUDS/DeepTutor v1.2.0
DeepTutor-v1.2.0

latest release: v1.2.1
6 hours ago

DeepTutor v1.2.0 Release Notes

Release Date: 2026.04.20

Highlights

Book Engine — Multi-Agent "Living Book" Compiler

Introduced a brand-new Book Engine (deeptutor/book/) that compiles user inputs — chat history, notebooks, knowledge bases, and free-form intent — into structured, block-based, interactive "living books". The engine sits parallel to ChatOrchestrator and drives a five-stage multi-agent pipeline:

  1. Ideation — an LLM proposes a book outline from the user's intent and source material.
  2. Source exploration — a SourceExplorer agent performs deep RAG retrieval and knowledge-base health checks (kb_health.py) to surface the most relevant passages.
  3. Spine synthesis — a SpineSynthesizer agent merges the proposal with explored sources into a chapter/page tree (Spine → Chapter → Page).
  4. Page planning — a PagePlanner agent designs each page as an ordered sequence of typed blocks.
  5. Block compilation — a BookCompiler dispatches each block to its dedicated generator.

14 block types ship in Phase 1: text, callout, quiz, flash cards, code, figure, deep dive, animation, interactive, timeline, concept graph, section, user note, and a placeholder for blocks still compiling. Each generator has its own bilingual (en/zh) YAML prompts and can call RAG helpers for grounded content.

The web UI (web/app/(workspace)/book/) includes a BookCreator wizard (intent → proposal → spine confirmation), a SpineEditor for drag-and-drop chapter reordering, a PageReader with an outline nav rail and per-block renderers (concept graphs rendered as interactive force-directed diagrams, quizzes with inline grading, flash cards with flip animations, etc.), a BookProgressTimeline for real-time compilation tracking, a BookChatPanel for in-context Q&A, and a BookHealthBanner that warns when the underlying KB is unhealthy. A per-book WebSocket stream fans out compilation events to all connected clients.

Backend: POST /api/v1/book/create, POST /confirm-proposal, POST /confirm-spine, POST /compile-page, GET /list, GET /{book_id}, DELETE /{book_id}, plus WS /ws/{book_id}. CLI: deeptutor book create, deeptutor book list, deeptutor book show, deeptutor book delete.

Legacy Guided Learning Removed

The deeptutor/agents/guide/ module (guide manager, 4 agents, 8 prompt YAMLs) and the entire /guide web UI (components, hooks, types, API router — ~5,300 lines) have been removed. The Book Engine supersedes Guided Learning with a richer, more extensible architecture.

Multi-Document Co-Writer Workspace

Co-Writer is no longer a single-document scratchpad. Each document now gets its own persistent directory under data/user/workspace/co-writer/documents/ with atomic manifest writes (CoWriterStorage). The web UI routes to per-document pages (/co-writer/[docId]) and the sidebar shows a CoWriterRecent section for quick access. New API endpoints handle full document CRUD (GET /list, POST /create, GET /{doc_id}, PATCH /{doc_id}, DELETE /{doc_id}).

Interactive HTML Visualizations

The Visualize capability now supports a fourth render type — html — alongside svg, chartjs, and mermaid. When the LLM determines that the user request requires "user interaction + state changes + mixed text/graphics" (e.g. draggable demos, step-by-step walkthroughs, clickable practice exercises), it produces a self-contained single-file HTML page that renders inside an iframe. A local validation pass (is_valid_html_document) checks the output before serving; if the model returns something unrenderable, a styled fallback template is injected instead. The LLM review stage is skipped for HTML pages (saving 30–60s of latency with negligible quality loss). A new figure constraint mode restricts the LLM to svg/chartjs/mermaid only — used internally by the Book Engine's figure block.

Question Bank @-Mention in Chat

A new QuestionBankPicker component lets users @-mention individual Question Bank entries directly in the chat composer. Selected entries are resolved by the turn runtime (_build_question_bank_context) into structured Markdown context — including question text, options, user/reference answers, and explanations — and injected alongside notebook and history references so the LLM can reason over specific past quiz performance.

Prompt Externalization — Phase 2

Continued the migration of hard-coded LLM strings into editable YAML files:

  • answer_nowquestion, research, solve, and visualize capabilities now load their fast-path prompts from prompts/{en,zh}/answer_now.yaml.
  • notebook agentsanalysis_agent and summarize_agent prompts moved to YAML; the Python modules now delegate to the prompt manager.
  • Capability modules (_answer_now.py, deep_question.py, deep_research.py, deep_solve.py, visualize.py) slimmed down accordingly.

Co-Writer Module Restructured

Moved deeptutor/agents/co_writer/ to deeptutor/co_writer/ (top-level service module) to reflect its standalone nature alongside deeptutor/book/.

Sidebar Overhaul

  • "Guided Learning" nav entry replaced with Book (Library icon).
  • Added BookRecent and CoWriterRecent sidebar sections with per-item navigation.
  • Sidebar collapsed/expanded state lifted into AppShellContext so it persists across route transitions.
  • Collapsed sidebar refined: logo + expand toggle layered with hover reveal, circular "New Chat" button, subtle dividers, and consistent spacing.

Capability & Config Panel Refresh

Updated shared type definitions and config panels across Quiz, Research, Visualize, and Math Animator to align with new capability options (e.g. html render mode, expanded locale keys). TracePanels in the chat UI received layout and styling improvements.

README & Localization Update

All nine localized README files (AR, CN, ES, FR, HI, JA, PT, RU, TH) updated to reflect the Book Engine, multi-document Co-Writer, and other v1.2.0 features.

Bug Fixes

  • Channel manager import-time crashloguru.logger was imported at module scope, causing ImportError when TutorBot dependencies were absent. Replaced with a lazy _logger() factory function.
  • Obsolete test_app_facade.py — removed a stale test module that referenced deleted code paths.
  • Missing __init__.py in test packages — added init files across tests/agents/, tests/api/, tests/cli/, tests/knowledge/, tests/scripts/, tests/services/llm/, tests/services/memory/, tests/services/search/, tests/services/session/, and tests/tools/ to fix import resolution.

Test Suite & CI

  • CI now installs requirements/tutorbot.txt and caches it alongside server/cli requirements.
  • Removed the obsolete test_app_facade from the CI test manifest.
  • Updated conftest.py for RAG pipeline tests; refreshed prompt parity, capabilities runtime, LLM probe config, factory provider, model catalog, config loader, and notebook service tests to match restructured imports.
  • Added favicon and apple-touch-icon assets for PWA metadata.

Full Changelog: v1.1.2...v1.2.0

Don't miss a new DeepTutor release

NewReleases is sending notifications on new releases.