为自学设计的教学智能体计划书

AI 桌面教学智能体项目计划书 (v1.0)

一、 项目概述

  • 项目定位: 一款轻量、高性能、沉浸式的本地桌面端 AI 伴学软件。
  • 核心价值: 告别传统的被动阅读,通过“大纲生成 -> 知识精讲 -> 伴学答疑 -> 动态测试”的闭环,提供千人千面的计算机自适应学习(CAT)体验。
  • 技术基调: 极致轻量化(No-Build 理念前端 + Rust 桌面外壳),极低内存占用,高响应速度,支持本地知识库的安全隐私隔离。

二、 系统架构与技术选型

本系统采用严格的前后端分离与解耦架构,确保前端轻量、后端安全。

1. 核心技术栈

  • 宿主环境 (Shell): Tauri 2.0 (Rust)

  • 职责: 窗口管理、跨平台打包(Windows/macOS)、系统级 API 调用(文件系统、本地数据库读写)。

  • 前端交互层 (View & State): HTML5 + Alpine.js

  • 职责: 视图渲染、状态管理(响应式数据绑定)、事件总线通信。

  • 样式引擎 (CSS): Tailwind CSS (CDN)

  • 职责: 快速构建响应式的左中右三栏布局,统一 UI 风格。

  • 内容渲染与处理:

  • Markdown 解析: marked.min.js

  • XSS 防护: DOMPurify (确保 AI 生成内容的渲染安全)

  • 代码与公式: Prism.js (代码高亮) + KaTeX (数学公式)

  • 数据持久化 (Storage):

  • 结构化数据: Tauri 官方 plugin-sql (SQLite) 或前端 localForage (IndexedDB)。

  • 文件资产: 本地 Markdown 文件独立存储。

  • 向量数据库: 后端集成轻量级本地向量库(如 LanceDB,或直接通过 Tauri 调用 Python 脚本封装的 ChromaDB/Faiss)。

2. 外部接口 (API)

  • 大模型服务: 统一采用 OpenAI 标准接口格式(兼容 DeepSeek-V3/R1、GPT-4o、Claude 3.5 等),支持流式传输 (Server-Sent Events)。

三、 核心模块详细设计

采用经典的三栏式(Left-Nav, Main-Content, Right-Assistant)工作区布局。

模块 A:左侧导航与控制中枢 (Left Pane)

  1. 模块化工作区: 顶部“新建学习模块”按钮,支持创建不同的学科/项目容器。
  2. 动态大纲树 (Outline):
  • 支持多级折叠与展开。
  • 状态可视化: 节点带有进度标识(未开始、学习中、已掌握、需复习)。
  • 点击任意节点,中断当前流程并切换至该会话进度。
  1. 分类与过滤: 中下部提供标签分类,快速筛选当前大纲视图。
  2. 系统设置: 底部配置入口,包含:
  • 系统参数: API Key 管理、模型选择、本地知识库路径配置。
  • 教学参数: AI 语气设定(如“严厉导师”或“苏格拉底式启发”)、测试题难度梯度、输出语种等。

模块 B:中部核心教学流 (Main Pane)

  1. Markdown 渲染区:
  • 读取并渲染当前进度的 .md 文件(包含文字、公式、内嵌 iframe 视频等)。
  • 交互增强: 文本划词高亮,弹出“解释/扩写/翻译”快捷菜单,点击后指令自动发送至右侧答疑区。
  1. 动态测试引擎 (Test Engine):
  • 准入机制: 底部常驻“我已学会,开始测试”与“我已学会,跳过测试”按钮。
  • 动态生成: 点击“开始测试”后,触发系统工具调用(Tool Calling),AI 结合当前大纲输出 JSON 格式的考题数据。
  • 交互式答题: 渲染单选/多选/填空题。采用“一题一判”机制。
  • 正反馈与纠错: 答对直接进入下一题;答错不直接给答案,而是将错题信息透传至右侧,引导 AI 启发提问。
  • 费曼输出模式(可选扩展): 提供文本框,要求用户用自己的话解释概念,AI 评分打通关。

模块 C:右侧 AI 伴学助手 (Right Pane)

  1. 顶部控制: 模型快速下拉切换,清空上下文按钮。
  2. 对话流渲染: 气泡式聊天界面,支持 Markdown 渲染,支持打字机流式输出。
  3. 上下文智能组装 (Prompt Engineering): 这是 AI 聪明的核心,发送给大模型的每次请求需静默拼装以下结构:
  • System Prompt: 当前模块设定的教学人设与规则。
  • Vector Search Results: (被动触发)匹配到的知识库或历史错题/笔记。
  • Current Context: 中部正在阅读的 Markdown 原文片段。
  • Chat History: 最近 3-5 轮对话记录(采用滑动窗口机制防 Token 溢出)。
  • User Input: 用户本次的提问。
  1. 内容自修正: 允许 AI 通过特定的命令(如输出特殊的 XML 标签 <update_md>),通知本地环境修改并重载中部的 Markdown 文件。

