打开 https://ykt-envning.rainclassroom.com/ai-workspace/open-claw-skill,登录后复制你的个人 Secret。
没有配置 Secret? 所有工具调用都会返回鉴权失败。请先完成上述步骤。
macOS / Linux:
text
export YUKETANG_SECRET="你的Secret"
Windows(PowerShell):
text
$env:YUKETANG_SECRET="你的Secret"
Windows(CMD):
text
set YUKETANG_SECRET=你的Secret
macOS / Linux:
text
bash setup.sh
Windows 或任何有 Node.js 的环境:
text
node setup.js
具体配置文件路径取决于你使用的客户端(OpenClaw / CodeBuddy / Cursor 等),请参考对应文档。
配置完成后,尝试问一句 "我的雨课堂ID是多少"。如果正常返回用户信息,说明配置成功。
用户意图调用工具查询账号 / 我的ID / 雨课堂IDclaw_current_user查询我开的课 / 我教了哪些班ykt_teaching_list查询我的班级数据 / 班级教学数据ykt_classroom_statistics查询预警学生名单 / 重点关注学生ykt_classroom_warning_overview查询某个具体班级的预警学生名单ykt_classroom_warning_student今天上课情况总览 / 今天答题率 / 到课率cube_teacher_today_teaching预约开课cube_lesson_reservation查询我有哪些待批改的作业 / 考试 / 课堂/ 课件ykt_teacher_correct_statistic查询最近发布的作业 / 我在xx班发布的作业完成情况 /最近一次发布的作业完成情况ykt_recent_exercise_submit查询最近发布的公告 / 我在xx班发布的公告阅读情况 /最近一次公告的阅读情况ykt_recent_notice_read查询今天上课的情况/今天的课有多少人来上课了cube_teacher_today_teaching_detail
用户说:"帮我看看我是谁,还有我开了哪些班"
依次调用:
claw_current_userykt_teaching_list班级名称 → ID:如果用户给的是班级名称而非 ID,先调用 ykt_classroom_id_by_name 拿到 classroomId,再调用目标工具。
时间处理:所有相对时间(昨天/今天/明天/近N天)以当前系统北京时间(UTC+8)为基准,禁止硬编码年份。若用户未指定年份,默认使用当前年份。
参数格式:如果用户给的参数格式不对,不要自动修正,提示用户修改。
预约开课:执行前必须向用户展示即将预约的课堂信息,二次确认后再调用。
mcp 服务使用注意事项:
claw_current_user#查询当前雨课堂用户 ID。
典型问法: "我的雨课堂ID是多少" / "帮我确认一下当前账号"
参数: 无
ykt_teaching_list#查询当前账号开设的班级列表。
典型问法: "我教了哪些班" / "这学期我教的课"
参数: 无
注意: 返回结果中的 emoji 需保留。
ykt_classroom_statistics#查询本学期班级数据概览。
典型问法: "我的班级数据" / "XXX 班级数据情况"
参数:
参数必填说明classroomName否不传则返回本学期所有班级概览;传入后返回指定班级详情
交互规则:
ykt_classroom_warning_overview#查询本学期各班级的学习活动完成率预警总览。
典型问法: "查看班级预警情况"
参数: 无
返回内容包括: 教学班名称、完成率 = 0% 人数、预警人数(完成率 < 80%)、数据截止时间。
ykt_classroom_warning_student#查询指定班级的预警学生名单。
典型问法: "高等数学A-2 的预警学生" / "第 1 个班级的预警名单"
参数:
参数必填说明classroomName是班级名称、序号或可识别简称
交互规则:
ykt_classroom_warning_overview 展示总览,再让用户选择。cube_teacher_today_teaching - 查询教师当日授课总览#查询教师某天的授课总览信息,如课堂状态、到课情况、答题情况等。
典型问法: "今天上课情况怎么样" / "今天有多少人来上课了" / "我今天有课吗" / "看一下今天的授课总览" / "今天课堂进行得怎么样"
参数:
参数必填说明date否查询日期 yyyy-MM-dd,缺省当天(北京)
\\ 输出规范 **
data.clawUserText 非空,assistant 的最终输出必须且只能为 data.clawUserTextdata.clawUserTextdate、 hasLessons、 lessons 等其他字段生成回复data.clawUserText 为空或缺失时,才可基于其他字段组织回复ykt_classroom_id_by_name#通过班级名称查询班级 ID(辅助工具,通常由其他工具间接调用)。
参数:
参数必填说明classroomName是班级名称
cube_lesson_reservation#为指定教学班预约开课。
参数:
参数必填说明classroomId是班级 IDstartDateTime否开课时间(字符串)startEpochMs否开课时间(毫秒时间戳)lessonTitle否课次标题lessonDurationMinutes否课次时长(分钟)meetingType否会议类型
使用逻辑:
ykt_classroom_id_by_name 获取 classroomId,再调本工具classroomId → 直接调用详细参数说明见
references/api_references.md中cube_lesson_reservation部分。
\\ 输出规范 **
✅ 课堂预约成功! 时, 内容禁止渲染成表格ykt_teacher_correct_statistic - 教师待批改/已批改统计#用于按课程班级查询教师的作业、考试、课堂、课件批改统计,包括待批改、已批改数量等信息。
\\ 适用场景:** 当用户有以下意图时,应使用本工具:
输出规范
不得省略班级
不得省略任一班级下的统计数据
若结果包含 🔗去班级内批改,必须:
每个班级下均必须展示 🔗去班级内批改
ykt_recent_exercise_submit - 教师发布的作业完成情况#用于查询教师发布作业完成情况
参数:
参数必填说明classroomId❌班级 IDclassroomName❌班级名称isLatest❌1 表示仅查询最近一次;不传表示查询最近三天
使用逻辑:
ykt_classroom_id_by_name 获取 classroomId,再调本工具classroomId → 直接调用isLatest = 1ykt_recent_notice_read - 教师发布的公告阅读情况#用于查询用户发布的所有近7天发布公告,按照发布时间顺序倒序排列
参数:
参数必填说明classroomId❌班级 IDclassroomName❌班级名称isLatest❌1 表示仅查询最近一次;不传表示查询最近七天
使用逻辑:
ykt_classroom_id_by_name 获取 classroomId,再调本工具classroomId → 直接调用isLatest = 1cube_lesson_resolve_by_names - 按名称解析 lessonId#用于按照 “课程名+教学班名+课堂名(课节标题)”查询当日 lessonId(辅助工具,通常由其他工具间接调用)。
参数:
参数必填说明courseName✅班级名称classroomName✅班级名称lessonTitle❌课堂名,即课节标题;可与 lessonName 二选一lessonName❌同 lessonTitle(课堂名)date❌日历日 yyyy-MM-dd,默认当天(北京);须与查详情为同一天fuzzy❌true 时三项名称允许包含匹配(精确匹配优先)
\\ 默认值策略 **
date 默认当天(北京时间)lessonTitle 与 lessonName 二选一fuzzy 默认传 truecube_teacher_today_teaching_detail - 查询当日单个课程的详情#用于查询当日单个课程的详情;lessonId 来自 cube_lesson_resolve_by_names
\\ 🎯 适用场景 ** 当用户有以下意图时,应使用本工具:
lessonIdcube_lesson_resolve_by_names 解析出 lessonId参数:
参数必填说明lessonId✅课堂IDdate❌日历日 yyyy-MM-dd,默认当天(北京);须与查详情为同一天
\\ 默认值策略 **
date 默认当天(北京时间), 必须与解析时保持同一天交互规则:
cube_teacher_today_teaching 展示总览,再让用户选择。使用逻辑:
cube_lesson_resolve_by_names 获取 lessonId,再调本工具lessonId → 直接调用cube_teacher_today_teaching 展示总览,再让用户选择。