# 作业批改助手(teaching.assignment-grader) 批量批改课程作业的智能体包。输入「作业要求文档 + 学生提交物」,自动派生评分 rubric、按两轴逐项打分、每分锚定证据、先判红线,产出评阅报告 + 班级汇总 + 成绩单。 **定位:AI 初评、辅助老师。** 总评是 draft,须任课教师复核,最终成绩由老师定。 ## 它解决什么 很多课程作业(尤其"AI 协作"类软工课)的考核内核不是产物表面好不好,而是 **学生有没有展示 AI 替代不了的工程判断**。本智能体把批改拆成两轴,避免跑偏: - **轴 A 工程产物质量**(默认 ~55%):架构/设计/代码/测试等硬交付物本身。 - **轴 B AI协作元能力**(默认 ~35%):prompt 策略差异、AI 误导分析、AI初稿 vs 人工修订的 diff 是否实质、"为什么 AI 做不了这个决策"的深度、反思闭环。 - **轴 C 规范与完整性**(默认 ~10%):交付物齐全、路径/格式合规。 并专门处理"学生用 AI 写、老师用 AI 改"的悖论:着力点是学生的真实判断,而非 文档表面流畅度;内置 AI-slop(套话/雷同/无取舍)识别。 > 若作业里没有 AI 协作类交付物(普通作业),轴 B 自动并入轴 A(A~85% / C~15%)。 ## 输入 - **作业要求文档(spec)**:rubric 的来源。给文件路径,或放进本地资料库。 - **学生提交物**:单份目录/文件,或一个班级根目录(批量,每个子目录一份)。 - **可选:已校准 rubric**:给了就直接用,保证跨队口径一致(推荐老师先用 `assignment-grader` skill 精批几份标杆卷、校准出 rubric,再喂给本包批量铺开)。 ## 产物(写入运行工作目录) | 文件 | 内容 | |---|---| | `<队名/编号>-review.md` | 单份评阅:建议总评、两轴得分、红线、逐项评分表(含证据定位)、AI协作专项点评、改进建议、所用 rubric | | `<队名/编号>-score.json` | 机器可读分数(总评、轴A/B/C、红线、置信度) | | `_class-summary.md` | 批量时:分数分布、各项平均、全班共性问题 Top3、红线名单、一致性自检 | | `_gradebook.csv` | 批量时:成绩单,可导入成绩册 | ## 用法 在产品里创建本包的智能体实例后,对话给出 spec 与提交物路径即可,例如: ``` 批改 docs/作业要求-P2.md 这份作业,学生提交在 /submissions/队A/ ``` 或批量: ``` 按 docs/作业要求-P2.md 批改 /submissions/ 下所有队,出班级汇总和成绩单 ``` ## 模型与隐私 - 推荐 `dashscope/qwen-max` 或 `claude-code/sonnet`;想**完全离线、提交物不外传**用 `ollama/qwen`。复用智能体自身 provider,本地模型可全程不联网。 - 提交物常含姓名/学号——本包不联网、不外传,报告可用编号代替真实姓名。 ## 边界与提醒 - **AI 初评仅供参考,最终成绩以任课教师判定为准。** 每份报告均标注需复核。 - 不确定的项标「待人工确认」,不硬猜。 - 跨队一致性靠"同一份 rubric 只派生一次"保证;批完会自检给分漂移并请老师校准。 ## 与 `assignment-grader` skill 的关系 两者吃同一套两轴 rubric,互补: - **skill**(Claude Code,老师本机):精批、抽查、校准 rubric。 - **本包**(部署在产品里,助教批量):把校准好的 rubric 铺到全班,出标准化报告与成绩单。