四、 核心数据结构与存储机制

为了保证系统状态可预测且无遗漏,采用单一事实来源(Single Source of Truth)。

1. 课程配置文件 (course_meta.json)
维护整体大纲与进度状态,必须包含精确的映射关系。

{
  "course_id": "c_982b1x",
  "course_name": "高等数学基础",
  "knowledge_base_path": "/local/docs/math",
  "current_progress_id": "session_02",
  "chapters": [
    {
      "session_id": "session_01",
      "title": "1. 极限的定义",
      "status": "completed",
      "content_file": "/data/sessions/session_01.md",
      "history_file": "/data/chats/chat_01.json",
      "vector_ids": ["vec_001", "vec_002"]
    },
    {
      "session_id": "session_02",
      "title": "2. 导数与微分",
      "status": "in_progress",
      "content_file": "/data/sessions/session_02.md",
      "history_file": "/data/chats/chat_02.json",
      "vector_ids": []
    }
  ]
}

2. 测试题数据交换协议 (AI Tool Call Output)
AI 生成题目必须严格遵循此结构,以便 Alpine.js 渲染前端表单。

{
  "test_set": [
    {
      "question_id": "q1",
      "type": "single_choice",
      "difficulty": "medium",
      "question_text": "在Vue或Alpine中,用于双向绑定的指令是?",
      "options": ["x-bind", "x-model", "x-on", "x-text"],
      "correct_answer": 1,
      "explanation": "x-model 提供了表单元素和状态数据之间的双向绑定机制。"
    }
  ]
}

五、 实施路线图 (Development Roadmap)

将复杂项目拆解为可执行的 Milestone(里程碑),严格控制开发节奏。

Phase 1: 原型与纯前端实现 (W1-W2)

  • 目标: 完成 UI 布局和基本交互逻辑,无需后端。
  • 任务:
  • 编写 index.html,引入 Tailwind CSS 完成三栏布局。
  • 引入 Alpine.js,实现大纲切换、测试面板呼出、聊天框内容上屏。
  • 编写 Mock 模拟数据(写死的 JSON),跑通“阅读 -> 测试 -> 切换下一章”的完整逻辑。

Phase 2: Tauri 外壳与本地文件系统对接 (W3)

  • 目标: 将纯网页转化为桌面应用,实现真实的数据读写。
  • 任务:
  • 初始化 Tauri 项目 (npm create tauri-app)。
  • 引入 Tauri fs (文件系统) API,实现从本地硬盘真实读取和保存 .md 文件及 course_meta.json
  • 调试跨平台打包。

Phase 3: AI 大模型 API 与流式交互接入 (W4)

  • 目标: 为系统注入灵魂,实现真实的大模型对话和大纲/Markdown生成。
  • 任务:
  • 编写统一的 Fetch API 调用封装,支持 SSE (Server-Sent Events) 流式打字机效果。
  • 完成“系统提示词”组装逻辑的代码编写。
  • 实现基于 JSON Schema 的强制工具调用(Tool Calling),稳定输出格式化测试题。

Phase 4: RAG 与上下文向量化 (W5-W6)

  • 目标: 解决大模型遗忘问题,实现基于本地知识库的问答。
  • 任务:
  • 引入本地向量化工具(将历史 Markdown 和对话切片,调用 Embedding API 获取向量)。
  • 存入 SQLite (或外挂本地向量库)。
  • 实现“用户提问 -> 向量检索匹配 Top 3 片段 -> 拼入 Prompt -> AI 响应”的 RAG 管道。

Phase 5: 测试、优化与发布 (W7)

  • 任务:
  • 代码重构,消除冗余的 JS 逻辑。
  • 压力测试:渲染包含数万字及复杂 LaTeX 公式的 Markdown 时的性能表现。
  • 错误处理:API 超时、断网、本地文件损坏的优雅降级提示。

六、 风险评估与应对策略

  1. AI 幻觉与格式破坏风险
  • 表现: AI 应该输出 JSON 考题,但输出了一堆说明文字,导致前端解析崩溃。
  • 应对: 严格限制提示词,使用各大模型的 JSON Mode 功能;在前端 JS 中增加 try-catch 解析机制,解析失败时触发重试或优雅提示用户。
  1. 大上下文导致的 Token 费用激增 / 延迟卡顿
  • 表现: 随着学习深入,直接拼接所有历史记录会导致 API 请求极慢。
  • 应对: 坚决执行“滑动窗口 + 动态摘要”机制。超过 5 轮的对话让 AI 在后台总结为一句“当前学情摘要”替换原文。
  1. XSS 安全漏洞
  • 表现: AI 在 Markdown 中恶意或错误生成带有 <script> 标签的内容。
  • 应对:marked.parse() 渲染前,强制通过 DOMPurify.sanitize() 进行清洗,绝不妥协。

此方悬停
相册 小说 Ai