两份成绩表,让 AI 看懂一个年级的真实成长
这一次,我们把 SGP 做成一个真正能重复使用的 Skill
前言
各位老师们大家好!
我是来自苏州电信智云中心 AI 团队的 TeleAgent 技术支撑小南。
昨天我们第一次尝试了:
让 AI 帮我们计算一个学生的 SGP。
我们从一张成绩表出发,
寻找学生的“学术同伴”,
再根据后续成绩,
计算这个学生在同起点学生中的成长位置。
昨天我们解决的是:
一个学生,怎么分析他的成长?
但是昨天其实只是:
开胃小菜。
因为学校真正进行成绩分析的时候,
面对的肯定不只是:
一个学生、一门成绩。
真实情况往往是:
一个年级上百名学生,
每名学生又有:
语文、数学、英语、物理、化学……
多门学科。
而且老师真正拿到手里的,
通常也不是一张已经整理好的:
“初始成绩 + 后续成绩”表。
更可能就是:
第一次考试成绩单
和
第二次考试成绩单。
所以今天,
我们把昨天的实验真正往前推进一步:
直接把前后两次成绩单交给 TeleAgent,让它自己匹配学生、识别科目,分别计算每个学生各科和总分的成长百分位,再分析整个班级和年级的成长情况。
最后,
我们再把整套方法做成一个:
“学生学业成长分析助手(简易SGP)” Skill
大家可以到TeleAgent的技能广场上搜索该技能,下载安装后直接使用哦!
以后换一个班,
换一个年级,
甚至科目数量发生变化,
都可以继续使用。
一、今天的数据,更像一份真正的学校成绩单
昨天为了先把 SGP 原理讲清楚,
我们的模拟数据只有:
学生编号、
班级、
初始成绩、
后续成绩。
而今天,
我们准备了一套更接近学校实际情况的模拟数据。
学校:
阳光中学
年级:
七年级
一共:
3个班
每班:
50名学生
全年级:
150名学生。
考试科目包括:
语文、
数学、
英语、
物理、
化学。
另外还有:
总分。
更重要的是:
今天我们没有提前把两次考试整理到同一张表里。
而是准备了两份独立文件:
《阳光中学七年级第一次考试成绩.xlsx》
和
《阳光中学七年级第二次考试成绩.xlsx》
这才更接近老师实际工作中拿到成绩单的样子。

二、今天不再一步一步写提示词,先把方法做成 Skill
昨天,
我们每一步都是自己告诉 AI:
先找学术同伴,
再计算 SGP,
再解释结果。
但是如果以后学校每次考试都要分析,
每次还重新输入这么多提示词,
还是比较麻烦。
所以今天第一件事:
我们直接把昨天验证过的方法,
升级成一个可以反复使用的:
“学生学业成长分析助手(简易SGP)” Skill
这个 Skill 要做的事情很明确:
读懂成绩表
↓
识别前后两次考试
↓
匹配同一个学生
↓
自动识别考试科目
↓
分别寻找各科和总分的学术同伴
↓
批量计算SGP
↓
分析学生、班级和年级成长情况
我们直接告诉 TeleAgent制作该Skill的提示词(见文末附件),然后等待 TeleAgent 创建完成。

