Preface

The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” In the field of model inference, most plugins focus on enhancing code generation or logical reasoning capabilities. dsh-edu-mode is an educational mode plugin maintained by developer 1Vewton, aiming to transform an agent’s deliverables from plain text output into “understanding of a topic.” It uses an enforced protocol that requires the model to first collect authoritative sources, write class notes, and pass quizzes before confirming learning progress.

Core Capabilities

The plugin drives sessions through five phases and a teaching protocol to ensure a structured learning process:

  1. Collect Authoritative Sources: Use the web_search and web_fetch tools to retrieve textbooks, university course pages, standards documents, or papers, and record the titles and URLs.
  2. Step-by-Step Explanation: Follow the teaching protocol by first explaining the significance and intuition, then providing precise definitions, derivations, typical examples, and common misconceptions to correct.
  3. Write Class Notes: After each lesson ends, use the edu_notes tool to write the explanation content, key points, and sources into the course files.
  4. Quiz and Scoring: At the end of each lesson, use the edu_quiz tool to ask questions through an interactive UI, automatically score the answers, and re-explain the parts that were not passed.
  5. Track Progress: Use the edu_course tool to manage the course syllabus. When a module’s quiz is passed, that module is marked as complete, and progress is persisted across sessions.

The plugin provides three core tools:

  • edu_course: Creates/rewrites the course syllabus (sets objectives, levels, and module list), reports current status, or marks modules as complete.
  • edu_notes: Writes the explanation content for a single lesson into the notes file. If the same lesson is written again, it is rejected unless replace: true is specified.
  • edu_quiz: Collects answers and grades them through an interactive question UI. Choice questions support both single-selection and multiple-selection; open-ended questions are judged by the model itself. In non-interactive environments (such as headless mode), it falls back to asking questions in chat.

Installation and Activation

After installing the plugin, you must restart the server for it to take effect. During installation, be sure to use npm, tarball, or git installation methods to avoid issues caused by symbolic links.

# Install via npm
dsh plugin --profile web add dsh-edu-mode

# Install via tarball
dsh plugin --profile web add ./dsh-edu-mode-0.1.0.tgz

# Install via git
dsh plugin --profile web add github:1Vewton/dsh-edu

Note: Do not use the dsh plugin add <directory> command. This is actually pnpm’s link: feature, which causes Node to resolve the source directory and makes the plugin load an incorrect copy of dependencies, resulting in it not being recognized by the Harness.

After installation is complete, you can verify that the configuration has been loaded with the following command:

dsh --profile web --dump-config

The output should include a # == dsh-edu-mode section.

Configuration

The plugin configuration is located in the cordis.patch.yml file and is strictly validated during loading.

- insert:
    - id: edu-mode
      name: 'dsh-edu-mode'
      config:
        notesDir: edu-notes        # Root directory for course files within the workspace
        maxQuizQuestions: 6        # Maximum number of questions per edu_quiz call
        passRatio: 0.8             # Passing threshold for automatically scored sections

Typical Usage

Use the /edu command to toggle the mode and specify a course:

Command Effect
/edu linear algebra Enables the mode and sets the course to linear algebra
/edu Enables the mode without setting a specific course, waiting for the model to ask
/edu linear algebra, starting from determinants, my basics are shaky Enables the mode with an initial prompt, and the model starts teaching from that point
/edu status Views current status and course information
/edu off Turns off educational mode

After enabling the mode, the protocol automatically drives the session: collect sources -> teach a module -> take notes -> quiz -> re-explain incorrect answers. You can interrupt the process at any time (for example, “explain it again” or “give a harder question”).

Course Files

Course data is saved as files under the edu-notes/<course>/ directory in the session workspace:

edu-notes/linear-algebra/
├── syllabus.md   # Course objectives, difficulty, module list (- [ ] / - [x]), and sources
├── notes.md      # Class notes recorded in course order
└── quizzes.md    # Quiz logs, recording scores and incorrect answers for each quiz

The course name is converted into a slug, with CJK characters preserved. For example, /edu 线性代数 generates an edu-notes/线性代数/ directory.

Maintenance and Release

The plugin uses the standard DSH Bundle structure (dsh.bundle + cordis.patch.yml). Because the lib/ directory is committed to the repository, developers do not need build permission. The release process is automated through GitHub Actions and requires the NPM_TOKEN environment variable to be configured. The workflow builds, tests, publishes to npm, and creates a GitHub Release with a tarball.

# Developer build and test steps
pnpm build && pnpm test

This plugin is listed in the community plugin directory. As part of the DSH ecosystem, it has no affiliation with DeepSeek or High-Flyer (Huanfang).

  • Directory Page: https://www.skillhub.cn/plugins/1Vewton/dsh-edu
  • Source Repository: https://github.com/1Vewton/dsh-edu