☰
用AI Agent打造学习教练:Skill机制实现摸底、画图、出题、笔记
2026/9/29 17:13:08 网站建设 项目流程

如果你最近在折腾AI编程代理,估计没少听说Claude Code、Codex,还有它们里的skill生态。今天我说的Pi,就是这一类能自己干活、能读文件、能调工具、能按脚本跑流程的AI agent。而我最近一直在玩的一个玩法,就是用Pi学新东西——标题里那句话不是吹的:摸底、画图、出题、写笔记,一个叫“学习教练”的skill全包了。

这个skill不是官方出品的什么黑科技,就是基于agent的skill机制做的一套学习工作流封装。你把目标领域丢进去,它会先像老师一样摸底你的水平,然后帮你把知识结构画成图,再出几道题检验你到底懂没懂,最后把笔记和闪卡整理好。这篇文章我会把它的设计思路、实现细节、完整实操和踩坑过程都摊开讲一遍。如果你正在用各类AI agent做知识管理,或者对skill开发好奇,这篇文章应该能让你少走不少弯路。

1. 先搞清楚:Pi是什么,skill是什么,为什么能用来学习

1.1 Pi不是聊天机器人,是一个能"跑活"的agent

普通聊天AI,你问一句它答一句,本质是搜索引擎加个说话的口子。Pi这类agent完全不是这个路子,它更像一个给你打工的实习生:你告诉它目标,它自己拆解步骤,自己决定先干什么后干什么,还能读写你电脑上的文件、跑命令、生成代码,做完之后还会自查一遍结果。

打个比方你就明白了。学知识这件事,你和普通AI的对话方式就像你去图书馆问管理员“这本书讲什么的”,管理员给你翻两页摘要,剩下的还是你自己啃。而和Pi这类agent,相当于你雇了个私人助教,你说“这周末我要搞懂贝叶斯统计”,它会说“行,那我先给你做个学前摸底,然后拉一张知识地图,再出几道题试试水,最后把笔记给你整理好”——它会自己把这个项目从头跟到尾。

学习本来就是一个多步骤过程:先知道学什么、再搭框架、然后检验、最后复习。这些步骤每一步单独拿出来都不难,难的是串在一起还能坚持执行。我以前自学的时候,经常是“摸底没做就冲进去看书,看一半发现前面基础不对”,这类问题正好是agent擅长的——它天生就是按流程做事的东西。

1.2 skill是什么:一套打包好的"岗位手册"

skill在agent生态里的定义其实不复杂:它就是把某个特定场景下的工作方法、步骤、约束条件和配套资源打成包,让agent在进入这个场景时立刻变成“老手”。

最常见的skill结构就是一个目录,里面放一个主指令文件(基本都叫SKILL.md),外加若干辅助内容。主指令文件有点像给agent看的“岗位说明书”,告诉它:你在什么场景下被触发、你该按什么顺序干活、每一步的输出格式是什么、有哪些必须避免的坑。辅助内容则可以有很多花样,比如模板文件、示例脚本、参考资料,甚至让agent调用的外部程序。

你可以把skill理解成一本菜谱。普通prompt是“今天想吃鱼”,让AI看着发挥;skill则是“清蒸鲈鱼完整菜谱”,不仅写了要什么鱼、怎么腌、蒸几分钟,还写了火候大了会怎样、哪些步骤不能省。AI读了这个skill之后,就不会再自由发挥了,它会老老实实按菜谱来。

这里还要分清一个概念:skill和普通prompt的区别不在“写得长不长”,而在“可复用性和约束力”。prompt是散装的对话指令,这次写了下次还得重写,换个场景就不好使;skill是可保存、可分享、可版本管理的“方法论封装”。一个skill在团队里流传,等于把一个人的成熟工作流复制给了所有人。

1.3 为什么"学习"这件事值得一个skill

有没有发现,大多数人的自学过程其实是无流程的:拿到一本教材或一份资料就开始读,读了三章发现前面没吃透,读到后面前面已经忘了,全程没有一次主动自测,笔记要么没记要么记成了抄书。