这里大家会发现:
我们今天不是:
让 AI 帮我们算一次。
而是把:
“怎么算”
这套规则直接保存下来。
以后再换一份成绩表,
继续使用这个 Skill 就可以了。
三、今天我们把昨天的“±10分”也升级了
这里还有一个非常重要的变化。
昨天为了让大家快速理解什么是“学术同伴”,
我们用了一个很简单的规则:
初始成绩上下浮动10分,作为学术同伴。
昨天的最终教程里也是按照这一规则完成个人案例的。
给老师们的 TeleAgent 实战课 10
但是到了今天:
150名学生 + 5门学科 + 总分
以后,
如果所有地方还统一使用:
“上下10分”,
问题就来了。
比如:
数学85分附近,
可能有很多学生。
但是化学85分附近,
可能只有几个人。
再比如:
单科满分100分,
而总分满分500分。
显然:
单科的“±10分”
和总分的“±10分”
也不是一个概念。
所以今天,
我们把学术同伴规则升级成:
动态寻找学术同伴
简单理解就是:
不先规定一定要上下几分,而是优先寻找一定数量、初始成绩最接近的学生。
我们今天默认:
每名学生、每门学科,优先寻找约15—25名初始成绩最接近的学生作为学术同伴。
比如:
某个学生第一次考试:
数学85分。
如果:
82~88分之间,
已经能够找到足够多的学术同伴,
那就不用再扩大范围。
但是另一个科目:
可能需要扩大到:
80~90分,
才能找到足够数量的同伴。
所以:
不同学生、不同科目,实际使用的成绩范围可以不一样。
而且如果学校本身已经有自己的评价规则,
比如规定:
“数学统一按照上下5分寻找同伴。”
也可以直接告诉 Skill,
让它按照学校自己的规则执行。
也就是:
默认自动找,需要的时候也可以自己定。
四、同一个学生,每门课其实都有自己的“学术同伴”
这一点,
也是今天特别重要的地方。
比如某个学生:
第一次语文:
92分。
第一次数学:
65分。
那么计算:
语文SGP
应该寻找:
语文92分附近的学生。
但是计算:
数学SGP
应该寻找:
数学65分附近的学生。
不能:
先按照总分找一批学术同伴,
然后拿这一批学生计算所有学科。
所以今天这个 Skill,
会分别计算:
语文SGP
数学SGP
英语SGP
物理SGP
化学SGP
以及:
总分SGP。
这样我们才能看到:
一个学生到底是:
整体都在成长,
还是:
某一门学科成长特别明显。
五、现在,把两份成绩单直接交给 Skill
Skill 创建完成以后,
我们马上测试。
把:
《阳光中学七年级第一次考试成绩.xlsx》
和
《阳光中学七年级第二次考试成绩.xlsx》
一起上传。
然后直接告诉 TeleAgent:
请使用“学生学业成长分析助手(简易SGP)”
分析我上传的阳光中学七年级两次考试成绩。
本次使用默认动态学术同伴规则。
请先检查两份成绩表,
识别哪份是初始考试、哪份是后续考试,
匹配学生和科目。
确认数据没有明显问题后,
再完成全年级SGP分析。
本次暂时不需要生成所有学生的详细个人报告。
请按照Skill默认流程输出:
1数据识别和匹配情况;
2年级整体成长情况;
3各学科成长情况;
4各班级、各学科成长情况;
5高成长、正常成长、低成长学生比例;
6学生SGP明细;
7选择2名有代表性的学生进行成长案例展示。
然后:
让 TeleAgent 自己开始工作。









我们已经不是在演示一个公式了。
而是在看:
整个年级的成长结构。
六、现在看到的,就不只是“谁考了多少分”
普通成绩分析,
最容易看到的是:
谁考第一名?
哪个班平均分最高?
谁这次提高了20分?
但是今天,
我们多了另外一个观察角度:
这个学生和自己起点相近的人相比,后来成长到了什么位置?
比如:
一个学生第二次数学考了82分。
在全年级里,
82分可能并不算最高。
但是如果:
他第一次数学只有65分,
而和他起点相近的学生,
第二次大部分只考到70多分,
那么:
他的数学SGP依然可能比较高。
反过来:
有一个学生第二次数学考了95分。
绝对成绩非常高。
但是如果:
他第一次就已经94分,
而和他同起点的学生第二次普遍保持在95分左右,
那么:
他的SGP未必特别高。
这也是成长评价和普通成绩排名最大的区别:
一个看结果位置,
一个看同起点下的成长位置。
七、150个学生,可以从年级一直看到班级和学科
完成所有学生的计算以后,
Skill首先可以帮我们看:
整个年级
比如:
语文整体成长分布怎么样?
数学怎么样?
英语怎么样?
物理、化学又有什么特点?
然后继续往下:
看不同班级
比如:
七(1)班数学成长分布有什么特点?
七(2)班英语呢?
七(3)班物理呢?
这里有一个非常重要的地方:
虽然最后我们会按班级汇总,
但是计算学生SGP的时候,
学术同伴仍然优先从全年级150名学生中寻找。
而不是:
七(1)班只和七(1)班比较,
七(2)班只和七(2)班比较。
这样三个班使用的是:
同一个年级参照系。
最后再按照班级进行汇总,
班级之间的成长分析才更有意义。
八、什么是高成长、正常成长和低成长?
按照我们这次简易 SGP 模型采用的规则:
SGP ≥ 65
高成长
35 < SGP < 65
正常成长
SGP ≤ 35
低成长
所以 Skill 不仅会告诉我们:
某个班数学SGP大概处在什么位置,
还可以继续统计:
这个班:
高成长学生有多少?
正常成长学生有多少?
低成长学生有多少?
这样看到的就不只是:
一个平均数。
而是:
整个班级学生的成长结构。
当然,
这里也要特别说明:
这三个区间是我们这套简易模型采用的:
成长分层规则。
它不是给学生贴:
“优秀、中等、差”
这样的标签。
学校如果有自己的评价方案,
这个区间也可以继续调整。
九、班级和学科分析,不能直接变成“给老师排名”
做到这里,
大家可能马上想到一个问题:
既然能够看到:
不同班级、不同学科的成长情况,
是不是就可以直接判断:
哪个老师教得最好?
这里一定要谨慎。
比如我们发现:
七(2)班数学成长分布相对靠前。
这个结果当然可以帮助学校开展:
学科教研、
班级分析、
教学复盘。
但是不能简单写成:
“所以七(2)班数学老师教学水平最高。”
因为学生成长还会受到:
学生基础、
班级构成、
考试情况、
学习投入等很多因素影响。
所以这个 Skill 更适合帮助学校:
发现值得进一步研究的现象
而不是直接替学校:
给学生或者老师下结论。
十、150个学生,要不要每个人都生成一份长报告?
当然可以。
但是我没有让 Skill 默认这么做。
因为150名学生,
如果一上来就生成:
150份长篇个人报告,
反而不方便老师先看整体情况。
所以默认情况下,
Skill先提供:
年级分析
班级分析
学科分析
以及:
学生SGP明细表。
然后自动从150名学生中选择:
2名比较有代表性的学生
例如:
一个学生:
总分成长比较明显,但是不同学科成长差异较大。
另一个学生:
总分变化不明显,但是某一门学科成长特别突出。
然后展示:
初始成绩、
后续成绩、
各科SGP、
总分SGP、
学术同伴情况,
以及简单的成长分析。


