yuketang-incub

Other

Use this skill when the user asks about Rain Classroom (Yuketang), such as their account ID, courses they teach, or courses they take. Trigger phrases includ...

Install

openclaw skills install @softwolves/yuketang-incub

前置配置(只需一次)

第一步:获取 Secret

打开 https://ykt-envning.rainclassroom.com/ai-workspace/open-claw-skill,登录后复制你的个人 Secret。

没有配置 Secret? 所有工具调用都会返回鉴权失败。请先完成上述步骤。

第二步:设置环境变量

macOS / Linux:

export YUKETANG_SECRET="你的Secret"

Windows(PowerShell):

$env:YUKETANG_SECRET="你的Secret"

Windows(CMD):

set YUKETANG_SECRET=你的Secret

第三步:运行安装脚本

macOS / Linux:

bash setup.sh

Windows 或任何有 Node.js 的环境:

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

不要触发的情况

  • 讨论教学方法(不是在查询数据)
  • 纯聊天中提到"课程"
  • 与雨课堂无关的场景

组合调用示例

用户说:"帮我看看我是谁,还有我开了哪些班"

依次调用:

  1. claw_current_user
  2. ykt_teaching_list

工具详细说明

全局规则

  • 班级名称 → ID:如果用户给的是班级名称而非 ID,先调用 ykt_classroom_id_by_name 拿到 classroomId,再调用目标工具。
  • 时间处理:所有相对时间(昨天/今天/明天/近N天)以当前系统北京时间(UTC+8)为基准,禁止硬编码年份。若用户未指定年份,默认使用当前年份。
  • 参数格式:如果用户给的参数格式不对,不要自动修正,提示用户修改。
  • 预约开课:执行前必须向用户展示即将预约的课堂信息,二次确认后再调用。
  • mcp 服务使用注意事项
    • 推荐使用 npx mcporter 调用 MCP 服务(无需全局安装),不建议直接使用 curl;
    • 如果 mcp 服务提示鉴权失败,请引导用户重新获取 YUKETANG_SECRET 并修改环境变量;
    • 如果 mcp 服务找不到,注意指定 mcp 配置文件的路径;
    • 如果调用失败,可以换一种方式重试,但若多次尝试仍不成功,请停止并检查配置。

1. claw_current_user

查询当前雨课堂用户 ID。

典型问法: "我的雨课堂ID是多少" / "帮我确认一下当前账号"

参数:


2. ykt_teaching_list

查询当前账号开设的班级列表。

典型问法: "我教了哪些班" / "这学期我教的课"

参数:

注意: 返回结果中的 emoji 需保留。


3. ykt_classroom_statistics

查询本学期班级数据概览。

典型问法: "我的班级数据" / "XXX 班级数据情况"

参数:

参数必填说明
classroomName不传则返回本学期所有班级概览;传入后返回指定班级详情

交互规则:

  • 用户第一次查询或未指定班级 → 返回全部班级概览
  • 用户输入班级序号(1、2、3)、完整名称或可识别的简称 → 返回该班级详情

4. ykt_classroom_warning_overview

查询本学期各班级的学习活动完成率预警总览。

典型问法: "查看班级预警情况"

参数:

返回内容包括: 教学班名称、完成率 = 0% 人数、预警人数(完成率 < 80%)、数据截止时间。


5. ykt_classroom_warning_student

查询指定班级的预警学生名单。

典型问法: "高等数学A-2 的预警学生" / "第 1 个班级的预警名单"

参数:

参数必填说明
classroomName班级名称、序号或可识别简称

交互规则:

  • 如果用户未指定班级,先调用 ykt_classroom_warning_overview 展示总览,再让用户选择。

6. cube_teacher_today_teaching - 查询教师当日授课总览

查询教师某天的授课总览信息,如课堂状态、到课情况、答题情况等。

典型问法: "今天上课情况怎么样" / "今天有多少人来上课了" / "我今天有课吗" / "看一下今天的授课总览" / "今天课堂进行得怎么样"

参数:

参数必填说明
date查询日期 yyyy-MM-dd,缺省当天(北京)

** 输出规范 **

  • data.clawUserText 非空,assistant 的最终输出必须且只能为 data.clawUserText
  • 不得添加标题、emoji、列表、表格、总结、提示语
  • 不得改写、压缩、润色或转述 data.clawUserText
  • 不得基于 datehasLessonslessons 等其他字段生成回复
  • 仅当 data.clawUserText 为空或缺失时,才可基于其他字段组织回复