我自己的体会是,有效的学习闭环其实很固定:摸清现状、输入内容、搭建结构、主动检验、沉淀复习。这五个环节缺一不可。问题是,让一个普通人每次都自觉走完这套流程,太难了。这时候如果把流程写进skill里,你就等于每次学习都有一个流程管理员盯着你——它帮你做诊断,帮你画结构,帮你出题为难你,帮你把笔记整理成能复习的样子。这才是真正解决学习问题的思路,而不是“给你一个更聪明的聊天框”。

2. 拆解这个学习skill的四个核心功能

2.1 摸底:让agent当你的"知识体检员"

摸底这个环节的设计思路,类似去医院先做体检而不是直接开药。很多人想学一个领域,第一反应是“找资料开始看”,但真正该做的第一步是搞清楚自己现在站在哪。skill里的摸底功能,是在你正式开始学之前,让Pi通过一组递进式问题判断你的真实水平。

具体怎么设计的?我把摸底分成三层:第一层问宽泛概念,比如“你听说过XXX是什么吗?”“你能用自己的话解释它的用途吗”;第二层问结构关系,比如“你知道它和相邻概念的区别和联系吗”;第三层问实操经验,比如“你用这个知识解决过真实问题吗”。Pi会根据你的回答,动态决定继续追问还是换一个问题方向,而不是机械地把20个问题一次性甩给你。

这一环节的输出也很关键。摸底结束后,Pi会生成一张“现状分诊表”,把你的状态分为三类:已知、模糊、未知。已知的跳过不用再学,模糊的进入画图和出题环节重点关注,未知的打上标记作为学习主攻方向。有一次摸底贝叶斯统计,我自己觉得自己“好像知道”,结果Pi几个问题问下来,暴露了我对“似然”这个概念其实处于模糊状态——我自己都没意识到的薄弱点,它给挖出来了。

做摸底有个重要原则必须写进skill里:允许用户说“不知道”,而且当用户答不上来时,agent不能立刻给出答案。摸底阶段的任务是诊断,不是教学。一上来就开讲,等于体检都没做完就开药了。

2.2 画图:把抽象关系变成一眼秒懂的图

文字是线性的,知识的组织结构却是网状的。我们看一篇文章,只能沿着作者的顺序一步步往下读,但知识本身有层级、有分支、有依赖、有先后关系。这也是为什么很多高能学习者都喜欢画图——一张好图能同时呈现大量文字才能讲清楚的结构关系。

skill里的画图功能,会引导Pi根据当前的摸底结果和知识内容,绘制不同类型的结构图。最难啃的知识领域,用思维导图把层级关系铺开;两个容易混淆的概念之间的关系,用对比图并置展示;学习路径的先后依赖,用流程性的步骤图表现;一堆并列的知识点,则用表格对照会更清晰。

还有一个藏在画图背后的价值:画图不是目的,逼着agent把知识结构显性化才是目的。这个环节运行的时候,Pi需要把模糊的知识点放在图里的某个位置,这时候如果它发现某个知识点没法归类,通常就能暴露出来。我经常在跑完画图这一步之后,突然发现自己对某个概念的“位置感”有了质的提升——这就是把隐性认知变成显性结构的过程。

实际跑起来的时候,Pi会把图以文本结构的形式给出来,或者用适合本地渲染的图表语言生成文件,我拿到之后自己再渲染成图片存到项目目录里。这个过程也很符合“先让agent生成,再由人确认”的原则,图有结构问题一眼就能发现。

2.3 出题:用测试倒逼学习效果

你有没有这种经验:看书的时候觉得全看懂了,合上书一回忆,脑子里啥也没有。这是因为被动阅读给人带来的“流畅感”是虚假的——眼睛认识不等于脑子理解。真正靠谱的检验方式是主动回忆:不看笔记,尝试自己把知识讲出来、把题做出来。心理学里的测试效应讲的就是这个道理,主动回忆比反复重读的记忆效果高出一大截。

skill里的出题功能就是把测试效应落到了实处。Pi会根据当前的薄弱点和学习目标生成不同类型的题目。概念选择题用来检验基本定义和边界,简答题用来检验能否用自己的话复述,计算题用来检验能否把公式用对,场景应用题用来检验能不能在新情境里迁移这个知识。

