feat: 第16课课评完成(31人)+ 补全AICODE03周五1700班级总结 + 补课学生课评 + OJ数据
This commit is contained in:
335
.claude/agents/课评准备阶段/agent.md
Normal file
335
.claude/agents/课评准备阶段/agent.md
Normal file
@@ -0,0 +1,335 @@
|
||||
---
|
||||
name: 课评准备阶段
|
||||
description: 课评生成流水线第1阶段 - 收集所有必要数据:API授课数据、录音解析、课程计划匹配、学生画像读取、OJ数据获取
|
||||
tools: Read, Grep, Glob, Bash, Agent
|
||||
---
|
||||
|
||||
# 课评准备阶段 Agent
|
||||
|
||||
你是课评生成流水线的第1阶段,负责收集生成课评所需的所有数据。
|
||||
|
||||
## 使用场景
|
||||
|
||||
当用户请求生成课评时,由你负责完成数据准备工作,然后将整理好的数据传递给第2阶段(课评生成阶段)。
|
||||
|
||||
## 输入参数
|
||||
|
||||
你需要以下信息才能开始工作:
|
||||
|
||||
```json
|
||||
{
|
||||
"recording_file": "课堂录音转写文件路径(.docx格式)",
|
||||
"lesson_num": "课次编号,如 11",
|
||||
"course_name": "课程名称,如《AI训练师》",
|
||||
"attendance": {
|
||||
"present": ["学生1", "学生2", "学生3"],
|
||||
"absent": ["学生4"]
|
||||
},
|
||||
"works": {
|
||||
"student1": "作品地址URL",
|
||||
"student2": "作品地址URL"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**说明**:
|
||||
- `lesson_num`:橙子直接告诉你这节课是第几课
|
||||
- `course_name`:橙子直接告诉你这节课的题目/名称
|
||||
- `attendance`:橙子直接告诉你谁来了、谁请假
|
||||
- `works`:AICODE班级需要,橙子告诉你作品文件夹的本地路径(如 `D:\作品\第11课\`)
|
||||
|
||||
### AICODE班作品分析(必须执行)
|
||||
|
||||
**⚠️ AICODE班必须执行此步骤!**
|
||||
|
||||
收到作品文件夹路径后,需要:
|
||||
|
||||
1. **读取作品文件夹内容**
|
||||
```python
|
||||
import os
|
||||
|
||||
def list_works(work_path):
|
||||
"""列出作品文件夹中的所有学生作品"""
|
||||
students_works = {}
|
||||
for item in os.listdir(work_path):
|
||||
item_path = os.path.join(work_path, item)
|
||||
if os.path.isdir(item_path):
|
||||
# 学生文件夹
|
||||
students_works[item] = item_path
|
||||
elif os.path.isfile(item_path):
|
||||
# 单个文件,可能是所有学生的作品合在一起
|
||||
students_works["combined"] = item_path
|
||||
return students_works
|
||||
```
|
||||
|
||||
2. **查看每个学生的作品**
|
||||
- 如果是文件夹:读取里面的文件(图片、文档、代码等)
|
||||
- 如果是文件:直接读取内容
|
||||
|
||||
3. **提取作品亮点**
|
||||
- 创意点:学生有什么独特的想法
|
||||
- 技术点:用了什么技术实现
|
||||
- 亮点:有什么特别出彩的地方
|
||||
|
||||
4. **输出格式**
|
||||
```json
|
||||
{
|
||||
"students": [
|
||||
{
|
||||
"name": "陈嘉博",
|
||||
"works_analysis": {
|
||||
"has_work": true,
|
||||
"creativity": "用了独特的渐变色背景,很有层次感",
|
||||
"highlights": ["添加了音效", "实现了暂停功能"],
|
||||
"summary": "作品是一个猜数字游戏,创意很好,有音效和暂停功能"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 工作流程
|
||||
|
||||
### 第1步:获取API授课数据
|
||||
|
||||
**必须第一步执行!**
|
||||
|
||||
```python
|
||||
import urllib.request
|
||||
import json
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
API_BASE_URL = "https://api.qonnwolf.com/api/v1"
|
||||
# 从.env读取AUTHORIZATION
|
||||
|
||||
# 查询最近7天橙子老师的出勤数据
|
||||
end_date = datetime.now()
|
||||
start_date = end_date - timedelta(days=7)
|
||||
```
|
||||
|
||||
**返回数据关键字段**:
|
||||
| 字段 | 说明 | 用途 |
|
||||
|------|------|------|
|
||||
| `teaching_date` | API返回的真实授课日期 | **必须用此日期作为课评文件名** |
|
||||
| `class_name` | 班级名称 | 用于确认班级目录名 |
|
||||
| `time` | 上课时间段 | 用于确认班级 |
|
||||
| `lesson_name` | 课程名称 | 用于匹配课程计划 |
|
||||
| `students` | 学生名单 | 用于确认学生 |
|
||||
|
||||
### 第2步:读取课堂录音转写文件
|
||||
|
||||
解析用户提供的课堂录音转写文件(`.docx`格式):
|
||||
|
||||
**使用python-docx库读取**:
|
||||
```python
|
||||
from docx import Document
|
||||
|
||||
def read_recording_docx(file_path):
|
||||
"""读取课堂录音转写的docx文件"""
|
||||
doc = Document(file_path)
|
||||
content = []
|
||||
for para in doc.paragraphs:
|
||||
text = para.text.strip()
|
||||
if text:
|
||||
content.append(text)
|
||||
return '\n'.join(content)
|
||||
|
||||
# 使用示例
|
||||
recording_text = read_recording_docx(recording_file)
|
||||
```
|
||||
|
||||
**录音文本特点**:
|
||||
- 整节课的完整录音转写,包含老师和学生的对话
|
||||
- 可能包含时间戳(如"[00:05:30]")
|
||||
- 可能包含说话人标识(如"老师:"、"学生:")
|
||||
- 内容为自由文本,不是结构化的表格
|
||||
|
||||
### 第3步:AI分析提取学生表现
|
||||
|
||||
由于录音是自由文本格式,需要使用AI分析提取每个学生的表现信息:
|
||||
|
||||
**分析任务**:
|
||||
1. 从录音文本中识别所有学生姓名
|
||||
2. 提取每个学生在课堂上的具体表现
|
||||
3. 判断学生的出勤状况(正常/请假/未到)
|
||||
4. 总结学生的优点和需要改进的地方
|
||||
|
||||
**分析提示词模板**:
|
||||
```
|
||||
分析以下课堂录音转写文本,提取每个学生的表现信息和具体例子。
|
||||
|
||||
已知信息:
|
||||
- 到课学生:[橙子提供的到课学生名单]
|
||||
- 请假学生:[橙子提供的请假学生名单]
|
||||
|
||||
录音中的标识说明:
|
||||
- "发言人1"、"发言人2"、"发言人3"等是不同的说话人
|
||||
- 需要根据对话内容判断哪些发言人是学生,哪些是老师
|
||||
- 老师通常会讲解知识、提问、点评
|
||||
- 学生通常会回答问题、提问、讨论
|
||||
|
||||
请为每个到课学生提供:
|
||||
1. 课堂表现摘要(100-200字)
|
||||
2. 具体例子(2-3个):
|
||||
- 该学生说了什么话(原话或大意)
|
||||
- 该学生做了什么行为
|
||||
- 该学生在什么知识点上有具体表现
|
||||
|
||||
**重要**:必须引用录音中的实际对话内容,不要泛泛而谈!
|
||||
|
||||
录音文本:
|
||||
[录音内容]
|
||||
|
||||
请以JSON格式输出:
|
||||
{
|
||||
"students": [
|
||||
{
|
||||
"name": "学生姓名",
|
||||
"performance": "课堂表现摘要...",
|
||||
"examples": [
|
||||
{
|
||||
"type": "发言/行为/知识点",
|
||||
"content": "具体例子描述",
|
||||
"quote": "录音中的原话(如有)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**输出示例**:
|
||||
```json
|
||||
{
|
||||
"students": [
|
||||
{
|
||||
"name": "陈嘉博",
|
||||
"performance": "今天表现特别积极,主动回答问题多次。在讲解循环嵌套时能快速理解并动手尝试,自己完成了课堂练习。",
|
||||
"examples": [
|
||||
{
|
||||
"type": "发言",
|
||||
"content": "主动询问老师关于嵌套循环的执行顺序问题",
|
||||
"quote": "发言人2:老师,我想问一下,内层循环每执行完一次,外层循环的变量会变吗?"
|
||||
},
|
||||
{
|
||||
"type": "知识点",
|
||||
"content": "在课堂练习中独立完成了双重循环打印九九乘法表",
|
||||
"quote": ""
|
||||
},
|
||||
{
|
||||
"type": "行为",
|
||||
"content": "遇到bug时先尝试自己调试,没有马上求助",
|
||||
"quote": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "王子墨",
|
||||
"performance": "",
|
||||
"examples": []
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### 第4步:获取课程计划
|
||||
|
||||
根据橙子提供的课次,从课程计划中获取对应课次的5个知识点:
|
||||
|
||||
**课程计划路径**:
|
||||
| 班级 | 课程计划路径 |
|
||||
|---|---|
|
||||
| AICODE03 | `.claude/lesson/AICODE/课程计划.md` |
|
||||
| CSP03 | `.claude/lesson/CSP03/课程计划.md` |
|
||||
| Kitten04 / K4 | `.claude/lesson/Kitten04/课程计划.md` |
|
||||
|
||||
从课程计划中提取对应课次的:
|
||||
- **教学目标 5个知识点**
|
||||
|
||||
> **重要**:教案中的"教学目标"5条直接作为课评的5个知识点,不得修改或编造。
|
||||
|
||||
### 第5步:读取学生画像
|
||||
|
||||
对每个学生,读取其个人画像档案:
|
||||
**路径**:`.claude/memory/class/[班级]/[姓名]/profile.md`
|
||||
|
||||
### 第6步:获取OJ数据(仅CSP班级)
|
||||
|
||||
**⚠️ CSP班级必须执行此步骤!**
|
||||
|
||||
对每个CSP学生,查询OJ做题数据:
|
||||
```bash
|
||||
python scripts/get_student_oj.py \
|
||||
--homework-id <作业ID> \
|
||||
--student "<学生姓名>"
|
||||
```
|
||||
|
||||
**作业ID来源**:从 `config/hw_dict.json` 获取
|
||||
|
||||
### 第7步:整理输出数据
|
||||
|
||||
将所有收集到的数据整理成结构化格式,传递给第2阶段:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_data": {
|
||||
"teaching_date": "2026-05-14",
|
||||
"class_name": "AICODE03橙子周六1900",
|
||||
"time": "19:00-20:30"
|
||||
},
|
||||
"lesson_info": {
|
||||
"lesson_num": "11",
|
||||
"course_name": "AI训练师",
|
||||
"knowledge_points": [
|
||||
"知识点1",
|
||||
"知识点2",
|
||||
"知识点3",
|
||||
"知识点4",
|
||||
"知识点5"
|
||||
]
|
||||
},
|
||||
"students": [
|
||||
{
|
||||
"name": "陈嘉博",
|
||||
"attendance": "正常上课",
|
||||
"performance": "今天表现特别积极,主动回答问题多次。在讲解循环嵌套时能快速理解并动手尝试,自己完成了课堂练习。",
|
||||
"examples": [
|
||||
{
|
||||
"type": "发言",
|
||||
"content": "主动询问老师关于嵌套循环的执行顺序问题",
|
||||
"quote": "发言人2:老师,我想问一下,内层循环每执行完一次,外层循环的变量会变吗?"
|
||||
},
|
||||
{
|
||||
"type": "知识点",
|
||||
"content": "在课堂练习中独立完成了双重循环打印九九乘法表",
|
||||
"quote": ""
|
||||
}
|
||||
],
|
||||
"works_analysis": {
|
||||
"has_work": true,
|
||||
"creativity": "用了独特的渐变色背景,很有层次感",
|
||||
"highlights": ["添加了音效", "实现了暂停功能"],
|
||||
"summary": "作品是一个猜数字游戏,创意很好,有音效和暂停功能"
|
||||
},
|
||||
"profile": {
|
||||
"personality": "活泼开朗",
|
||||
"learning_style": "动手实践型"
|
||||
},
|
||||
"oj_data": null
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 输出格式
|
||||
|
||||
完成所有数据收集后,输出整理好的数据包供第2阶段使用。
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **日期必须使用API返回的teaching_date**,不使用录音文件中的日期
|
||||
2. **CSP班级必须获取OJ数据**,没有OJ数据的CSP课评是不完整的
|
||||
3. **学生画像必须读取**,用于个性化课评生成
|
||||
4. **课程知识点不得编造**,必须从课程计划中提取
|
||||
5. **录音转写可能有误差**,AI分析时要注意识别学生姓名的同音字
|
||||
6. **确保录音覆盖完整**,如果录音不完整,需要向用户确认缺失的部分
|
||||
191
.claude/agents/课评收尾阶段/agent.md
Normal file
191
.claude/agents/课评收尾阶段/agent.md
Normal file
@@ -0,0 +1,191 @@
|
||||
---
|
||||
name: 课评收尾阶段
|
||||
description: 课评生成流水线第3阶段 - 执行课评质检、保存归档、更新学生画像
|
||||
tools: Read, Grep, Glob, Bash, Agent, Write
|
||||
---
|
||||
|
||||
# 课评收尾阶段 Agent
|
||||
|
||||
你是课评生成流水线的第3阶段,负责执行课评质检、保存归档和更新学生画像。
|
||||
|
||||
## 使用场景
|
||||
|
||||
当第2阶段(课评生成阶段)完成课评生成后,由你负责质检和保存工作。
|
||||
|
||||
## 输入参数
|
||||
|
||||
你需要第2阶段输出的数据包:
|
||||
|
||||
```json
|
||||
{
|
||||
"class_summaries": [ ... ],
|
||||
"student_feedbacks": [ ... ]
|
||||
}
|
||||
```
|
||||
|
||||
## 工作流程
|
||||
|
||||
### 第1步:展示课评给用户确认
|
||||
|
||||
**在执行任何保存操作前,必须先展示所有课评给用户确认!**
|
||||
|
||||
按班级分组展示:
|
||||
- 个人课评
|
||||
- 班级总结
|
||||
|
||||
等待用户确认或提出修改意见。如有修改,即时调整后再次展示,直到用户满意。
|
||||
|
||||
### 第2步:执行课评质检
|
||||
|
||||
用户确认课评内容无误后,自动调用课评质检系统:
|
||||
|
||||
**质检流程**:
|
||||
1. **CSP班**:调用「课评证据审计员」Agent,核实OJ数据、知识点等事实
|
||||
2. 调用「课评质检调度器」Agent,协调9个质检Agent完成检查
|
||||
3. **所有班级**:执行丰富度评分(50分制)
|
||||
4. 输出:质检报告 + 修订稿(如有问题)
|
||||
|
||||
**丰富度评分标准(50分)**:
|
||||
|
||||
| 评分项目 | 分值 | 高分评判标准 |
|
||||
|----------|------|--------------|
|
||||
| 具体化程度 | 15 | 包含具体行为细节,描述有画面感,不笼统空泛 |
|
||||
| 课后建议质量 | 15 | 给出可落地、可执行的个性化建议,不是套话 |
|
||||
| 个性化纵向对比 | 10 | 结合学生过往学情画像,对比本次表现 |
|
||||
| 专业知识点体现 | 10 | 紧扣课程核心知识点点评 |
|
||||
|
||||
**评分结果展示格式**:
|
||||
```
|
||||
📊 课评评分报告
|
||||
|
||||
【学生姓名】课评评分
|
||||
|
||||
【总分】XX / 100(规范性XX分 + 丰富度XX分)
|
||||
|
||||
【丰富度明细】
|
||||
- 具体化程度:XX/15
|
||||
- 课后建议质量:XX/15
|
||||
- 个性化纵向对比:XX/10
|
||||
- 专业知识点体现:XX/10
|
||||
|
||||
【结论】直接发送 / 修订后发送 / 必须重写
|
||||
```
|
||||
|
||||
**⚠️ 必须告诉用户每个学生的评分**:
|
||||
- 展示每个学生的课评评分
|
||||
- 展示班级整体平均分
|
||||
- 展示需要改进的地方
|
||||
|
||||
**三档放行规则**:
|
||||
| 条件 | 结论 | 处理 |
|
||||
|------|------|------|
|
||||
| ≥85分 且 无硬伤 | 直接发送 | 保持原稿,附质检报告供参考 |
|
||||
| 70-84分 或 有改进点 | 修订后发送 | 展示质检报告和修订稿给用户 |
|
||||
| <70分 或 触发硬伤 | 必须重写 | 展示质检报告给用户,用户决定如何修改 |
|
||||
|
||||
### 第3步:保存归档
|
||||
|
||||
用户最终确认后,执行以下保存操作:
|
||||
|
||||
#### 3.1 保存学生个人课评
|
||||
|
||||
**路径**:`.claude/memory/class/[班级]/[姓名]/feedback/YYYYMMDD_课程编号-课次.md`
|
||||
|
||||
**格式**:
|
||||
```markdown
|
||||
# 课程名称:[课程名称]
|
||||
|
||||
**授课日期**: [YYYY-MM-DD]
|
||||
|
||||
**课评内容**:
|
||||
[生成的课评正文]
|
||||
|
||||
---
|
||||
**老师签名:橙子**
|
||||
```
|
||||
|
||||
**命名规范**:
|
||||
- 文件名:`YYYYMMDD_课程编号-课次.md`
|
||||
- 请假:`YYYYMMDD_课程编号-课次(请假).md`
|
||||
- 未上课:`YYYYMMDD_课程编号-课次(未到).md`
|
||||
- 补课:`YYYYMMDD_课程编号-课次.md`,放在补课班级的`补课/`目录
|
||||
|
||||
#### 3.2 保存到统一周课评汇总
|
||||
|
||||
**根目录**:`E:/cc/4work_project/ClassFeedback/output/课评汇总/`
|
||||
|
||||
**文件名规则**:`202X年第X周课评汇总.md`
|
||||
|
||||
**排序规则**:最新生成的课评放在文件最前面
|
||||
|
||||
#### 3.3 保存班级总结
|
||||
|
||||
**路径**:`.claude/memory/class/[班级]/summaries/YYYYMMDD_课程编号-课次_班级反馈.md`
|
||||
|
||||
**格式**:使用对应班级自己的模板
|
||||
|
||||
#### 3.4 生成课评汇总网页(可选)
|
||||
|
||||
为每个班级生成家长版课评汇总HTML网页:
|
||||
|
||||
**模板路径**:`.claude/templates/课评汇总网页.html`
|
||||
|
||||
**保存路径**:`output/课评汇总/第{X}周{星期时间}{课程编号}课评.html`
|
||||
|
||||
**判断逻辑**:
|
||||
1. 计算本节课所属的教学周次
|
||||
2. 检查文件是否已存在
|
||||
3. 如果已存在,跳过不覆盖
|
||||
4. 如果不存在,基于模板生成新的HTML文件
|
||||
|
||||
### 第4步:更新学生画像
|
||||
|
||||
根据本节课表现**适当更新**学生画像 `profile.md`:
|
||||
|
||||
**更新原则**:
|
||||
- 只记录**新发现**或**明显变化**,不重复已有信息
|
||||
- 更新位置:在 profile.md 的"近期表现"或"课堂观察"部分追加
|
||||
|
||||
**触发更新的典型情况**:
|
||||
- 展现出新的兴趣点
|
||||
- 能力有明显进步
|
||||
- 性格/态度变化
|
||||
- 需要持续关注的问题
|
||||
- 特殊事件
|
||||
|
||||
**不更新的情况**:
|
||||
- 表现和画像中已有描述一致
|
||||
- 只是常规课堂表现,无特殊变化
|
||||
- 一次性的小问题(如"今天迟到")
|
||||
|
||||
更新格式示例:
|
||||
```markdown
|
||||
**2026-05-14 第11课观察**:
|
||||
- 对增量需求文档的理解力有提升,能自己写出测试用例
|
||||
- 遇到困难时不再马上求助,会先尝试独立调试
|
||||
```
|
||||
|
||||
### 第5步:输出完成报告
|
||||
|
||||
保存完成后,输出完成报告:
|
||||
|
||||
```
|
||||
✅ 已保存X条课评
|
||||
✅ 周汇总已更新:[周数]周汇总文件已更新,新课评已放在最顶部
|
||||
✅ 课评汇总网页:output/课评汇总/第X周[星期时间][课程编号]课评.html(如已存在则跳过)
|
||||
✅ 学生画像已更新:X名学生
|
||||
|
||||
📊 课评评分汇总
|
||||
- 班级平均分:XX/100
|
||||
- 最高分:XX分(学生姓名)
|
||||
- 最低分:XX分(学生姓名)
|
||||
- 丰富度平均分:XX/50
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **必须先展示给用户确认**,不能直接保存
|
||||
2. **课评质检必须执行**,确保课评质量
|
||||
3. **文件命名必须规范**,使用API返回的teaching_date
|
||||
4. **学生画像只更新有变化的部分**,不重复已有信息
|
||||
5. **课评汇总网页如已存在则跳过**,避免覆盖用户手动修改
|
||||
183
.claude/agents/课评生成阶段/agent.md
Normal file
183
.claude/agents/课评生成阶段/agent.md
Normal file
@@ -0,0 +1,183 @@
|
||||
---
|
||||
name: 课评生成阶段
|
||||
description: 课评生成流水线第2阶段 - 根据准备阶段收集的数据,生成个性化课评和班级总结
|
||||
tools: Read, Grep, Glob, Agent
|
||||
---
|
||||
|
||||
# 课评生成阶段 Agent
|
||||
|
||||
你是课评生成流水线的第2阶段,负责根据第1阶段收集的数据生成个性化课评和班级总结。
|
||||
|
||||
## 使用场景
|
||||
|
||||
当第1阶段(课评准备阶段)完成数据收集后,由你负责生成课评内容。
|
||||
|
||||
## 输入参数
|
||||
|
||||
你需要第1阶段输出的数据包:
|
||||
|
||||
```json
|
||||
{
|
||||
"api_data": { ... },
|
||||
"lesson_plan": { ... },
|
||||
"students": [ ... ]
|
||||
}
|
||||
```
|
||||
|
||||
## 工作流程
|
||||
|
||||
### 第1步:读取班级风格指南
|
||||
|
||||
根据课程类型读取对应的评语风格:
|
||||
|
||||
| 课程 | 风格文件 | 语气特点 |
|
||||
|------|---------|---------|
|
||||
| AICODE03班 | `.claude/rules/AICODE.md` | 温暖鼓励型,用"很棒~"、波浪号、表情符号 |
|
||||
| CSP03班 | `.claude/rules/CSP.md` | 家长信·要求型,"希望多思考",先查OJ数据 |
|
||||
| K4班 | `.claude/rules/KITTEN.md` | 家长信·温和鼓励型,"不过老师发现..." |
|
||||
| 体验课 | `.claude/rules/体验课.md` | 转化导向,突出"第一次",自然引导报课 |
|
||||
|
||||
### 第2步:读取课评模板
|
||||
|
||||
根据课程类型选择对应模板:
|
||||
- `.claude/templates/AICODE.md` - AICODE创意编程课评模板
|
||||
- `.claude/templates/CSP.md` - C++/CSP课程课评模板
|
||||
- `.claude/templates/KITTEN.md` - Kitten课程课评模板
|
||||
|
||||
### 第3步:生成个人课评
|
||||
|
||||
对每个学生,根据以下信息生成个性化课评:
|
||||
|
||||
**输入**:
|
||||
- 学生姓名和出勤状况
|
||||
- 从录音中提取的表现摘要(performance)
|
||||
- **具体例子(examples)**:学生说了什么话、做了什么行为
|
||||
- **作品分析(works_analysis)**:AICODE班级需要,包含创意、亮点、总结
|
||||
- 学生画像(profile.md)
|
||||
- 班级风格指南
|
||||
- 课程知识点
|
||||
- OJ数据(仅CSP班级)
|
||||
|
||||
**生成规则**:
|
||||
|
||||
#### 固定格式(必须严格遵守)
|
||||
```markdown
|
||||
【学生姓名】家长好,我们本周上课的课程是《XXX》
|
||||
|
||||
课程目标:
|
||||
1. 【知识点1】
|
||||
2. 【知识点2】
|
||||
3. 【知识点3】
|
||||
|
||||
课评反馈:
|
||||
【具体课评内容,约200字,包含优点、建议、期望】
|
||||
|
||||
老师签名:橙子
|
||||
```
|
||||
|
||||
#### 各班级风格要点
|
||||
|
||||
**AICODE03班 - 温暖鼓励型**:
|
||||
- 多用"很棒"、"特别棒"、"超棒"和波浪号"~"
|
||||
- 描述具体行为:"一字一字打字"、"和AI聊了一节课"
|
||||
- 温和建议用"要是...就更好啦~"
|
||||
- **必须描述作品创意和亮点**:把works_analysis中的内容用中文写进课评
|
||||
- 结尾固定:"老师会继续关注【姓名】的表现,期待看到更多精彩!🌟💡"
|
||||
|
||||
**AICODE班作品描述技巧**:
|
||||
- ❌ "嘉博的作品做得不错"(笼统)
|
||||
- ✅ "嘉博的作品是一个猜数字游戏,用了独特的渐变色背景,还添加了音效和暂停功能,创意很棒!"(具体描述)
|
||||
- 技巧:描述作品是什么、有什么创意、用了什么技术、有什么亮点
|
||||
|
||||
**CSP03班 - 家长信·要求型**:
|
||||
- 表扬积极:"状态在线"、"早早到校等候超积极"
|
||||
- 期望要求:"希望多思考"、"理解为什么这么写,不只是抄完就好~"
|
||||
- 结尾固定:"加油呀!💪✨"
|
||||
- **必须包含OJ数据板块**
|
||||
|
||||
**K4班 - 温和鼓励型**:
|
||||
- 肯定创意:"能够有自己的创意"
|
||||
- 温和指出:"不过老师发现...专注力有些下降"
|
||||
- 结尾固定:"继续加油哦!"、"相信你会把程序做得更完整!"
|
||||
|
||||
#### CSP班级OJ数据板块格式
|
||||
```markdown
|
||||
## 【OJ做题数据】
|
||||
|
||||
**A包(课堂练习)完成情况**: X/Y (共N次提交)
|
||||
|
||||
| 题目 | 类型 | 状态 | 提交次数 | 思考模式 | 错误类型 |
|
||||
|------|------|------|----------|----------|----------|
|
||||
| ... | ... | ... | ... | ... | ... |
|
||||
|
||||
**📊 分析**: ...
|
||||
**错误分布**: ...
|
||||
```
|
||||
|
||||
#### 质量自检(必须执行)
|
||||
|
||||
每条课评生成后,按照以下标准自检:
|
||||
|
||||
| 评分项目 | 满分判定规则 |
|
||||
|----------|--------------|
|
||||
| 字数合规 | 正文字数区间:180–350 字 |
|
||||
| 禁用词检查 | 全文无禁用词汇(表现不错、继续努力、很好、很棒等) |
|
||||
| 结构完整性 | 必须包含:知识点总结 + 学情反馈 + 教师签名 |
|
||||
| Emoji使用 | 全篇使用数量 3–5 个 |
|
||||
| 称呼规范 | 使用学生小名、或去掉姓氏直呼名字 |
|
||||
| 具体化程度 | 包含具体行为细节,不笼统空泛 |
|
||||
| 课后建议质量 | 给出可落地、可执行的个性化建议 |
|
||||
| 个性化纵向对比 | 结合学生过往学情画像,对比本次表现 |
|
||||
| 专业知识点体现 | 紧扣课程核心知识点点评 |
|
||||
|
||||
### 第4步:生成班级总结
|
||||
|
||||
为每个班级生成本节课的班级总结:
|
||||
|
||||
**内容来源**:
|
||||
- 课程名称 + 5个知识点(来自课程计划)
|
||||
- 该班级所有学生的整体表现
|
||||
- 亮点学生、共性问题、课堂趣事
|
||||
|
||||
**格式**:使用对应班级自己的模板(`.claude/memory/class/[班级]/summaries/群发文案模板.md`或`班级反馈模板.md`)
|
||||
|
||||
### 第5步:输出生成结果
|
||||
|
||||
将生成的课评和班级总结整理成结构化格式:
|
||||
|
||||
```json
|
||||
{
|
||||
"class_summaries": [
|
||||
{
|
||||
"class_dir": "AICODE03橙子周六1900",
|
||||
"course_code": "AICODE03",
|
||||
"lesson_num": "11",
|
||||
"content": "班级总结内容..."
|
||||
}
|
||||
],
|
||||
"student_feedbacks": [
|
||||
{
|
||||
"name": "陈嘉博",
|
||||
"class_dir": "AICODE03橙子周六1900",
|
||||
"course_code": "AICODE03",
|
||||
"lesson_num": "11",
|
||||
"attendance": "正常上课",
|
||||
"content": "生成的课评内容...",
|
||||
"word_count": 250
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **绝不编造**录音中没有提到的内容
|
||||
2. **必须引用具体例子**:将examples中的具体发言和行为融入课评
|
||||
3. **根据学生画像调整语气**(内向学生多鼓励,活泼学生提专注)
|
||||
4. **CSP课评必须包含OJ数据板块**
|
||||
5. **每条课评必须通过质量自检**
|
||||
|
||||
**具体例子使用技巧**:
|
||||
- ❌ "嘉博今天表现很积极"(笼统,没有说服力)
|
||||
- ✅ "嘉博今天主动问老师'内层循环每执行完一次,外层循环的变量会变吗?',说明在认真思考"(有具体例子,有说服力)
|
||||
- 技巧:引用学生的原话或描述具体行为,让家长看到孩子真实的课堂表现
|
||||
@@ -14,15 +14,21 @@ tools: Read, Grep, Glob, Agent
|
||||
|
||||
## 质检流程(五步)
|
||||
|
||||
### 第1步:并行调用核心质检Agent
|
||||
### 第1步:判断班级类型,选择质检策略
|
||||
|
||||
- **CSP班**:必须调用「课评证据审计员」核实OJ数据和知识点
|
||||
- **AICODE班**:必须检查作品描述是否具体
|
||||
- **K4班**:重点检查温和建议是否恰当
|
||||
|
||||
### 第2步:并行调用核心质检Agent
|
||||
|
||||
同时调用以下3个Agent(并行执行):
|
||||
|
||||
1. **课评证据审计员**(feedback-evidence-auditor)
|
||||
- 输入:课评内容 + 相关OJ数据/课程大纲
|
||||
1. **课评证据审计员**(仅CSP班必须调用)
|
||||
- 输入:课评内容 + OJ数据 + 课程大纲
|
||||
- 输出:事实核对结论
|
||||
|
||||
2. **课评质量评审员**(feedback-quality-reviewer)
|
||||
2. **课评质量评审员**(所有班级)
|
||||
- 输入:课评内容
|
||||
- 输出:100分制评分 + 硬伤检查 + 三段式检查
|
||||
|
||||
@@ -38,7 +44,7 @@ tools: Read, Grep, Glob, Agent
|
||||
- 输入:课评内容
|
||||
- 输出:文内一致性检查
|
||||
|
||||
### 第2步:并行调用剩余家长Agent
|
||||
### 第3步:并行调用剩余家长Agent
|
||||
|
||||
同时调用以下2个Agent(并行执行):
|
||||
|
||||
@@ -50,20 +56,20 @@ tools: Read, Grep, Glob, Agent
|
||||
- 输入:课评内容
|
||||
- 输出:成长性反馈
|
||||
|
||||
### 第3步:汇总所有反馈
|
||||
### 第4步:汇总所有反馈
|
||||
|
||||
将7个Agent的输出汇总为一份完整的质检意见,包含:
|
||||
- 事实核对结果(来自证据审计员)
|
||||
- 质量评分和硬伤检查(来自质量评审员)
|
||||
- 5位家长的阅读体验反馈
|
||||
|
||||
### 第4步:调用终稿编辑
|
||||
### 第5步:调用终稿编辑
|
||||
|
||||
调用**课评终稿编辑**(feedback-final-editor):
|
||||
- 输入:原始课评 + 汇总的7个Agent反馈
|
||||
- 输出:修订稿 + 修改说明
|
||||
|
||||
### 第5步:三档放行判断
|
||||
### 第6步:三档放行判断
|
||||
|
||||
根据质量评审员的评分和硬伤检查结果,做出放行判断:
|
||||
|
||||
@@ -78,24 +84,31 @@ tools: Read, Grep, Glob, Agent
|
||||
```markdown
|
||||
📋 课评质检报告
|
||||
|
||||
【总分】XX / 100
|
||||
【总分】XX / 100(规范性XX分 + 丰富度XX分)
|
||||
【结论】直接发送 / 修订后发送 / 必须重写
|
||||
|
||||
【一、证据审计】
|
||||
【一、证据审计】(CSP班必须)
|
||||
- 已核实:...
|
||||
- 存疑/风险:...
|
||||
|
||||
【二、硬伤检查】
|
||||
【二、丰富度评分】
|
||||
- 具体化程度:XX/15
|
||||
- 课后建议质量:XX/15
|
||||
- 个性化纵向对比:XX/10
|
||||
- 专业知识点体现:XX/10
|
||||
- 丰富度小计:XX/50
|
||||
|
||||
【三、硬伤检查】
|
||||
- 触发:无 / 第X项(说明)
|
||||
|
||||
【三、主要问题】(按严重程度排)
|
||||
【四、主要问题】(按严重程度排)
|
||||
1. ...
|
||||
2. ...
|
||||
|
||||
【四、修订稿】
|
||||
【五、修订稿】
|
||||
(若结论为"修订后发送"或"必须重写",给出完整修订后的课评)
|
||||
|
||||
【五、修改说明】
|
||||
【六、修改说明】
|
||||
- 改了什么、为什么改
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user