Install
openclaw skills install studyseat-buddyThis skill helps university students find available classrooms for self-study, group discussion, exam prep, or meetings. It should be used when a student asks for an empty classroom, a quiet place to study, a room with power outlets, or a suitable space for group work on campus. Trigger phrases include "哪里有空教室", "找个自习室", "空教室推荐", "哪个教室没人", "find empty classroom", "study room recommendation", and similar expressions.
openclaw skills install studyseat-buddy根据学生提供的时间、地点、人数和偏好,从教室数据库中筛选并推荐最合适的学习空间(默认 3 个,最多 5 个),说明推荐理由,并提示注意事项。同时识别学习模式、展示避坑说明、纳入现场反馈加权,帮助学生做出更明智的空间选择。
本 Skill 解决了大学校园中真实存在的痛点,并在基础"空教室推荐"之上增加了差异化能力:
本 Skill 通过学习模式识别、避坑说明、现场反馈加权三大差异化功能,从"空教室推荐器"升级为"校园学习空间决策助手"。
收集以下信息后开始推荐,信息不足时最多追问 1 次,不要反复追问:
| 字段 | 说明 | 示例 |
|---|---|---|
| 使用日期/星期 | 今天/明天/具体日期/星期几 | 今天、周三、5月15日 |
| 使用时间段 | 起止时间或节次 | 14:00-16:00、第5-6节 |
| 校区/教学楼 | 可选,不填则全校推荐 | 北区、A栋、综合楼 |
| 使用人数 | 几人使用 | 1人、4人小组 |
| 偏好要求 | 可多选 | 有插座、安静、容量大、近宿舍、适合小组讨论 |
若用户完全没提任何信息,追问一次:
"请告诉我你想使用的时间段和大概人数,我来为你推荐合适的学习空间 📚"
根据用户表达自动判断学习模式,并据此调整推荐权重。若用户未明确表达,根据偏好关键词推断;无法推断时默认"普通自习模式"。
| 学习模式 | 触发关键词 / 推断条件 | 推荐权重调整 |
|---|---|---|
| 赶 DDL 模式 | "赶作业"、"赶 DDL"、"赶 due"、"写论文"、"紧急"、"赶报告"、"赶代码" | 插座优先(+30 → +40)、开放时间长优先(+10) |
| 备考模式 | "备考"、"复习考试"、"考研"、"期末"、"考证"、"刷题"、"安静" | 安静程度优先(每分 +5 → +8)、小容量优先(+10) |
| 小组讨论模式 | "小组"、"讨论"、"开会"、"围坐"、"白板"、"头脑风暴"、"团队" | 白板/可围坐优先(+25)、适合 2-6 人(+20) |
| 晚自习模式 | "晚上"、"晚自习"、"晚间"、"夜"、"19点后"、"晚课" | 开放到晚优先(+15)、软占用提醒优先 |
| 普通自习模式 | 默认模式,或其他不明确场景 | 综合平衡,使用默认权重 |
输出时在推荐结果前标注识别出的学习模式,例如:
🧠 学习模式:备考/安静自习模式
本 Skill 优先满足"能不能用",再考虑"好不好用"。
排序优先级(从高到低):
若用户输入节次(如"第5-6节"),先查阅节次对照表转换为具体时间段,再进行后续处理。
节次对照表见 references/schedule_data.md。
根据用户输入的关键词和偏好,识别学习模式(赶 DDL / 备考 / 小组讨论 / 晚自习 / 普通自习),并据此调整后续评分权重。
加载 references/classroom_data.md,获取各教室的:
排除当前状态为"维修"或"暂停开放"的教室。
加载 references/schedule_data.md,判断目标时间段内各教室的占用情况。
时间冲突判断规则:
| 占用类型 | 处理方式 |
|---|---|
| 硬占用(课程、考试、讲座、社团活动、维修、禁止进入) | 直接排除,不推荐 |
| 软占用(开放自习、考研自习、需保持安静的公共学习空间) | 保留,但在注意事项中说明规则 |
补充规则:
加载 references/feedback_data.md,统计目标教室最近 7 天的反馈情况:
| 反馈情况 | 加分/减分 |
|---|---|
| 反馈显示人少、安静、插座正常 | 每条 +3,累计最多 +10 |
| 反馈显示人多、吵闹 | 每条 -5,累计最多 -15 |
| 反馈显示插座异常(损坏、不足) | 每条 -8 |
| 反馈显示门锁问题、临时关闭 | 每条 -10 |
| 无反馈 | 不加分也不减分 |
按以下权重综合计算匹配度,最终得分超过 100 时,按 100 展示:
| 偏好维度 | 评分规则 |
|---|---|
| 插座(用户明确要求) | 全部有 +30,部分有 +15,无 +0 |
| 安静程度(5分制) | 每分 +5,最高 +25 |
| 容量匹配度 | 接近人数 2~3 倍 +15,过大或勉强 +5 |
| 空调 | 有 +10 |
| 指定教学楼/校区完全匹配 | +20 |
| 适合小组讨论(用户要求时) | +20 |
| 现场反馈加分 | 累计最多 +10 |
| 现场反馈减分 | 累计最多 -15 |
基础分 = 各项得分之和 + 现场反馈加分 - 现场反馈减分,封顶 100。
在学习模式识别结果基础上,调整对应维度的评分规则:
| 模式 | 调整内容 |
|---|---|
| 赶 DDL | 插座权重 +30→+40,开放时长长额外 +10 |
| 备考 | 安静程度每分 +5→+8(最高 +40),小容量教室额外 +10 |
| 小组讨论 | 白板/可围坐 +25,适合 2-6 人 +20,插座降为 +15 |
| 晚自习 | 开放到 21:00 后 +15,软占用提醒纳入排序 |
只输出一版结果,包含以下模块,按顺序排列:
🧠 学习模式:[识别出的模式名称]
每个推荐控制在 5 行以内:
📍 推荐 #N 【最优选择 / 备选方案】
📌 位置:XX楼 X层 · 教室 XXX
⏰ 本次可用:XX:XX - XX:XX(开放时段:XX:XX - XX:XX)
🏷 特点:容量 XX 座|插座 全部有/部分有/无|安静 ★★★★☆|空调 有/无
📊 匹配度:XX/100
💡 推荐理由:[1~2 句,说明为何适合用户需求及学习模式]
重要: "本次可用"应填写用户查询的时间段(如 14:00-16:00),"开放时段"为教室本身的开放时间(如 08:00-21:00),两者不可混淆。
列出 2~3 个没有推荐的典型教室及原因,让用户了解筛选逻辑:
🚫 已避开的教室:
• XXX:[排除/降权原因]
• XXX:[排除/降权原因]
• XXX:[排除/降权原因]
🏆 最优选择:推荐 #1(XXX教室),理由:[一句话]
⚠️ 注意事项:
• [特殊进入要求,如需刷卡]
• [软占用提醒]
• [风险提示,来自 classroom_data.md 的风险提示字段]
• [现场反馈异常提醒,如有]
📋 以上推荐基于示例数据,请以学校官方教室系统或现场公告为准。
若没有完全满足所有条件的教室:
本 Skill 依赖以下数据文件:
| 文件 | 用途 | 更新频率 |
|---|---|---|
references/classroom_data.md | 教室基础信息(含学习模式标签、久坐适用性、风险提示) | 每学期 |
references/schedule_data.md | 课程占用时间表(含硬/软占用区分) | 每周 |
references/feedback_data.md | 教室现场反馈数据(人流、噪音、插座状态) | 每日 |
若学校未提供真实数据,使用示例数据进行演示,并在输出顶部注明:
⚠️ 当前使用示例数据进行演示,实际推荐需接入学校教室管理系统。
示例 1(单人自习,有偏好):
周三下午 2 点到 4 点,北区,1 个人自习,想找有插座安静一点的教室
处理:识别学习模式 → 备考/安静自习 → 查周三 14:00-16:00,北区,排除硬占用 → 容量筛选 → 现场反馈加权 → 按备考模式权重评分排序 → 输出推荐 + 避坑说明。
示例 2(赶 DDL):
明天下午赶个报告,需要插座,北区
处理:识别学习模式 → 赶 DDL → 插座权重提升 + 开放时长加分 → 排序输出。
示例 3(小组讨论):
周五上午找个能容纳 6 个人开小组会的地方
处理:识别学习模式 → 小组讨论 → 优先白板/可围坐教室 → 排序输出。
示例 4(信息不足):
有空教室吗
处理:信息不足,追问一次:"请告诉我你想使用的时间段和大概人数,我来为你推荐合适的学习空间 📚"