在设计出题规则时,我踩过几个坑,最后在skill里写明了几个硬性约束:每道题必须配置答案和解析,不能让用户蒙题;每套题必须覆盖不同难度,并且明确标注难度系数;出题模式默认是交互式的,Pi先抛出一道题,等你回答完再给下一道,而不是一次性把所有题目连带答案导出来——连答案一起给,测试效果基本归零。

关于难度这块,我还给skill加了一个可调的参数:难度可以按0到10来设定。0到3是基础概念题,4到6是应用计算题,7到10是综合性辨析题。默认跑在5左右,如果你是在复习冲刺阶段,可以临时调到8,让Pi专门挑难的出。这个参数化设计的思路很值得参考,让skill有了“个性”。

2.4 写笔记:把知识沉淀成能复习的东西

学习的最后一步,是把这一轮折腾出来的内容整理沉淀。但这里有个很多人都会犯的错:笔记不是抄书。把书里的段落搬到笔记软件里,除了获得“我记了笔记”的虚假满足感之外,对理解和记忆基本没有帮助。真正有用的笔记,应该用自己的话把概念重构一遍,加上想到的例子、踩过的坑、以及没想通的问题。

skill里的笔记功能会按照固定模板输出一份结构化笔记,包括一句话总结、核心概念清单、关键公式或代码示例、本次学习中暴露的盲点、以及待查项和复习计划。这个模板是我反复改过的,最早版本太自由,Pi写出来的笔记跟散文似的,好看但不好复习。后来我加了“每条核心概念必须配一个生活化类比或具体示例”的硬约束,笔记可用性立刻上了一个台阶。

还有一个很提效率的设计:笔记生成之后,skill会顺手把关键知识点转成闪卡格式。闪卡就是一张卡片正面写问题、背面写答案的那种复习工具,配合Anki这类间隔复习软件使用。我每次学完一个主题,都会把生成的闪卡导入Anki,每天花十分钟左右过一遍。这个“学完就能刷”的体验,是普通笔记完全给不了的。

3. 实操:从零把这个学习skill装进你的Pi

3.1 先给自己搭一个"学习项目目录"

开始之前,我强烈建议你为每个学习主题单独建一个项目目录。一个目录里放素材、笔记、图表、测试题,所有文件井井有条,agent读写起来也方便。别小看这个动作,它的意义是给agent提供“外部记忆”——那些已经完成的分析结果和笔记,写到文件里,对话里就不用总是保留了。不然你会很快撞到上下文长度限制。

以学习傅里叶变换为例,我第一次搭建目录用的是这样的命令:

mkdir -p learn-fourier/{materials,notes,diagrams,tests}

这四个子目录分别放原始资料、生成笔记、结构图文件、测试题记录。目录建好之后,告诉Pi当前的项目路径,后续所有读写操作都会在这个范围内进行。我自己跑了十几个主题之后发现,项目目录的存在不仅是给agent用的,也是给自己复盘用的——三个月之后再回到一个主题,直接翻目录就能看到上次学到哪、留下什么问题。

3.2 skill的目录结构和SKILL.md写法

接下来是核心动作:创建你自己的skill目录。不同agent的skill存放路径不完全一样,但大体的目录结构是一套生态通用的。以我自己的环境为例,我会在skill根目录下建一个叫learn-coach的目录,里面放主指令文件和配套模板。

一个标准的SKILL.md长什么样?我见过很多版本,但最基本的骨架是固定的。开头有一段frontmatter,用来告诉agent这个skill的名字和触发场景;正文写执行流程和输出规范;结尾写禁忌和注意事项。这里给你一个简化版参考:

--- name: learn-coach description: 当一个用户想深入学习一个新领域时,使用本skill。 按摸底、画图、出题、写笔记四个阶段执行。 --- # 学习教练工作流 先执行摸底:用递进式提问判断用户水平,输出现状分诊表。 再执行画图:根据摸底结果绘制知识结构图。 然后出题:按难度参数生成交互式习题。 最后写笔记:整理成结构化笔记并生成闪卡。 ## 硬性规则 - 摸底阶段禁止讲课,只做诊断。 - 出题必须交互式进行,答完一题再出一题。 - 笔记禁止抄书,每条概念须配类比或示例。