7. ykt_classroom_id_by_name

通过班级名称查询班级 ID(辅助工具,通常由其他工具间接调用)。

参数:

参数必填说明
classroomName班级名称

8. cube_lesson_reservation

为指定教学班预约开课。

参数:

参数必填说明
classroomId班级 ID
startDateTime开课时间(字符串)
startEpochMs开课时间(毫秒时间戳)
lessonTitle课次标题
lessonDurationMinutes课次时长(分钟)
meetingType会议类型

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用

详细参数说明见 references/api_references.mdcube_lesson_reservation 部分。

** 输出规范 **

  • 当存在✅ 课堂预约成功!时, 内容禁止渲染成表格

9. ykt_teacher_correct_statistic - 教师待批改/已批改统计

用于按课程班级查询教师的作业、考试、课堂、课件批改统计,包括待批改、已批改数量等信息。

** 适用场景:** 当用户有以下意图时,应使用本工具:

  • 查看作业、考试、课堂、课件的批改情况
  • 查询待批改数量
  • 查询已批改数量

输出规范

  • 不得省略班级
  • 不得省略任一班级下的统计数据
  • 若结果包含 🔗去班级内批改,必须:
    • 在对应班级下展示
    • 严格按照原始返回内容输出
    • 不得修改其位置、文案或格式
  • 每个班级下均必须展示 🔗去班级内批改

10. ykt_recent_exercise_submit - 教师发布的作业完成情况

用于查询教师发布作业完成情况

参数:

参数必填说明
classroomId班级 ID
classroomName班级名称
isLatest1 表示仅查询最近一次;不传表示查询最近三天

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用
  • 用户查询“最近一次发布的作业情况” → 调本工具时使用 isLatest = 1

11. ykt_recent_notice_read - 教师发布的公告阅读情况

用于查询用户发布的所有近7天发布公告,按照发布时间顺序倒序排列

参数:

参数必填说明
classroomId班级 ID
classroomName班级名称
isLatest1 表示仅查询最近一次;不传表示查询最近七天

使用逻辑:

  • 用户给班级名称 → 先调 ykt_classroom_id_by_name 获取 classroomId,再调本工具
  • 用户直接给 classroomId → 直接调用
  • 用户查询“最近一次发布的公告情况” → 调本工具时使用 isLatest = 1

12. cube_lesson_resolve_by_names - 按名称解析 lessonId

用于按照 “课程名+教学班名+课堂名(课节标题)”查询当日 lessonId(辅助工具,通常由其他工具间接调用)。

参数:

参数必填说明
courseName班级名称
classroomName班级名称
lessonTitle课堂名,即课节标题;可与 lessonName 二选一
lessonName同 lessonTitle(课堂名)
date日历日 yyyy-MM-dd,默认当天(北京);须与查详情为同一天
fuzzytrue 时三项名称允许包含匹配(精确匹配优先)

** 默认值策略 **

  • date 默认当天(北京时间)
  • lessonTitlelessonName 二选一
  • fuzzy 默认传 true

13. cube_teacher_today_teaching_detail - 查询当日单个课程的详情

用于查询当日单个课程的详情;lessonId 来自 cube_lesson_resolve_by_names

** 🎯 适用场景 ** 当用户有以下意图时,应使用本工具:

  • 查看某一节课的课堂详情
  • 用户已经提供了 lessonId
  • 或用户已能通过上游工具cube_lesson_resolve_by_names解析出 lessonId

参数:

参数必填说明
lessonId课堂ID
date日历日 yyyy-MM-dd,默认当天(北京);须与查详情为同一天

** 默认值策略 **

  • date 默认当天(北京时间), 必须与解析时保持同一天

交互规则:

  • 如果用户未指定班级,先调用 cube_teacher_today_teaching 展示总览,再让用户选择。

使用逻辑:

  • 用户给课程名称、班级名称、课堂名称 → 先调 cube_lesson_resolve_by_names 获取 lessonId,再调本工具
  • 用户直接给 lessonId → 直接调用
  • 如果用户未指定“课程名称、班级名称、课堂名称”,先调用 cube_teacher_today_teaching 展示总览,再让用户选择。

输出规范

  • 结果结构化展示(列表形式)
  • 保留工具返回的 emoji 和原始文案,不要自由发挥改写
  • 课程信息至少包含:课程名、班级名
  • 严格保留表头

红线

  • 不编造任何课程数据,必须依赖工具返回
  • 不做权限外操作(如选课、退课)