| name | analyze-gaps |
| description | 分析学生知识薄弱环节,追根因、评估下游影响、按紧急度排序。使用场景:学生问"我还有哪里不会"或需要诊断学习障碍时。 |
analyze-gaps
从 StudentProfile 知识图谱提取薄弱点,做根因分析(为什么薄弱)、下游影响评估(阻塞哪些后续知识)、错误模式归类,综合评分排序,并将共享根因的薄弱点分组输出。
输入参数
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|
| student_id | string | 否 | "" | 学生 ID,为空时使用当前默认画像 |
| subject | string | 否 | "" | 学科过滤:math / physics / english / chemistry,空=全部 |
| grade | string | 否 | "" | 年级,用于参考课标(如 "高一") |
返回字段
| 字段 | 类型 | 说明 |
|---|
| success | bool | 是否执行成功 |
| gaps | array | 薄弱点详情列表,按 urgency_score 降序 |
| gaps[].knowledge_point | string | 薄弱知识点名称 |
| gaps[].mastery | string | 当前掌握度 |
| gaps[].urgency | string | high / medium / low |
| gaps[].urgency_score | float | 综合紧急度分数(0~1) |
| gaps[].root_causes | array | 未掌握的前置依赖知识点列表 |
| gaps[].blocks_learning_of | array | 此薄弱点阻塞的下游知识点 |
| gaps[].primary_error_type | string | 主要错误类型(概念混淆/计算/逻辑/审题) |
| gap_groups | array | 共享同一根因的薄弱点分组(≥2 个才出现) |
| gap_groups[].insight | string | 如 "「函数」未掌握导致 3 个知识点薄弱" |
| high_urgency_count | integer | 高优先级薄弱点数量 |
| summary | string | 人类可读摘要 |
紧急度评分公式
urgency_score = error_ratio×0.35 + root_causes数量×0.25 + blocks数量×0.15
+ exam_weight权重×0.15 + 低掌握度加成×0.10
内部逻辑
- 从 StudentProfile 取 top-10 薄弱点(低掌握度 + 高错误率)
- 按 subject 过滤
- 对每个薄弱点:追溯前置依赖图 → 找未掌握根因 → 统计下游阻塞 → 归类错误模式 → 计算评分
- 按 urgency_score 降序排列
_group_by_root_cause() 将共享根因的薄弱点合并,识别系统性问题
使用方
- ProgressAgent:核心诊断工具,结果用于制定修复方案和学习路径
注意
- 无薄弱点时返回
gaps: [] + 鼓励信息,不报错
- gap_groups 仅在 ≥2 个薄弱点共享同一根因时出现