📦 Education — 教育

v1.0.2

教育学习搜索助手:学历教育与职业培训搜题工具。从习题库检索习题、真题、试卷等资源,覆盖教资考试、行测、考研真题等学历与职业培训内容。用户需查找真题、试卷、教资考题、行测题、考研真题、数学习题等资源时调用此 skill。

7· 7·0 当前·0 累计
by @kayy123 (KAYY123)
下载技能包
最后更新
2026/4/22
0
安全扫描
VirusTotal
Pending
查看报告
OpenClaw
可疑
medium confidence
该技能的声明用途(搜索考试资源)与其行为大体一致,但存在明显不一致及隐私/运营风险:未声明依赖 BAIDU_API_KEY、硬编码指向另一技能路径,以及指示用户在聊天中提供 API 密钥并隐藏内部逻辑。
评估建议
此技能看似实现了其宣称的功能(调用教育 API 并展示 PDF 资源),但在安装或使用前请注意以下风险: - 缺失依赖声明:技能在失败时会回退到“baidu-search”,需要 BAIDU_API_KEY,但元数据中未列出该环境变量或依赖。请确认你的 agent 是否已有 baidu-search 技能及其配置方式。 - 切勿在聊天中粘贴密钥:SKILL.md 明确提示用户直接在聊天中提供 BAIDU API Key。绝不要在明文聊天中共享 API Key 或凭据;应要求使用安全的配置机制(agent 环境变量或 secret store)。 - 硬编码本地路径:说明中调用 /home/gem/.openclaw/skills/baidu-search/scripts/search.py,假定特定文件系统和用户。请验证 agent 上的实际路径及该脚本是否可信。 - 隐藏内部逻辑:技能要求对查询改写和 API 细节向用户不可见,透明度受限。请向发布者询问为何必须隐藏,并索取清晰的隐私/安全政策。 - 验证外部端点:技能会访问 edu-openapi.baidu.co...
详细分析 ▾
用途与能力
该技能的目标——查询教育 API 并展示 PDF 资源——与 curl 调用教育 API 及输出表格格式一致。然而,它在特定条件失败时依赖次级“baidu-search”技能作为回退;该回退依赖及其所需 API 密钥(BAIDU_API_KEY)未在技能元数据中声明(无必需环境变量、未声明对 baidu-search 的依赖),导致声明需求与运行时需求不一致。
指令范围
SKILL.md 指示 agent(a)调用 edu-openapi.baidu.com 端点,这符合目的,但还(b)在绝对路径 /home/gem/.openclaw/skills/baidu-search/scripts/search.py 运行 baidu-search skill 的特定本地脚本。这假定了特定的文件系统布局和另一个已安装的 skill。说明还明确要求对用户隐藏内部步骤与推理(使用 <thinking> 标签,禁止显示查询重写、API 调用细节等),并要求操作员在聊天中让用户交出 BAIDU API Key 以配置搜索——这将范围扩大到密钥处理和不可见行为,对简单的搜索助手而言出乎意料。
安装机制
仅含指令的技能,无安装规范,且本包未写入任何代码文件;从安装/执行角度看风险极低。该技能本身不涉及包下载或归档解压。
凭证需求
技能元数据未声明任何必需的环境变量,但运行时流程依赖 BAIDU_API_KEY 作为 baidu-search 回退。SKILL.md 要求运营者获取并“发送”API Key 以配置搜索。让用户在聊天中粘贴 API Key 存在风险,且技能未提供安全存储或处理指引。行为明确依赖外部 API Key,却未在环境要求中声明,构成比例性与透明度的错配。
持久化与权限
该 skill 未设置 always:true,也未请求提升的平台权限。但它通过绝对路径引用了 /home/gem/.openclaw/skills/... 下另一 skill 的脚本,暗示对主机代理环境及其他 skill 的存在/配置有假设。该 skill 未声明会修改其他 skill 或系统设置。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.22026/4/22

### education-search v1.0.2 更新日志 - 新增 README.md 文件,补充使用说明与 Skill 功能介绍。 - 其余功能与逻辑保持不变。

Pending

安装命令

点击复制
官方npx clawhub@latest install education-search
镜像加速npx clawhub@latest install education-search --registry https://cn.longxiaskill.com

技能文档

⚠️ 执行原则(必须遵守)

所有内部流程都是后台操作,禁止向用户展示!

❌ 禁止向用户展示

  • 步骤编号("第 1 步"、"第 2 步"等)
  • 查询改写过程
  • API 调用细节
  • 信息源充足性判断过程
  • 兜底逻辑
  • 任何内部推理过程

⚠️ 关键规则:条数必须准确

输出格式中的数量描述必须与表格实际展示的条数一致!

| 错误示例 | 正确示例 | |---------|---------| | "找到 13 条资源" 但表格只展示 5 条 | 表格展示 5 条,就说 "找到 5 条资源" | | "有 20 条相关资源" 但表格只有 8 行 | 表格有多少行,数量就是多少 |

公式数量描述 = 表格实际行数

✅ 正确做法

  • 内部推理使用 标签隐藏
  • 直接输出最终答案(见下方"输出格式")
  • 用户只看到结果,不看到过程
  • 数量描述与表格行数严格一致

---

内部执行流程(不向用户展示)

1. 查询改写

分析用户原始查询,拆分为最多 3 个子查询,用原查询+子查询提高搜索覆盖面。

示例

  • 用户查询:「我是安徽财经大学的,能找到高数的期末考试题吗」
- 拆分子查询:「安徽财经大学 高等数学 期末」「安徽财经大学 高数 期末考试题」「安徽财经大学 高数的期末考试题」
  • 用户查询:「我准备考法考,帮我找下资料」
