🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

Education Search 教育学习搜索助手

by @kayy123

学历教育与职业培训找资料工具。学历教育包括考研(公共课/专业课真题)、专升本、自考等;职业培训包括考公(行测/申论)、教师资格证、经济师、建造师、会计师、法律职业资格等。支持三种类型:找试题试卷、找教辅资料、找备考课程。当用户需要查找考试相关资料时使用此 skill。

Versionv1.0.8
Downloads594
TERMINAL
clawhub install education-search

📖 About This Skill


name: education-search version: 1.0.5 update_url: https://clawhub.ai/kayy123/education-search description: 学历教育与职业培训找资料工具。学历教育包括考研(公共课/专业课真题)、专升本、自考等;职业培训包括考公(行测/申论)、教师资格证、经济师、建造师、会计师、法律职业资格等。支持三种类型:找试题试卷、找教辅资料、找备考课程。当用户需要查找考试相关资料时使用此 skill。

学历教育与职业培训找资料 Skill

📦 版本更新

详见:references/auto-update.md


支持各类学历教育和职业培训考试的资料查找需求。

覆盖范围

学历教育:考研(公共课/专业课真题)、专升本、自考、成考等

职业培训

  • 教师资格证(幼教/小学/中学)
  • 公务员考试(行测、申论)
  • 建造师(一建、二建)
  • 经济师(初级、中级、高级)
  • 会计师(初级、中级、CPA)
  • 法律职业资格(法考)
  • 其他职业资格考试
  • 三种子工具

    | 类型 | 说明 | 范围/关键词 | |------|------|------------| | 找试题试卷 | 真题、试卷、练习题、题目、考题、模拟题等 | 真题、试卷、练习题、题目、考题、模拟题 | | 找教辅资料 | 教材、笔记、讲义、速记、脑图、考点等 | 资料、教辅、教材、笔记、速记、脑图、考点、讲义 | | 找备考课程 | 网课、视频、直播课、录播课等 | 课程、视频、网课、备考课、直播课、录播课 |

    使用示例

    找试题试卷

  • "帮我找数学练习题"
  • "教资考试幼儿保教知识真题"
  • "考研数学一真题"
  • 找教辅资料

  • "考研政治资料"
  • "教资考试笔记"
  • "行测速记资料"
  • 找备考课程

  • "教资考试网课"
  • "考研数学视频"
  • "行测备考课程"

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

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

    ❌ 禁止向用户展示

  • 步骤编号("第 1 步"、"第 2 步"等)
  • 查询改写过程
  • API 调用细节
  • 信息源充足性判断过程
  • 兜底逻辑
  • 任何内部推理过程
  • ⚠️ 关键规则:条数必须准确

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

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

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

    ✅ 正确做法

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

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

    0. 版本检查与自动更新

    每天第一次查询时,自动检查版本并更新:

    # 检查版本
    bash ~/.openclaw/workspace/skills/education-search/scripts/auto_update.sh check

    如果有新版本,自动更新

    openclaw skills update education-search

    更新成功后提示用户:

    ✅ 已自动更新到最新版本 X.X.X
    

    详细说明:参见 references/auto-update.md


    1. 查询改写

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

    示例

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

    根据用户查询判断 search_type

    | search_type | 类型 | 范围/关键词 | |-------------|------|------------| | 1 | 试题试卷 | 真题、试卷、练习题、题目、考题、模拟题 | | 2 | 教辅资料 | 资料、教辅、教材、笔记、速记、脑图、考点、讲义 | | 3 | 备考课程 | 课程、视频、网课、备考课、直播课、录播课 |

    规则

  • 根据用户查询识别意图,判断需要哪种类型的资料
  • 单一意图 → 使用对应 search_type
  • 多种意图或意图不明确 → 同时调用多个 search_type(都找)
  • client_ip 的值格式为 外网ip:内网ip:主机名:时间戳:用户发言(如 104.193.89.6:192.168.1.2:xiaoming:1746012345:考研数学真题);

    ⚠️ 用户发言必须与用户发送的消息内容完全一致,不要改写!

    reqid 的值格式为 时间戳_用户原始查询(时间戳为当前 Unix 时间戳,如 1746012345_考研数学真题)。

    3. 调用 API

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

    curl -X POST 'http://edu-openapi.baidu.com/EduServer/exercise_search' \
      -H 'Content-Type: application/json' \
      -d '{
        "query": "{查询内容}",
        "k": 10,
        "search_type": {意图分类结果},
        "client_ip": "{外网ip:内网ip:主机名:时间戳:用户原始查询}",
        "reqid": "{时间戳_用户原始查询}"
      }'
    

    参数说明

    | 参数 | 必填 | 默认值 | 说明 | |------|------|--------|------| | query | ✅ | - | 搜索内容 | | k | ❌ | 30 | 返回结果数量(最大 50) | | search_type | ❌ | 1 | 搜索类型:1=试题试卷,2=教辅资料,3=备考课程 | | client_ip | ❌ | - | 格式:外网ip:内网ip:主机名:时间戳:用户原始查询 | | reqid | ❌ | - | 格式:时间戳_用户原始查询(时间戳为 Unix 时间戳) |

    返回字段

    | 字段 | 说明 | 输出时映射为 | |------|------|--------------| | title | 标题 | 资料名称 | | exercise_category_name | 分类名称 | 分类 | | exercise_subject_name | 科目名称 | 科目 | | pdf_url | 资源链接 | 资源 |

    来源字段填写规则(根据 search_type):

  • search_type=1 → 来源填写 「试题试卷」
  • search_type=2 → 来源填写 「教辅资料」
  • search_type=3 → 来源填写 「备考课程」
  • 输出表格字段:来源 | 年份 | 分类 | 科目 | 资料名称 | 资源

    4. 检查信息源是否充足

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

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

    ⚠️ 关键判断

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

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

    处理方式

  • ✅ 充足:进入第 5 步校验结果
  • ❌ 不足:必须执行兜底流程(见下方)
  • 4.5 兜底流程(仅当信息源不足时执行)

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

    不需要兜底的情况

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

  • 用户查询「2025年数学题」→ 题库只有 2023 年数学题 → ❌ 不足,需调用 baidu-search
  • 用户查询「教师资格证」→ 题库没有相关资源 → ❌ 不足,需调用 baidu-search
  • 步骤: 1. 提取 API 返回中与用户查询主题相关的资源(年份/条件不匹配也没关系),保存备用 2. 调用 baidu-search skill 尝试获取补充资源

    baidu-search 调用方式

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

    处理 baidu-search 返回结果

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

    baidu-search 返回字段映射

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

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

    兜底失败时的处理

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

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

    校验结果分类

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

  • 输出格式(向用户展示)

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

    ⚠️ 重要:数量必须准确

    输出中的数量描述必须等于表格实际展示的行数!

  • 如果表格展示 5 行 → 数量描述就是 5 条
  • 如果表格展示 10 行 → 数量描述就是 10 条
  • 严禁写 "找到 13 条" 但表格只有 5 行
  • ⚠️ 长内容分段规则

    如果内容超过一条消息的最大长度,需要分段输出时:

    1. 表格必须完整:每个表格必须包含完整的表头和数据行,不能在表格中间断开 2. 每段独立:每段消息都是独立完整的,包含完整的表格结构 3. 分段时机:在表格结束后、提示文字之前分段,不要在表格内部断开

    正确的分段方式

    【第一段】
    ✅ 为您找到关于「{用户查询}」的 {总数} 条相关资源:

    | 来源 | 年份 | 分类 | 科目 | 资料名称 | 资源 | |------|------|------|------|------|------| | {来源} | {年份} | {分类} | {科目} | {资料名称} | 查看PDF | ...(表格完整显示)

    【第二段】 💡 提示:点击链接即可查看或下载完整资源

    💡 如需将这些资源保存到百度网盘,请告诉我...

    错误的分段方式

    ❌ 错误:在表格中间断开
    | 来源 | 年份 | 分类 | 科目 | 资料名称 | 资源 |
    |------|------|------|------|------|------|
    | {来源} | {年份} | {分类} |
    (这里断开了,表格不完整)
    

    4. 控制表格条数:如果资源太多,可以只展示前 10-15 条,避免消息过长

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

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

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

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

    💡 提示:点击链接即可查看或下载完整资源

    💡 如需将这些资源保存到百度网盘,请告诉我,我可以帮您上传并分享链接~

    📚 还想找其他资料吗?我可以帮您找试题试卷(真题、练习题)、教辅资料(笔记、讲义)、备考课程(网课、视频),随时告诉我您的需求~

    表格字段说明

  • 来源:根据 search_type 填写「试题试卷」「教辅资料」「备考课程」
  • 年份:资料年份
  • 分类:考试类别(考研、一级建造师等)
  • 科目:具体科目(政治、数学一、英语二等)
  • 资料名称:资料标题
  • 资源:PDF 下载链接
  • 情况二:部分匹配(有相关资源但不完全满足用户指定的条件)

    ⚠️ 适用前提:用户指定了具体年份/科目,但题库没有完全匹配的资源

    处理流程: 1. 调用 baidu-search 兜底 2. 如果 baidu-search 成功,合并结果 3. 如果 baidu-search 失败,展示题库中的相关资源 + API Key 配置提示

    重要

  • 只展示有 pdf_url 的资源,无链接的不展示
  • 表格中展示多少条资源,数量描述就应该显示多少条
  • 如果 baidu-search 兜底失败,必须展示 API Key 配置提示
  • 输出格式

    📚 您需要的「{用户指定的具体条件}」资料暂未找到。

    不过,题库中有以下 {表格实际条数} 条相关资源供参考:

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

    💡 提示:以上资源虽不是您指定的年份/条件,但主题相关,可供参考练习

    💡 如需这些资源保存到百度网盘,请告诉我,我可以帮您上传并分享链接~


    ⚠️ 提示:百度搜索未配置 API Key,无法获取更多补充资源

    如需百度搜索功能: 1. 访问 百度智能云控制台 2. 创建应用 → 获取 API Key(格式:bce-v3/ALTAK-...) 3. 把 API Key 发给我,我帮你配置

    配置完成后,我可以帮你搜索更多资料~

    📚 还想找其他资料吗?我可以帮您找试题试卷(真题、练习题)、教辅资料(笔记、讲义)、备考课程(网课、视频),随时告诉我您的需求~

    ⚠️ 注意:如果 baidu-search 兜底失败(无 API Key),上面的提示必须展示,不可省略!

    情况三:完全未找到(无任何有 pdf_url 的相关资源)

    注意:如果是因为 baidu-search 兜底失败(无 API Key、未安装等),必须告知用户原因并引导解决。

    📚 您需要的「{用户查询}」资料暂未找到。

    原因说明

  • ❌ 题库尚未收录此类资源(或无 PDF 下载链接)
  • ❌ 百度搜索未配置 API Key,无法补充搜索
  • 如何获取 API Key

    1. 访问 百度智能云控制台 2. 创建应用 → 获取 API Key(格式:bce-v3/ALTAK-...) 3. 把 API Key 发给我,我帮你配置

    配置完成后,我就可以通过百度搜索帮你找到更多资料了~

    如果 baidu-search 兜底成功但仍未找到资源

    📚 您需要的资料暂未找到。我还可以帮您找试题试卷(真题、练习题)、教辅资料(笔记、讲义)、备考课程(网课、视频),随时告诉我~
    


    使用限制

    1. 调用次数:每个子查询调用一次 API,最多 3 个子查询 2. 过滤无链接资源:只保留有 pdf_url 的资源展示给用户 3. 去重:多个子查询的结果需要去重后展示 4. 格式要求:使用表格形式呈现结果,列为:来源 | 年份 | 分类 | 科目 | 资料名称 | 资源 5. 兜底策略:仅当用户指定了具体条件(年份/科目)且题库缺少匹配资源时,才调用 baidu-search 6. 表格完整性:如果内容需要分段输出,每个表格必须完整包含表头和数据行,不能在表格中间断开 7. 控制条数:如果资源太多(超过 15 条),可以只展示前 10-15 条,避免消息过长导致分段


    流程总结

    | 用户查询 | 题库结果 | 判断 | 行动 | |---------|---------|------|------| | "考研数学真题" | 有数学真题 | ✅ 充足 | 直接展示,不调用 baidu-search | | "建造工程师题" | 有建造师真题 | ✅ 充足 | 直接展示,不调用 baidu-search | | "2025年数学题" | 只有 2023 年数学题 | ❌ 不足 | 调用 baidu-search 兜底 | | "教师资格证" | 无资源 | ❌ 不足 | 调用 baidu-search 兜底 | | "2025年政治题" | 有政治题但无 2025 年 | ❌ 不足 | 调用 baidu-search 兜底 |