如果老师真的需要:
某一个学生,
或者某一个班所有学生的详细成长报告,
再继续告诉它:
请根据刚才已经完成的SGP分析结果,
为七(1)班全部学生生成个人学业成长报告。
每名学生分别说明:
1各科初始成绩;
2各科后续成绩;
3各科SGP;
4各科成长位置;
5初始总分和后续总分;
6总分SGP;
7需要教师进一步关注的成长特点。
报告用于教师教学参考。
不要给学生贴能力标签,
不要简单评价学生“优秀”“落后”。
这样:
需要的时候再生成就可以了。
十一、如果学校上传的不是两份整齐的年级成绩单呢?
今天为了方便大家演示,
我们上传的是:
两份格式比较规范的年级成绩单。
但是实际学校使用的时候,
文件不一定这么整齐。
比如:
老师可能一次上传:
七(1)班第一次考试、
七(2)班第一次考试、
七(3)班第一次考试、
七(1)班第二次考试、
七(2)班第二次考试、
七(3)班第二次考试……
也可能:
两次考试放在同一个 Excel 的不同 Sheet 里。
甚至:
下一次考试多了一门学科。
这些情况,
我们在 Skill 里也提前考虑了。
它会先做的不是:
马上计算。
而是:
先读懂文件。
识别:
哪些属于第一次考试?
哪些属于第二次考试?
有哪些班级?
有哪些科目?
哪些学生能够前后匹配?
如果确实无法判断:
哪一次是初始成绩,
哪一次是后续成绩,
它应该:
先问老师。
而不是自己猜。
这也是今天我们把它做成 Skill,
而不是只写一条提示词的原因。
十二、今天我们真正完成的,不只是一次计算
昨天,
我们做的是:
AI帮我分析一个学生。
今天,
我们已经把它升级成:
学校上传前后两次成绩 → AI自动完成整个年级的成长分析。
从:
一个学生
到了:
150名学生。
从:
一个总分
到了:
每一门学科 + 总分。
从:
一次提示词
到了:
可以反复使用的 Skill。
而且以后:
学生人数变了,
班级数量变了,
科目数量变了,
都不需要重新写一整套分析流程。
这才是 Skill 真正有价值的地方:
把一次成功的 AI 操作,变成以后可以重复使用的工作方法。
十三、最后还要说明一点
今天我们制作的是:
简易SGP学生学业成长分析助手
它保留的是 SGP 最核心的思想:
不要只比较学生最后考了多少分,而要看看他和相似起点的学生相比,成长到了哪里。
但是:
真正标准的 SGP 模型,
还会使用更加复杂的统计方法。
所以今天这个 Skill,
更适合作为学校开展:
学生成长观察、成绩诊断、学科教研和教学分析
的一种辅助工具。
而不是:
仅凭一次计算结果,
就评价一个学生、
一个班级,
或者一位老师。
十四、这个 Skill 后面还能继续升级
做到这里,
这个 Skill 已经可以真正拿来试用了。
但是后面其实还有很多可以继续升级的地方。
比如:
现在是:
两次考试。
以后可以继续做:
第一次考试
↓
第二次考试
↓
第三次考试
↓
第四次考试
把一个学期甚至一个学年的多次考试串起来。
这样我们看到的,
就不再只是:
“这个学生这一次成长怎么样?”
而是:
“这个学生一段时间以来的成长轨迹是什么样?”
还可以继续增加:
班级成长趋势图、
学科成长趋势、
学生个人成长曲线、
不同考试阶段变化分析……
这些我们以后还可以慢慢继续升级。
今天大家可以先拿:
“学生学业成长分析助手(简易SGP)”
试试看。
我是小南,
我们下期见!
附件
“学生学业成长分析助手(简易SGP)”完整Skill创建提示词:
请帮我创建一个可以反复使用和分享的 Skill。
Skill名称:
学生学业成长分析助手(简易SGP)
【一、Skill定位】
本Skill用于学校学生成绩的纵向成长分析。
用户可以上传同一批学生前后两次考试成绩,包括班级成绩表、年级成绩表,或者由多个班级文件组成的成绩数据。
Skill需要自动完成:
数据识别与匹配;
科目识别;
学术同伴确定;
各科SGP计算;
总分SGP计算;
学生成长分层;
班级分析;
年级分析;
典型学生案例分析;
结果解释与报告生成。
本Skill采用“简易SGP”方法进行教学和学校内部分析辅助,不等同于使用分位数回归等方法建立的标准统计SGP模型。
分析结果只用于教学研究和成长观察,不直接用于判断学生能力、教师教学水平或教师绩效。
【二、第一步:自动识别上传数据】
用户可能上传:
1两份完整年级成绩表;
2多个班级的第一次、第二次考试成绩表;
3一个Excel中包含两次考试的不同Sheet;
4文件名不规范但表格内容可以判断考试批次的数据。
首先检查全部上传文件,不要立即计算。
自动识别:
学生唯一编号/学号;
班级;
考试名称或考试时间;
科目;
单科成绩;
总分;
满分信息(如有)。
必须判断哪些数据属于“初始考试”,哪些属于“后续考试”。
优先依据:
考试日期、考试名称、文件名、Sheet名称和用户说明。
如果无法可靠判断先后顺序,必须询问用户,不得自行猜测。
【三、学生匹配】
以前后两次考试中的学生唯一编号作为首选匹配字段。
如果没有学生编号但存在其他稳定唯一标识,先向用户说明并确认后使用。
不得仅凭学生姓名进行模糊匹配后直接计算。
输出:
初始考试人数;
后续考试人数;
成功匹配人数;
仅存在于初始考试的人数;
仅存在于后续考试的人数;
重复编号或异常记录。
只有成功匹配且具有有效成绩的学生进入对应SGP计算。
【四、科目自动识别】
不要预设固定科目数量。
根据上传成绩表自动识别所有学科字段。
例如可能是:
语文、数学、英语;
也可能增加物理、化学、历史、道法等。
对于每一门可匹配的学科分别计算SGP。
如果存在总分字段:
检查总分与各科之和是否一致。
如果没有总分字段:
在各科具有统一、可加总口径时自动计算总分。
如果总分与各科之和明显不一致,或者可能存在赋分、折算、不同权重,先提示用户确认,不要擅自修改。
缺考、免考、空白、“-”等不得自动视为0分。
【五、学术同伴规则】
重要:
每一个科目必须根据该科目的“初始成绩”独立确定学术同伴。
例如:
计算数学SGP时,只依据初始数学成绩寻找数学学术同伴;
计算语文SGP时,只依据初始语文成绩寻找语文学术同伴;
计算总分SGP时,只依据初始总分寻找总分学术同伴。
不得使用总分学术同伴组直接计算所有单科SGP。
默认使用“动态学术同伴”模式:
以目标学生的初始成绩为中心,从相同成绩开始,逐步向上下扩大成绩范围,寻找初始成绩最接近的学生。
目标同伴规模:
优先达到15—25人(包含学生本人)。
当达到至少15人后停止继续扩大。
如果边界成绩存在多人并列,则边界同分学生全部纳入,允许同伴人数超过25人。
同伴优先从本次上传数据中同一年级、同一考试体系的全部可用学生寻找,不因班级不同而排除。
如果全年级有效样本不足15人,则使用所有能够合理匹配的最近邻学生,并在结果中标记:
“同伴样本较小,本次SGP稳定性有限,仅供参考。”
同时支持用户覆盖默认规则。
如果用户明确指定:
“±5分”
“±10分”
“每5分一个区间”
或其他同伴规则,
则按照用户规则执行,并在报告中注明。
每次分析必须记录:
该学生该科目实际使用的同伴人数;
实际初始成绩范围;
采用的同伴规则。
【六、简易SGP计算】
在每个学生、每个科目的学术同伴组内,根据后续考试成绩计算百分等级。
公式:
SGP = (L + 0.5 × E) × 100 / N
其中:
L = 同伴组中后续成绩低于该学生的人数;
E = 同伴组中后续成绩等于该学生的人数;
N = 学术同伴组总人数(包含学生本人)。
结果保留两位小数。
总分使用同样方法独立计算总分SGP。
【七、成长分层】
默认采用以下业务规则:
SGP ≥ 65:
高成长
35 < SGP < 65:
正常成长
SGP ≤ 35:
低成长
必须说明:
这是本简易模型采用的成长分层规则,可以根据学校自己的评价方案调整,不代表对学生能力高低的判断。
【八、群体统计】
完成所有学生、所有科目和总分SGP以后,分别进行:
1年级分析;
2班级分析;
3学科分析。
群体中心指标优先报告:
SGP中位数(MGP)。
同时可以补充:
平均SGP;
高成长人数及比例;
正常成长人数及比例;
低成长人数及比例;
有效样本数。
输出:
年级 × 学科成长总览表;
班级 × 学科成长比较表;
各班各科高/正常/低成长结构表。
不得仅根据SGP结果直接得出:
“某教师教学水平高/低”
“某班教师最好/最差”
等结论。
可以指出:
“该班该学科学生成长分布相对靠前/靠后,建议结合学生基础、教学安排、考试难度等进一步分析。”
【九、学生明细】
生成学生SGP明细表:
学生编号;
班级;
各科初始成绩;
各科后续成绩;
各科SGP;
各科成长层级;
初始总分;
后续总分;
总分SGP;
总分成长层级。
默认提供表格,不默认生成所有学生的长篇个人报告。
【十、典型学生案例】
默认从数据中选择2名具有分析价值的学生进行展示。
优先选择:
案例A:
总分成长较明显,但各学科成长存在差异的学生。
案例B:
总分整体较平稳,但某一学科明显成长或明显偏低的学生。
对每名案例学生展示:
初始与后续各科成绩;
各科SGP;
总分SGP;
同伴组情况;
成长特点;
教师可进一步关注的方向。
不要给学生贴“优秀、差生、能力不足”等标签。
【十一、个人报告按需生成】
只有用户明确提出:
“生成所有学生个人报告”
“生成某个学生详细报告”
“生成某个班全部学生报告”
时,才生成详细个人成长报告。
否则默认只提供:
学生SGP明细表 + 2名典型案例。
【十二、数据质量与异常处理】
分析前必须检查:
缺失值;
重复学生;
重复编号;
成绩超出合理满分;
前后考试学生无法匹配;
科目缺失;
总分异常;
疑似缺考;
文件结构差异。
对于不能可靠处理的数据,不要自行猜测或补造成绩。
先列出问题,并询问用户是否继续或如何处理。
【十三、默认输出顺序】
完成分析后按以下顺序输出:
1数据识别与匹配情况;
2本次SGP计算规则说明;
3年级成长总览;
4各学科成长分析;
5班级 × 学科成长分析;
6高/正常/低成长结构;
7学生SGP明细表;
8两名典型学生成长案例;
9数据质量及分析限制说明;
10可继续执行的操作建议。
如果当前工具支持生成Excel或Word文件,同时生成:
《学生SGP成长分析明细.xlsx》
和
《学生学业成长分析报告.docx》
【十四、隐私与使用原则】
优先使用学生编号,不要求真实姓名。
如果上传数据包含真实学生姓名或其他个人信息,只在完成任务所必需范围内使用,不在报告中重复展示不必要的个人信息。
SGP描述的是相对于相似起点学生的成长位置,不等于学生能力评价。
一次或少量考试结果不能单独代表学生整体发展。
分析结果用于教学诊断和教研参考,不直接作为学生、班级或教师的单一评价依据。
请按照以上规则创建一个可以反复使用、方便学校教师上传不同格式成绩数据进行分析的Skill。
- lesson11.pdf本教程 PDF 版,适合打印与离线阅读下载 →
《给老师们的 TeleAgent 实战课》系列 · 第 11 期 · 苏州电信智云中心 AI 团队出品 · ← 返回总目录