关键不在于格式多么工整,而在于你说清楚了“每一步该做什么、输入是什么、输出是什么”。我曾见过写满两千字的SKILL.md,结果agent反而跑偏了,因为约束太多反而无所适从。实操下来,指令要精准,不要含糊,尤其要在关键节点用“必须”“禁止”这类词把行为卡死,同时给agent留出合理的执行空间。

3.3 如何让skill"更聪明":加模板和脚本

SKILL.md只解决了“流程和规则”的问题,但如果想让输出质量稳定、格式统一,还得靠配套的模板文件和脚本。我常用的做法是,在skill目录下放一套模板,比如摸底问卷模板、笔记模板、闪卡模板。Pi在执行时先读取模板,再按模板结构填充内容,而不是自己现场发挥。这样哪怕换一个模型来跑,输出的格式也基本一致。

更进一步的玩法是加一个小脚本。比如我用Python写过一个把问答对直接转成Anki闪卡的简单脚本,大概长这样:

import sys def to_anki(qa_file, output_file): with open(qa_file, encoding="utf-8") as f: lines = [line.strip() for line in f if line.strip()] with open(output_file, "w", encoding="utf-8") as out: for i in range(0, len(lines), 2): out.write(lines[i] + "\t" + lines[i+1] + "\n") if __name__ == "__main__": to_anki(sys.argv[1], sys.argv[2])

Anki的闪卡文本格式其实很简单:一个问题、一个制表符、一个答案、一行一个卡片。上面这个脚本把一行问题一行答案的文本转成Anki能导入的格式,十几行代码就搞定了。这个脚本虽然小,但它展示了skill可以承载真实逻辑的可能性,不只停留在“prompt调教”层面。

3.4 把skill跑起来:一次完整的启动会话

装好skill之后,第一次调用非常关键。你给Pi的启动信息越清楚,它后面的执行质量越高。我一般会在第一句话里说明三件事:知识领域是什么、目标学到什么程度、有多少时间。

一个典型的启动会话是这样开场的:

“用学习教练skill带我入门马尔可夫链。目标是理解核心概念并能解决简单的状态转移计算题,今天大概有2小时。第一步先摸底,不要直接开始讲课。”

一番启动信息之后,Pi会开始执行skill里的流程,从摸底的第一问开始。这时候你只管如实回答,不用管“答错了怎么办”——答错、答不上来,本来就是摸底环节要处理的一部分。等四步流程跑完,你会发现自己在这个领域的知识地图已经铺开了,手里有了笔记和复习材料。

这里有必要提醒一句:skill不是装了就能一直好用。最开始跑完一轮,几乎一定会发现某个环节不合预期,比如摸底问得太浅、出的题过于简单、笔记写得不够具体。这时候就回到SKILL.md里改描述,再跑一轮。调skill本身就是一个迭代的过程,每一次不满意都是给你提供参数去修正的机会。用一两轮就能把skill调到顺手的,我目前还没见过。

4. 实战记录:我拿"贝叶斯统计"试了一遍

4.1 摸底环节实录

我拿“贝叶斯统计”当试验田,跑了一遍完整的skill流程。启动之后,Pi先抛出了三个递进式问题。第一个问题是:“你能不能用自己的话解释:贝叶斯定理里,先验概率和后验概率分别是什么意思?”我当时答了,但明显用的词都是教材上的空话。Pi二话没说,进入了第二问。

第二个问题进一步追问:“假如一个检测准确率很高的罕见病检测试剂盒筛查出阳性,你觉得这个人真得病的概率大概是多少?为什么很多人会直觉说一个很高的数字?”这个问题其实是在刺探我对“基础比率谬误”的感知。我答得磕磕绊绊,Pi就在分诊表里把“似然、基础比率、先验更新”这一串概念标成了“模糊”。第三问问的是“你做过贝叶斯更新的计算题吗”,我老实回答“没做过”。

