关于 canvas-peer-review-manager
面向 Canvas LMS 教师的同伴互评管理技能,可检查完成情况、分析评论质量并生成跟进名单。它还支持提醒、数据导出和报告,并要求发送消息前预览收件人并获得确认。
主要功能
- 01查看互评完成率与分配关系
- 02提取评论并分析质量
- 03标记低质量或未完成互评
- 04生成优先跟进名单并发送提醒
- 05导出数据及生成报告
适用场景
- 01查找尚未完成互评的学生
- 02识别简短或缺乏建设性的评论
- 03确认提醒对象后发送站内消息
- 04匿名导出互评数据或生成报告
MCP 相关
通过 Canvas MCP 服务的工具调用 Canvas API,管理课程互评;包括分析、导出和发送提醒。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vishalsachdev/ canvas-mcp --skill canvas-peer-review-manager安装后在 Claude Code 中输入/canvas-peer-review-manager确认已加载。
详细介绍
Canvas 同伴评审管理器
面向使用 Canvas LMS 的教育工作者的完整同伴评审管理工作流。通过针对 Canvas API 的 MCP 工具调用,监控完成情况、分析质量、找出需要跟进的学生、发送提醒并导出数据。
前提条件
- Canvas MCP 服务必须正在运行,并已连接到 Agent 的 MCP 客户端(例如 Claude Code、Cursor、Codex、OpenCode)。
- 已通过身份验证的用户必须在目标 Canvas 课程中具有教育工作者或教师角色。
- Canvas 中必须为该作业启用同伴评审(手动或自动分配均可)。
- 符合 FERPA 要求的数据处理:在 Canvas MCP 服务环境中设置
ENABLE_DATA_ANONYMIZATION=true,以对受支持的学生身份字段进行匿名化。启用后,姓名会显示为Student_xxxxxxxx哈希值,同时保留用于发送消息的功能性用户 ID。此设置本身并不能确保合规。
步骤
1. 确认作业
询问用户要管理哪个课程和作业的同伴评审。接受课程代码、Canvas ID 或课程名称,以及作业名称或 ID。
如果用户未指定,请提示:
您想查看哪个课程和作业的同伴评审?
使用 list_courses 和 list_assignments 帮助用户找到正确的标识符。
2. 检查同伴评审完成情况
使用课程标识符和作业 ID 调用 get_peer_review_completion_analytics。该工具会返回:
- 总体完成率(百分比)
- 已完成所有评审、部分完成和未完成任何评审的学生人数
- 每位学生已完成和已分配评审数量的明细
需要重点呈现的数据:
| 指标 | 含义 |
|---|---|
| 完成率 | 同伴评审周期的总体情况 |
| “未完成任何评审”人数 | 尚未开始的学生——提醒优先级最高 |
| “部分完成”人数 | 已开始但未完成的学生 |
| 每位学生的明细 | 需要跟进的具体对象 |
3. 查看作业分配情况
如果用户想了解谁在评审谁,请调用 get_peer_review_assignments,并使用以下参数:
include_names=true,获取易于阅读的输出include_submission_details=true,获取提交内容的上下文
这会显示完整的评审者与被评审者对应关系及完成状态。
4. 提取并阅读评论
调用 get_peer_review_comments 获取实际评论文本。参数:
include_reviewer_info=true——显示评论撰写者include_reviewee_info=true——显示评论接收者anonymize_students=true——分享结果或处理敏感数据时建议启用
这会展示学生在评审中实际写下的内容。
5. 分析评论质量
调用 analyze_peer_review_quality,生成所有评审的质量指标。分析包括:
- 平均质量分数(1-5 分)
- 字数统计(均值、中位数、范围)
- 建设性分析(建设性反馈、泛泛评论和具体建议)
- 情绪分布(正面、中性、负面)
- 低于质量阈值的标记评审
也可以将 analysis_criteria 作为 JSON 字符串传入,自定义高质量和低质量的判定标准。
6. 标记有问题的评审
调用 identify_problematic_peer_reviews,自动标记需要教师关注的评审。标记条件包括:
- 评论过短或为空
- 泛泛而谈的回复(例如,“看起来不错”“做得好”)
- 缺少建设性反馈
- 可能存在复制粘贴或内容相同的评审
将自定义 criteria 作为 JSON 字符串传入,可覆盖默认阈值。
7. 获取待跟进列表
调用 get_peer_review_followup_list,获取需要采取行动的学生优先级列表:
priority_filter="urgent"—— 尚未完成任何评审的学生priority_filter="medium"—— 部分完成的学生priority_filter="all"—— 所有需要跟进的学生days_threshold=3—— 根据布置任务至今的天数调整紧急程度计算
8. 发送提醒
这两个发送工具都采用两次调用的方式:第一次调用会返回预览和 confirmation_token,不会发送任何内容;先向教师展示预览,再使用该令牌(以及完全相同的参数)再次调用以发送。
如需发送定向的直接 Inbox 消息,请调用 send_peer_review_inbox_messages,并提供:
recipient_ids—— 来自分析结果的 Canvas 用户 ID 列表custom_message—— 可选的自定义文本(若省略,则使用默认模板)subject_prefix—— 默认为 "Peer Review Reminder"
示例流程:
- 从步骤 2 获取尚未完成评审的学生
- 提取其用户 ID
- 与用户核对收件人列表
- 确认后发送提醒
如需使用自动化流水线,请调用 send_peer_review_followup_campaign,并提供课程标识符和作业 ID;第一次调用会返回分析结果,以及针对紧急和温和提醒对象的预览和令牌。此工具会:
- 自动运行完成情况分析
- 将学生划分为“紧急”(无人完成)和“部分完成”两组
- 仅在使用令牌确认的调用中发送提醒
- 返回汇总的分析和消息发送结果
警告: 活动工具会发送真实消息。运行前务必先征得教师确认。
9. 导出数据
调用 extract_peer_review_dataset,导出所有互评数据以供外部分析:
output_format="csv"或output_format="json"include_analytics=true—— 在导出数据中附加质量指标anonymize_data=true—— 分享或存档时建议启用save_locally=true—— 保存到本地文件;设为false可直接返回数据
10. 生成教师报告
调用 generate_peer_review_feedback_report,生成格式化、便于分享的报告:
report_type="comprehensive"—— 完整分析,并附上低质量评审示例report_type="summary"—— 仅提供执行摘要report_type="individual"—— 按学生分别列出详情include_student_names=false—— 注重隐私的报告建议设为false
如需生成侧重完成情况(而非质量)的报告,请使用 generate_peer_review_report,并设置执行摘要、学生详情、待办事项和时间线分析等选项。此报告可通过 save_to_file=true 保存到文件。
使用场景
“互评进展如何?” 运行步骤 1-2。展示完成率,并指出值得关注的情况(例如:“仅 60% 已完成,8 名学生尚未开始”)。
“谁还没完成评审?”
运行步骤 1-2,然后在步骤 7 中设置 priority_filter="urgent"。列出需要跟进的学生。
“评审质量怎么样?” 运行步骤 4-6。展示质量评分,标记内容笼统或投入不足的评审,并提出建议。
“给拖延的学生发送提醒” 运行步骤 1-2,找出尚未完成评审的学生,然后运行步骤 8。发送前务必确认收件人列表。
“给我一份完整报告” 运行步骤 2、5、6 和 10。将完成情况分析与质量分析结合起来,生成完整的教师报告。
“导出所有数据以供存档”
运行步骤 9,设置 output_format="csv" 和 anonymize_data=true,导出注重隐私的数据集。
使用的 MCP 工具
| 工具 | 用途 |
|---|---|
list_courses | 查找正在进行的课程 |
list_assignments | 查找已启用同伴评审的作业 |
get_peer_review_assignments | 获取完整的评审者与被评审者对应关系 |
get_peer_review_completion_analytics | 获取完成率和逐个学生的明细 |
get_peer_review_comments | 提取实际评论文本 |
analyze_peer_review_quality | 获取质量指标(评分、字数、建设性) |
identify_problematic_peer_reviews | 标记质量较低或空白的评审 |
get_peer_review_followup_list | 获取需要跟进的学生优先列表 |
send_peer_review_inbox_messages | 发送定向的 Canvas 收件箱私信 |
send_peer_review_followup_campaign | 自动化的分析到消息发送流程 |
extract_peer_review_dataset | 将数据导出为 CSV 或 JSON |
generate_peer_review_feedback_report | 生成侧重质量的教师报告 |
generate_peer_review_report | 生成侧重完成情况的教师报告 |
示例
用户:“BADM 350 的作业 3 同伴评审进展如何?”
**Agent:**调用 get_peer_review_completion_analytics 并展示:
## Peer Review Status: Assignment 3
- **Completion rate:** 72% (23/32 students fully complete)
- **Partial:** 5 students (started but not finished)
- **Not started:** 4 students
### Students Needing Follow-up
**Not started (urgent):**
- Student_a8f7e23 (0 of 3 reviews done)
- Student_b2c91d4 (0 of 3 reviews done)
- Student_f5e67a1 (0 of 3 reviews done)
- Student_d9c34b2 (0 of 3 reviews done)
**Partial (needs nudge):**
- Student_c1d82e5 (1 of 3 reviews done)
- Student_e4f03a9 (2 of 3 reviews done)
用户:“提醒还没开始评审的学生”
**Agent:**确认 4 位收件人,然后调用 send_peer_review_inbox_messages,并传入他们的用户 ID。
用户:“现在看看已完成的评审质量如何”
**Agent:**调用 analyze_peer_review_quality 并展示质量评分,将 3 份评审标记为过短,并建议教师跟进特定学生。
安全指南
- 发送前确认——调用任何消息发送工具前,始终向教师展示收件人列表和消息内容。
- 默认匿名化——在共享环境中查看数据时,使用
anonymize_students=true或anonymize_data=true。 - 遵守速率限制——Canvas API 每 10 分钟大约允许 700 次请求。对于大型课程,消息工具会按顺序发送消息,并内置延迟。
- 谨慎处理 FERPA 相关信息——除非教师已明确确认当前情境适合,否则切勿在日志、共享屏幕或导出文件中显示学生姓名。
备注
- 在 Canvas 中启用作业的同伴评审后,这些工具才能返回数据。
send_peer_review_followup_campaign工具会结合分析和消息发送:首次调用会预览收件人并返回令牌;第二次调用(附带令牌)会发送实际消息。仅在教师批准预览后才进行第二次调用。- 质量分析使用启发式方法(字数、关键词匹配、情感)。它可以识别可能质量较低的评审,但不能替代教师判断。
- 此技能与
canvas-morning-check配合使用效果很好,可全面查看课程状况,包括同伴评审状态、提交率和成绩分布。