这 3 年做教育相关项目,我把一些经验整理成了一个开源 Agent Skills 项目
这几年接触过很多和教育有关的场景:学生学习、家长陪学、老师备课、作业练习、错题复盘、考试复习、知识点讲解、学习计划等等。
刚开始做 AI 教育时,我也和很多人一样,会很自然地想:
是不是只要写几个 Prompt,套上大模型,就能做一个 AI 老师?
但做了一段时间之后,我越来越觉得,教育场景远比想象中复杂。
教育不是一个简单的“问答场景”。
它更像是一套长期陪伴、持续反馈、不断调整的流程系统。
比如一个学生问:
“这道题我不会。”
这句话背后其实有很多隐含信息:
- 他是几年级?
- 当前学到什么阶段?
- 这道题属于哪个知识点?
- 他是真的完全不会,还是某一步卡住了?
- 应该直接讲答案,还是先引导?
- 要不要补一个类似题?
- 要不要记录到错题本?
- 要不要生成复习建议?
如果是家长问同样的问题,输出方式又不一样。
如果是老师问同样的问题,可能需要的是讲解思路、变式题、课堂设计和作业安排。
所以这几年下来,我最大的感受是:
AI 教育真正难的地方,不是让模型“回答”,而是让它在正确的教育场景里做正确的事情。
基于这个思考,我最近把自己这几年做教育相关项目时积累的一些经验,整理成了一个开源项目:
Hermes Edu Skills
GitHub 地址:
https://github.com/zhongweiv/hermes-edu-skills
它不是一个简单的 Prompt 合集,而是一套面向中文教育场景的 Agent Skill Pack。
目前项目里已经整理了 170 个可安装 Skill,覆盖:
- 教材同步
- 学习能力
- 每日练习
- 阅读写作
- 考试备考
- 老师工具
- 家庭教育
- 语言学习
- 成人学习
如果你也在做 AI 教育、Agent、学习助手、老师工具、错题系统或者题库产品,希望这篇文章能给你一些参考。
一、这几年做教育项目后,我对 AI 教育有几个变化很大的认知
刚开始看 AI 教育,很容易被“AI 老师”“AI 家教”“拍照答疑”“自动批改”这些概念吸引。
这些当然都很有价值。
但真正做项目之后,我发现教育场景里有几个问题非常关键。
1. 教育不是通用聊天,必须有场景边界
大模型本身很强,但它默认是一个通用助手。
通用助手的问题是:它什么都能说,但不一定知道当前教育任务的边界在哪里。
比如学生问一道数学题,如果模型直接给出完整答案,可能短期看起来很爽,但长期看不一定有利于学习。
更好的方式可能是:
- 先判断知识点;
- 再判断学生卡在哪一步;
- 先给提示;
- 再给过程;
- 最后给一个类似题巩固。
也就是说,教育 AI 不应该只是“回答正确”,还要考虑“怎么帮助学习真正发生”。
这也是我后来更倾向于用 Skill 来组织能力的原因。
Skill 可以把一个教育任务的目标、边界、输入参数、输出结构提前定义好,而不是每次都让模型临场发挥。
2. 教育产品不能只按“学科”拆能力
很多教育项目一开始会按学科拆:
- 语文
- 数学
- 英语
- 物理
- 化学
- 生物
- 历史
- 地理
- 政治
这个思路没错,但不够。
因为真实使用时,用户不是只说“我要数学”,而是会说:
帮我出 20 道三年级口算题。
帮我复盘这道错题。
帮我做一份期末复习计划。
帮我讲一下八年级下册物理浮力。
帮我写一份家校沟通话术。
帮我生成一份课堂练习。
帮我陪孩子背古诗。
这些任务同时涉及:
- 学段
- 学科
- 教材
- 角色
- 任务类型
- 输出形式
- 使用频率
所以 Hermes Edu Skills 在设计时,没有只按学科拆,而是结合了“产品场景”和“教育任务”。
比如:
- 教材同步是一类;
- 错题复盘是一类;
- 每日练习是一类;
- 老师工具是一类;
- 家庭教育又是一类。
这种拆法更接近真实产品,也更方便后续接入 Agent。
3. 教育 Agent 需要长期记忆,但不能什么都记
这几年做教育相关项目时,我经常会思考一个问题:
AI 学习助手到底应该记住什么?
它当然应该记住一些长期有用的信息,比如:
- 学生年级
- 教材版本
- 薄弱知识点
- 常错题型
- 学习目标
- 每天练习情况
- 近期考试安排
但它不应该什么都记。
教育场景里的记忆应该服务于学习,而不是变成一个杂乱的聊天记录仓库。
所以如果以后要基于 Hermes Edu Skills 做完整教育 Agent,我觉得比较合理的结构是:
短期上下文:当前对话、当前题目、当前任务
阶段记忆:最近一周 / 一个单元的学习情况
长期画像:年级、教材、能力水平、薄弱点
学习事件:错题、练习、测试、复习记录
反馈机制:根据学习结果调整后续任务
Skill 在这里扮演的角色,就是让每一次学习行为变得更结构化,方便后续记录、分析和调整。
4. 家长、学生、老师其实需要的是不同的 AI
同样是教育,但不同角色的需求完全不同。
学生需要的是:
- 讲得懂
- 不打击人
- 能一步一步引导
- 能及时练习
- 能帮他从不会到会
家长需要的是:
- 知道孩子哪里不会
- 知道怎么陪学
- 知道怎么沟通
- 知道什么时候该帮,什么时候该放手
老师需要的是:
- 备课更快
- 出题更方便
- 作业更有层次
- 班级学情更清楚
- 家校沟通更省力
所以一个教育 Agent 如果只用一个统一 Prompt 服务所有人,很容易失控。
我的做法是把不同角色的任务拆到不同 Skill 里。
这不一定是唯一答案,但至少在工程上更容易维护,也更容易逐步迭代。
二、为什么我最后选择用 Skill Pack 的方式整理这些能力
这几年我尝试过很多方式来组织 AI 教育能力。
最早可能就是简单 Prompt。
比如:
你是一个小学数学老师,请帮我……
这种方式上手很快,也适合验证想法。
但问题也很明显:
- Prompt 越写越长;
- 很多内容重复;
- 不同能力之间边界不清楚;
- 很难做版本管理;
- 很难复用;
- 很难接入工具链;
- 也很难让 Agent 自动选择。
后来我越来越觉得,教育 AI 需要的不是一堆散乱 Prompt,而是一套可以被发现、安装、调用、组合和维护的能力系统。
这就是 Hermes Edu Skills 的基本思路。
每个 Skill 都是一个相对独立的教育能力单元。
它可以描述:
- 这个 Skill 解决什么问题;
- 适合什么角色;
- 需要哪些输入参数;
- 输出应该是什么结构;
- 应该遵守哪些教育原则;
- 什么时候不应该使用;
- 是否需要工具调用;
- 是否适合和其他 Skill 组合。
这种方式更像是在搭一个教育 Agent 的“能力库”。
三、Hermes Edu Skills 现在是什么状态
目前这个项目已经整理了 170 个可安装 Skill。
整体分成 9 大类:
- 教材同步
- 学习核心能力
- 每日练习
- 阅读写作
- 考试备考
- 教师工具
- 家庭教育
- 语言学习
- 成人与职业学习
项目里不只是放 Markdown 文件,还包含了:
skills/ 具体 Skill 内容
catalog.json Skill 目录索引
.well-known/skills/index.json Skill discovery 入口
bin/hermes-edu-skills.mjs CLI 入口
scripts/validate.mjs 校验脚本
scripts/agent-pack.mjs Agent Pack 导出脚本
CONTRIBUTING.md 贡献说明
SECURITY.md 安全说明
.github/workflows/validate.yml GitHub Actions 校验流程
也就是说,它不是一个临时整理的文档仓库,而是尽量按照一个可维护、可扩展、可安装的开源包来设计。
四、技术设计上,我重点考虑了几个问题
1. Skill 的颗粒度不能太粗,也不能太细
这是我觉得教育 Agent 设计里很重要的一点。
如果 Skill 太粗,比如只有一个:
education-assistant
那它又变成了万能 Prompt,内部逻辑会越来越复杂。
但如果 Skill 太细,比如拆成:
一年级上册语文第一课
一年级上册语文第二课
二年级上册数学第一单元第一课时
八年级物理浮力选择题
八年级物理浮力填空题
那数量会爆炸,也很难维护。
所以我现在更倾向于:
能力按任务拆,具体年级、教材、单元、知识点作为参数传入。
比如“教材同步学习”可以是一个 Skill,但它需要支持:
- 学段
- 年级
- 学科
- 教材版本
- 册别
- 单元
- 课时
- 知识点
- 难度
- 输出类型
这样既保留了教育场景的结构,又避免把 Skill 拆成无限多个碎片。
2. Skill 要能被机器读取,而不是只给人看
如果只是给人看,README 写清楚就够了。
但 Agent 需要的是可读取、可匹配、可安装、可调用。
所以项目维护了:
catalog.json
.well-known/skills/index.json
这两个文件的作用类似于 Skill Registry 的索引层。
未来无论是 Hermes Agent,还是其他 Agent Runtime,都可以通过索引知道:
- 有哪些 Skill;
- 每个 Skill 属于什么分类;
- slug 是什么;
- 路径在哪里;
- 适合什么任务;
- 如何安装或导出。
这也是我没有只做“文章式整理”的原因。
更多推荐

所有评论(0)