摸底结束后的分诊表列得明明白白:已知是贝叶斯公式的基本形式,模糊是似然和基础比率的关系,未知是实际应用中怎么选先验。说实话,看着这张表我是有点出汗的——自学的时候真的很难这么清晰地认知到自己的盲点。

4.2 画图环节实录

摸底完成,Pi接着进入画图环节。它生成了一张知识结构图:以贝叶斯推断为根节点,下面分出先验、似然、后验、证据、更新策略五个分支,每个分支又标出了与相邻概念的关系。文本图形状一眼扫过去,整个框架就成型了。

这个图给我最直观的价值是它把我脑子里的“一坨”东西变成了“一棵树”。而且有意思的是,在生成“似然”分支的时候,Pi反复确认这个概念该怎么归类,因为它发现“似然”和“概率”在概念上有交叉,而这个交叉恰好是我摸底时暴露的模糊点。这其实就是画图环节想达到的效果:结构显性化之后,模糊的地方自己就冒出来了。

4.3 出题与交互式测验

图画完,Pi开始出题。第一道是概念题:“后验分布正比于什么和什么的乘积?”这道题不难,但正是它帮我巩固了核心公式。第二道是计算题,一个典型的场景:某种疾病的发病率1%,试剂的灵敏度99%,假阳性率5%,如果某人检测结果是阳性,请问他真正患病的概率大概是多少?我卡了一会儿,最后把数字代进去算,结果跟直觉差得很多,一瞬间突然懂了“为什么阳性结果不等于确诊”。

我答完这道题后,Pi追问了一句:“如果把这个疾病的发病率改到10%,结果会怎么变?”这就是一个变式追问,目的不是给我加难度,而是让我看看“先验对后验的影响有多敏感”。我当时突然就理解了为什么贝叶斯学派特别强调先验的选择——这比我读十页教材都管用。

整个测验环节,Pi都严格遵循了交互式规则,没有把答案一次性全倒给我。它只在我答完之后给解析,并且每段解析基本控制在百字以内。克制,反而让讲解更清晰。

4.4 笔记沉淀

测验结束,Pi开始整理笔记。最终的笔记长这样:一句话总结是“贝叶斯推断就是用数据更新旧信念的过程”;核心概念清单列了先验、似然、后验、归一化因子、共轭先验;示例部分给了一个“垃圾邮件过滤器”的生活化例子;盲点与待查项里写了“似然和概率的区别”。它还把三个重要概念转成了闪卡,我用脚本处理之后导入了Anki,每天花十分钟刷一遍。

这一套流程跑下来,最大的感受是:以前自学一个主题,我通常花大量时间在“找资料、看资料、怀疑自己到底懂没懂”这些事上,而这个skill把其中大半的环节自动化了,我只需要把精力花在理解本身。不用再纠结“接下来该干嘛”,因为流程会把下一步推到我面前;不用再怀疑自己懂没懂,因为题目会告诉我答案。

5. 常见问题与排查技巧实录

5.1 遇到"响应流异常"报错怎么处理

我在跑这个skill的早期,遇到过一种报错,提示信息是“the response stream was malformed and no response was produced. try again.”。第一次看到这个报错我还以为skill写错了,排查了半天脚本和指令文件,结果问题根本不在skill本身。

这种报错通常发生在上下文过长或者一次请求内容太多的时候。skill流程如果一次加载了太多模板和示例,再加上前面几轮的对话内容,很容易触发流式响应中断。我当时的处理办法很直接:把长任务拆碎。比如“摸底+画图”不放在同一条超长消息里,而是分两步来,等上一步的结果写进文件后,再基于文件内容跑下一步。把任务的粒度降下来之后,这种报错就很少再出现了。

如果你也遇到这个报错,可以按这个顺序排查:先看是不是对话上下文太长,建议精简掉无关历史消息;再看是不是请求内容里塞了太多文件内容,建议只保留必要的模板;最后再做一次“重试”动作,有时候偶发性的流中断重试一次就正常了。

5.2 skill"不听话"、跳过步骤怎么办