- 拆分子查询:「法律职业资格考试」「法考资料」「法考」
  • 用户查询:「我想考山东大学新传专业的研究生 帮我找一些真题」
- 拆分子查询:「山东大学 新传专业 研究生 真题」「山东大学 新闻与传播专业 考研真题」「山东大学 新闻与传播学 考研」
  • 用户查询:「教师资格证」
- 拆分子查询:「教资」

2. 调用 API

对原查询和每个子查询调用 API:

``bash curl --location 'http://edu-openapi.baidu.com/exercise_search_online?query={URL编码的查询}&topK=10' --data '{}' `

参数说明

| 参数 | 必填 | 默认值 | 说明 | |------|------|--------|------| | query | ✅ | - | 搜索内容 | | topK | ❌ | 30 | 返回结果数量(最大 50) |

返回字段

| 字段 | 说明 | 输出时映射为 | |------|------|--------------| | title | 标题 | 试题(试卷名称) | | exerciseCategoryName | 分类(如:考研) | 分类 | | exerciseSubjectName | 科目(如:数学一) | 科目 | | pdfUrl | PDF 链接 | 资源 |

输出表格字段:来源 | 年份 | 分类 | 科目 | 试题 | 资源

3. 检查信息源是否充足

充足性判断标准(必须同时满足):

| 条件 | 说明 | |------|------| | 有结果 | 结果数量 > 0 且有 pdfUrl | | 主题相关 | 结果与用户查询的主题相关 | | 条件匹配 | 仅当用户指定了具体年份/科目时,结果中需包含匹配资源 |

⚠️ 关键判断

| 用户查询类型 | 充足性判断 | |-------------|------------| | 未指定年份(如"考研数学真题") | 只要题库有相关资源就算充足 ✅ | | 指定年份(如"2025年数学题") | 题库必须有 2025 年资源才算充足 ❓ | | 指定科目(如"数学一真题") | 题库必须有数学一资源才算充足 ❓ |

不充足的情况:结果为空、主题不相关、用户指定了年份/科目但题库缺少匹配资源、无有效链接

处理方式

  • ✅ 充足:进入第 4 步校验结果
  • ❌ 不足:必须执行兜底流程(见下方)

3.5 兜底流程(仅当信息源不足时执行)

⚠️ 重要:只有当用户指定了具体条件(年份/科目)且题库缺少匹配资源时,才执行此流程!

不需要兜底的情况

  • 用户查询「考研数学真题」→ 题库返回数学真题 → ✅ 充足,不调用 baidu-search
  • 用户查询「建造工程师题」→ 题库返回建造师真题 → ✅ 充足,不调用 baidu-search

需要兜底的情况

  • 用户查询「2025年数学题」→ 题库只有 2023 年数学题 → ❌ 不足,需调用 baidu-search
  • 用户查询「教师资格证」→ 题库没有相关资源 → ❌ 不足,需调用 baidu-search

步骤

  • 提取 API 返回中与用户查询主题相关的资源(年份/条件不匹配也没关系),保存备用
  • 调用 baidu-search skill 尝试获取补充资源

baidu-search 调用方式

`bash python3 /home/gem/.openclaw/skills/baidu-search/scripts/search.py '{"query":"{用户原始查询} PDF"}' `

处理 baidu-search 返回结果

| 返回情况 | 处理方式 | |------|------| | 返回有效搜索结果 | 合并到资源列表,进入第 4 步校验 | | 返回 Error: BAIDU_API_KEY must be set | 兜底失败,使用备用资源 | | 返回其他错误或为空 | 兜底失败,使用备用资源 | | baidu-search skill 未安装 | 兜底失败,使用备用资源 |

baidu-search 返回字段映射

| 字段 | 说明 | 输出时映射为 | |------|------|--------------| | website | 网站名 | 来源 | | title | 标题 | 试题(试卷名称) | | url | 链接 | 资源 | | date | 日期 | 从中提取年份 |

注意:baidu-search 结果的分类科目需要从标题中推断

兜底失败时的处理

  • 如果有备用资源(主题相关但条件不匹配):进入第 4 步,标记为"部分匹配"
  • 如果没有备用资源:进入第 4 步,标记为"完全未找到"

4. 校验结果

校验:年份匹配、链接有效、主题相关。

校验结果分类

  • 完全匹配:满足用户所有条件
  • 部分匹配:主题相关但条件不完全满足(如年份不对)
  • 完全未找到:无任何相关资源

---

输出格式(向用户展示)

OpenCLAW 必须用一条消息回复用户,不分段输出。

⚠️ 重要:数量必须准确

输出中的数量描述必须等于表格实际展示的行数!
  • 如果表格展示 5 行 → 数量描述就是 5 条
  • 如果表格展示 10 行 → 数量描述就是 10 条
  • 严禁写 "找到 13 条" 但表格只有 5 行

情况一:完全匹配(找到满足用户条件的资源)

注意:表格中展示多少条资源,数量描述就应该显示多少条。

`` ✅ 为您找到关于「{用户查询}」的 {表格实际条数} 条相关资源:

| 来源 | 年份 | 分类 | 科目 | 试题 | 资源 | |------|------|------|------|------|------| | {来源} | {年份} | {分类} | {科目} | {试题名称} | 查看PDF |

💡 提示:点击链接即可查看或下载完整资源 💡 如需将这些资源保存到百度网盘,请告诉我,我可以帮您上传并分享链接~ 📚 还想搜其他题目吗?无论是考研、教资、行测还是其他考试真题,我都可以帮您查找,

数据来源ClawHub ↗ · 中文优化:龙虾技能库