用途:面向 Canvas LMS 作业的评分表(rubric)评分工作流,覆盖单条评分、批量评分和代码执行三种策略,强调安全优先的 dry run。
前置条件:Canvas MCP 服务器已运行并连接;使用教育者(教师/助教)Canvas API 令牌认证;作业已存在且有提交;评分表已创建并关联到作业且 use_for_grading=true。可用 create_rubric 创建、associate_rubric 关联已有评分表;文本/分值修改用 update_rubric(两次调用预览 + token);增删标准需在 Canvas UI 操作。
工作流:先获取作业与评分表信息(get_assignment_details、get_rubric 或 list_rubrics),记录标准 ID(常带下划线前缀)与评分等级 ID;再列出提交(list_submissions)统计待评分数量;按数量选择策略:1-9 条用 grade_with_rubric 逐个评分;10-29 条用 bulk_grade_submissions 并发批处理(max_concurrent 5、rate_limit_delay 1.0);30 条以上或需自定义逻辑用 execute_typescript 本地运行 bulkGrade,仅所选输出返回模型。写代码前可用 search_canvas_tools("grading", "signatures") 查询可用模块签名。
主要能力:rubric 维度评分、可选的逐标准评语与整体反馈、批量并发提交、本地自定义评分逻辑以节省模型上下文。
安全规则:首次务必 dry run;评分前核对评分表标准 ID、分值范围与等级 ID;批量前先手工抽评 1-2 条并在 Canvas 验证;尊重速率限制(Canvas 约 700 请求/10 分钟);未经教师明确确认不得评分;不要附加教师未要求的评语,提交评论对学生在 SpeedGrader 可见且每次调用会追加、无法撤回。
适用场景:教师/助教批量批改作业、按评分表统一评分、大班级自定义规则评分。限制:需 MCP 服务器与教育者令牌;评分表编辑的部分操作需在 Canvas UI 完成;错误如 401、403、404、422 及批量部分失败需按资料给出的排查与重试方式处理,注意避免重复评论。