最常见的尴尬场面是:你明明说了“先摸底,不要讲课”,Pi还是哗啦哗啦给你讲了一堆。这种“不听话”的原因,十有八九出在SKILL.md的指令强度不够。如果你在指令文件里写的是“可以先摸底”,agent就可能理解为“摸底可以做也可以不做”。改法很明确:把“可以”换成“必须”,把“不要”换成“禁止”。

还有一个容易被忽略的问题:触发条件写得太含糊。如果description里只写“帮助用户学习”,那Pi可能在你提到“帮我了解一下XXX”时就触发,但它不清楚“了解”算不算“完整学习流程”,于是就开始自由发挥了。后来我把描述改成了非常具体的一句话:“当用户提出想深入学习一个领域或主题时,必须使用本skill按四阶段完整执行。”效果立刻不一样了。

这部分问题不妨整理成一个排查对照表,遇到类似情况可以直接对照着处理。我根据自己的踩坑经验,把常见问题、可能原因和解决办法汇总如下,供你参考:

常见现象可能原因解决办法
跳过摸底直接开讲SKILL.md里步骤没有使用“必须”等强约束词把流程步骤改为明确的“第一步必须摸底,禁止讲课”
出题时连答案一起输出没有写交互式出题的规则在SKILL.md中写明“每次只出一道题,等用户答复后再解析”
笔记写得像流水账模板约束力不足,缺少格式硬性要求添加笔记模板,要求每条概念必须配类比或示例
生成的图结构混乱没有让agent先列出大纲再生成图增加指令:画图前先输出纯文本大纲,用户确认后再生成最终图
上下文越来越长导致回复变慢所有中间结果都留在对话里让agent把每阶段结果写入项目目录文件,对话里只保留摘要

5.3 题目质量不好、笔记空泛怎么调

AI出题很容易出三种毛病:题目太简单、选项有动作暗示、解析写得像凑字数。我都遇到过。题太简单的原因是agent顺着“教材基础知识”出发,默认你只会做送分题。解决办法是给难度一个明确的标准,我在skill里写了“难度系数6以上的题必须带有实际场景,至少包含一个需要用户绕弯的干扰条件”。

笔记空泛则是另一个常见吐槽点。什么叫空泛?通篇都是“这章介绍了XX的基本概念,XX对实际应用具有重要意义”——全是废话。根治办法是加一条硬规范:笔记里每出现一个概念,必须给出一个具体例子或者生活类比的描述。如果一个概念连例子都举不出来,那就说明这个知识点本身还没有被消化,应该顺手记进“待查项”里。

还有一个技巧是给agent加一个“教练视角”的设定。我发现让Pi以“一个曾经难学过这个领域的人”的身份来出题和写笔记,它的输出明显更贴心,因为它会代入学习者的困惑来设计题目,而不是用一个百科全书的视角俯视你。

5.4 上下文越用越长、越跑越慢怎么应对

四阶段流程全部在一条对话里跑的时候,到后半段通常会出现上下文接近上限的问题。早期的处理办法是硬扛,结果就是后面生成的内容质量肉眼可见地下降。后来我学聪明了,干脆给skill加了一个规则:每个阶段完成之后,Pi要先把结果写入对应子目录的文件里,然后在对话中只保留一段简短摘要。需要下一阶段用到前面的数据时,直接读取文件,而不是把整段历史都重说一遍。

这个“文件即外部记忆”的思路,是一个值得抄作业的设计。它不仅仅解决上下文长度问题,还能让整个学习过程可回溯、可复用。你回顾一周前学过的东西,直接打开笔记文件就能接上,而不是翻聊天记录翻到怀疑人生。用Pi学新知识这件事,真正的门槛不是AI自己多聪明,而是你能不能把流程和记忆安排好——把这一层理顺了,学习效率的提升是非常明显的。

如果你也想动手试试,建议先从一个小领域开始,比如你工作中一直想补但没动工的那块知识。建好项目目录,配好skill,然后从摸底开始跑一轮。跑完你就能体会到,这套玩法最大的乐趣不是“AI帮你学”,而是你终于有了一套能一直用下去的、逼着你真正搞懂东西的流程。我自己跑完几个主题之后最深的感受就是:以前自学靠意志力,现在自学靠系统——而系统这种东西,一旦跑起来,就不太依赖状态了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询