跳转至

智能 tutoring 系统

项目背景与目标

个性化辅导是提升学习效果的关键,但传统一对一辅导成本高昂,难以规模化。班级授课制难以照顾个体差异,"学困生跟不上、学优生吃不饱"现象普遍。智能 tutoring 系统(Intelligent Tutoring System, ITS)通过 AI Agent 模拟人类教师,实现学情诊断、内容推荐、互动教学、即时反馈的个性化学习闭环,让每个学生都能获得专属辅导。

本项目目标是构建一个智能 tutoring Agent,覆盖 K12 主要学科,核心能力包括学情画像构建、知识图谱诊断、个性化内容推荐、苏格拉底式互动教学、学习路径动态调整。

需求分析

核心能力: 1. 学情诊断:通过测试与互动行为刻画学生知识掌握状态 2. 知识图谱:构建学科知识图谱,定位薄弱知识点与前置依赖 3. 内容推荐:根据学情推荐合适难度的题目与讲解 4. 互动教学:苏格拉底式提问引导思考,而非直接给答案 5. 即时反馈:答题过程实时提示错误与思路纠正 6. 学情报告:定期生成学习报告供学生与家长查看

用户角色:学生(学习主体)、教师(查看班级学情)、家长(监督进度)。

技术选型说明

模块 技术方案 选型理由
Agent 框架 LangGraph 教学流程状态机
知识图谱 Neo4j 学科知识点关系建模
学情模型 贝叶斯知识追踪 BKT 经典学情建模
LLM Qwen-Max 互动教学与讲解生成
题库 结构化题库 + 向量检索 题目按知识点标注
推荐算法 协同过滤 + 规则 个性化题目推荐
后端 FastAPI + WebSocket 实时互动
数据库 PostgreSQL + Redis 学情数据 + 会话状态

架构设计

flowchart TD
    S[学生] --> CHAT[互动界面 WebSocket]
    CHAT --> AGENT[Tutoring Agent]
    AGENT --> DIAG[学情诊断]
    DIAG --> KG[(知识图谱)]
    DIAG --> BKT[知识追踪模型]
    AGENT --> REC[内容推荐]
    REC --> QB[(题库)]
    AGENT --> TEACH[互动教学]
    TEACH --> LLM[LLM 推理]
    AGENT --> FB[反馈生成]
    BKT --> PROFILE[学情画像]
    PROFILE --> REP[学情报告]
    AGENT --> PATH[学习路径]
    PATH --> KG

关键模块实现思路

模块1:知识图谱与学情建模

构建学科知识图谱:节点为知识点(如"一元二次方程"),边为前置依赖("因式分解"→"一元二次方程")、包含关系。每个知识点关联若干题目,标注难度。

学情建模采用贝叶斯知识追踪(BKT):维护每个知识点的掌握概率,每次答题后用贝叶斯更新。四参数 BKT 考虑猜测(瞎蒙答对)与失误(会但答错),更贴近实际。

def update_mastery(prior, correct, p_slip=0.1, p_guess=0.2):
    if correct:
        post = prior * (1 - p_slip) / (prior * (1 - p_slip) + (1 - prior) * p_guess)
    else:
        post = prior * p_slip / (prior * p_slip + (1 - prior) * (1 - p_guess))
    return post  # 后验掌握概率

模块2:苏格拉底式互动教学

教学策略遵循"不直接给答案,引导思考"原则。LLM 在学生卡住时分层提示:先提示思路方向,再给部分线索,最后才讲解完整步骤。提示词工程约束 LLM 行为:

TEACH_PROMPT = """你是苏格拉底式辅导老师。
规则:
1. 不直接给出答案
2. 用提问引导学生思考
3. 学生卡住时给思路提示,分 3 级递进
4. 鼓励学生表达思路
当前知识点:{topic}
学生掌握度:{mastery}
学生回答:{answer}"""

互动过程记录学生思路轨迹,用于诊断错误根因而非仅判对错。

模块3:内容推荐

推荐策略平衡"巩固"与"拓展":掌握度 < 0.6 推荐基础题巩固;0.6-0.8 推荐中等题强化;> 0.8 推荐挑战题拓展。同时考虑前置依赖:当前知识点掌握不足时,回溯推荐前置知识点题目。

题目难度匹配用 Item Response Theory(IRT)模型,根据学生能力 θ 与题目难度 b 匹配,保证答对率在 60-80%(最近发展区)。

模块4:学习路径规划

基于知识图谱拓扑与学情画像生成个性化学习路径:薄弱知识点优先补,前置依赖先解决,相关知识点串联学习。路径动态调整:掌握一个知识点后解锁后继,未掌握则插入巩固练习。

def plan_path(student, target_topic):
    weak = [k for k in prereqs(target_topic) if student.mastery[k] < 0.6]
    path = topological_sort(weak)  # 按依赖排序
    path.append(target_topic)
    return path

核心流程详解

首次学习流程: 1. 学生选择学科与目标 → 入学测试(10-15 题) 2. 初始化学情画像 → 生成学习路径 3. 进入知识点学习:讲解 → 练习 → 反馈 4. 答题过程 BKT 实时更新掌握度 5. 掌握度达标 → 解锁下一知识点 6. 定期生成学情报告

互动教学流程: 1. 推荐题目 → 学生作答 2. 答对:正向反馈 + 同类强化 1 题 3. 答错:不直接给答案,启动苏格拉底引导 4. 引导后仍不会:分层提示 → 最终讲解 5. 错题归因:概念错/计算错/审题错,针对性补练

部署与优化建议

  • 学科覆盖:先从数学等结构化强的学科切入,再扩展文综理综
  • 题库建设:与教材出版社合作,题目标注知识点与难度
  • 多模态:支持公式渲染(KaTeX)、几何作图、化学方程式
  • 防作弊:互动过程分析答题模式,识别抄答案行为
  • 教师协同:教师查看班级学情热力图,聚焦共性难点
  • 家长沟通:周报推送学习时长、掌握度、薄弱点

常见问题与解决方案

问题 原因 解决方案
LLM 讲解出错 学科知识不足 题库附标准解析 + LLM 仅做引导
学生依赖提示 引导过频 提示冷却 + 先尝试再求助
学情画像漂移 BKT 参数固化 定期校准参数 + 冷启动测试
文科难诊断 答案非对错 引入开放式评分 + 多维诊断

扩展方向

  • 语音互动:低龄学生口语对话教学
  • 编程教学:代码执行沙箱 + 实时反馈
  • 实验仿真:物理化学虚拟实验
  • 情感识别:摄像头分析学习情绪,调整节奏