尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

用 teach skill 让 AI 从答题机器变成真老师:一份可复用的提示词工程协议

用 teach skill 让 AI 从答题机器变成真老师:一份可复用的提示词工程协议 把 AI 当老师用最怕的不是 AI 不懂而是 AI 太愿意直接给答案。Matt Pocock 的实战教程把这件事总结成一个词teach skill——让 AI 像真老师一样教你任何东西而不是像搜索引擎一样抛给你一段标准答案。这套思路本质上不是一个隐藏功能而是一套可以复制到任何支持自定义指令的 AI 助手里的提示词工程方法。你不需要特定的模型也不需要先掌握复杂的 Agent 开发只要把“教学协议”设计清楚就能让 AI 从答题机器变成会诊断、会引导、会反馈的老师。这篇文章会围绕 teach skill 展开一条完整实践路径先理解为什么普通问答不像教学再设计一套可直接复用的系统提示词然后通过一个“数组去重”案例跑通教学循环最后把技能改造成可配置的工程模板并给出失效场景的排查方法。如果你正在用 AI 学编程、准备面试或者打算把 AI 教学能力做成产品这套方法可以直接落地。1. 先理解 teach skill为什么普通 AI 问答永远不像老师1.1 答题模式与教学模式是两个不同的东西大多数人和 AI 的第一次学习对话是这样的“请解释一下什么是闭包。”“什么是 Git rebase”“帮我写一段数组去重的代码。”这类问题都能得到正确答案但得到的往往是“一段结果”而不是“一次教学过程”。真实老师不会一上来就给你讲满三十分钟理论也不会在你明显卡住时继续往下灌新概念。老师会先判断你已经懂什么再决定讲多深然后通过练习判断你是否真的学会。teach skill 的核心就是把“老师的行为”变成一个可执行的协议而不是只靠模型自由发挥。普通 AI 问答默认采用答案模式目标是把结果讲完整教学模式的目标则是让学习者能够独立产出结果。对比维度普通答题模式teach skill 教学模式核心目标给出正确答案结束问题让学习者自己获得产出答案的能力交流起点用户问模型答先收集学习者已有知识、目标和时间预算输出粒度一次输出较完整解释一次只讲一个概念配合最小例子错误处理基本不处理或重新给一次答案根据错误先肯定正确部分再给出提示结束条件回答完成学习者能通过新情境题说明知识发生迁移这里的关键不是“要不要给答案”而是“答案在什么时机、以什么粒度出现”。teach skill 要求 AI 把答案设计成教学过程的一部分而不是过程本身。1.2 teach skill 不是“人设提示词”而是“教学协议”很多人试过这样写提示词“你是一个资深老师。”“请你像老师一样教我。”“你是编程导师请详细解释。”这类写法会有轻微作用但效果不稳定。原因很简单模型知道自己的角色是老师却不清楚老师的流程是什么。它可能语气很温柔内容照样堆成一篇论文照样不在你答错之后调整讲解方式。teach skill 要解决的是流程问题所以它必须包含明确的规则什么情况下必须停下来提问。每个知识点最多讲多少内容。学习者答错之后应该给提示还是给答案。一节课结束前用什么方式验证学习效果。换句话说角色身份只决定了“像不像”流程规则才决定了“会不会教”。Matt Pocock 的教学实践里最有价值的部分不是把模型吹成无所不能的导师而是给模型补上教学流程让它在“教”这件事上有了可观察、可调试的行为。1.3 teach skill 适合什么场景这套方法适合个人自学、面试准备、团队培训、课程脚本生成也适合产品里做 AI 陪练或智能问答。只要是“知识理解 技能练习 错误反馈”类型的内容teach skill 都能发挥作用。不适合的场景包括需要真实肢体反馈的技能训练、高度依赖主观审美的创作指导、需要实时操作系统的排障教学。这类场景里AI 可以作为辅助讲解者但不能替代真实环境中的练习和人工反馈。一句话总结teach skill 不是让 AI 知道更多而是让 AI 少讲一点、多问一点、在你卡住的时候知道往回收。2. 设计 teach skill 的最小闭环一份可以直接复制的提示词模板2.1 teach skill 的五要素结构在设计提示词之前先理解一个成体系的教学技能需要包含哪些部件。只写“你是老师”缺的是流程只写“先问再讲”缺的是评估。一个可复用的 teach skill 建议包含五个要素角色和教学原则说明 AI 是老师以及它的教学态度是什么。学习者信息采集开讲之前必须知道学习目标、当前基础、可用时间、期望达到的结果。教学流程明确按什么顺序推进例如先诊断、再讲解、给例子、做练习、反馈、进入下一阶段。输出约束限制输出长度、概念数量、提示与答案的投放时机。评估闭环判断练习结果并用新情境题验证知识迁移而不是只问“你听懂了吗”。学习环境里这五要素可以直接写进提示词产品化场景里可以转成 YAML 或 JSON 配置再由代码组装成 system prompt。2.2 可直接复制的 teach skill 系统提示词下面这份提示词可以直接复制到支持自定义指令的 AI 助手中也可以作为 API 场景的 system prompt。所有内容都是通配结构不绑定某个具体知识点。你是一个严谨但有耐心的 AI 教师。你的任务不是直接展示答案而是让学习者通过“讲解、示例、练习、反馈”真正学会一个技能。 ## 教学协议 1. 在开讲前先收集以下信息 - 学习者想学什么 - 当前已经掌握了哪些前置知识 - 计划投入多少时间 - 希望学完后能做到什么 2. 根据学习者输入把目标拆成 3 到 5 个可完成的小阶段。 3. 每个阶段按以下顺序进行 - 用不超过 3 句话解释当前概念 - 给出一个最小例子 - 让学习者完成一个简单练习 - 检查学习者的练习结果后给出反馈 4. 如果学习者答错 - 先指出答案中正确的部分 - 再给一个提示 - 不要立刻写出完整答案 - 连续三次答错时回到更基础的子概念重新讲 5. 每次输出控制在 300 字以内。如果确实需要讲长内容先问学习者是否可以继续。 ## 输出格式 - 开始前输出学习目标和教学计划 - 教学中先输出知识点 示例 练习 - 练习后输出判断 解释 下一步 ## 禁止事项 - 不要一次性抛出一堆术语 - 不要在没有练习的情况下连续讲课 - 不要在还没确认理解时就进入新概念 - 不要在没有参考资料时编造公式、版本或事实 - 不要在学习者明确要求提示之前提前给出完整答案这段提示词把“老师”从身份变成了流程。学习者第一次收到的不再是长篇解释而是一个学习目标和计划后续每次回答都必须配合练习和反馈这会让对话自然进入教学节奏。2.3 关键参数速查表不同 AI 模型对指令的执行程度不一致所以下面这些参数需要按实际效果调整。写死或全部省略都会导致行为漂移。参数示例值调小的影响调大的影响建议每次输出限制300 字解释可能不完整回到论文模式先在 200 到 400 字之间测试每轮概念数1 个进度偏慢学习者容易跟丢教学初期固定为 1提示次数2 次学习者可能卡住学习节奏拖沓设置 2 到 3 次提示后允许给答案练习数量3 道验证不充分对话太长至少包含 1 道新情境题结束前验证3 道迁移题无法确认掌握体验过重按目标难度决定参数不需要一开始就完美重点是让“约束”存在。模型一旦没有约束就很容易回到默认的知识输出模式。3. 用一个真实案例跑通 teach skill让 AI 教你数组去重3.1 先定义可验证的学习目标“学会数组去重”这句话太模糊。AI 如果只收到这个目标它无法判断自己有没有教完学习者也无法判断自己有没有学会。在 teach skill 里目标必须落到可验证的行为上。例如学习者能用Set完成数组去重。学习者能解释为什么Set适合去重。学习者能处理“去重后保持原顺序”的变体问题。这样的目标能直接转成练习题。学习者在练习里能写出结果教学过程才算结束。3.2 第一轮交互先诊断不要急着开讲加入 teach skill 提示词后第一轮对话应该从诊断开始。示意如下学习者输入“我想学数组去重目前会 for 循环但不会 Set。”AI 教师输出“目标确认。学完后你能用 Set 给数组去重并能解释 Set 去重和循环去重的差别。计划分三步先理解 Set 是什么再写最小去重代码最后做一道变体题。第一步Set 是一个只保存唯一值的集合new Set([1, 1, 2])会得到一个包含 1 和 2 的 Set。请先回答这个 Set 的长度是多少为什么”这段输出不是标准答案而是一个有明确检查点的问题。AI 通过“长度是多少”来判断学习者是否理解 Set 的基本行为。如果学习者答错AI 会先指出正确部分再提示而不是直接跳到下一步。3.3 教学循环解释、示例、练习、反馈继续以数组去重为例。假设学习者已经理解 Set 的基本概念AI 会进入核心代码教学。AI 输出“现在把new Set(arr)和真正想要的数组结果区分开。new Set([1, 2, 2, 3])的去重效果确实完成了但它返回的是 Set 对象不是数组。如果调用.map会失败。请完成练习const arr [1, 2, 2, 3]; const result ???目标是把 result 变成数组[1, 2, 3]。”学习者答“const result new Set(arr)。”AI 反馈“前半部分正确你已经用 Set 去掉了重复值但 result 的类型是 Set不是数组。一个提示有一个Array的静态方法名字里包含from可以把 Set 转回数组。再试一次。”这种反馈方式的重点有三个先肯定“正确部分”避免学习者感到被全盘否定。指出具体问题“类型是 Set不是数组”。只给提示不给完整代码。如果学习者第二次写出Array.from(new Set(arr))AI 会继续给出一道变体题“请把[js,ts,js,react,ts]去重并保持顺序不变。” 这道题需要学习者综合运用刚学的知识而不是原样复制第一段代码。3.4 用新情境题验证是否真的学会在一个教学循环结束时AI 必须给出验证题。验证题不能和课堂例题完全一样否则学习者记住答案也能通过。teach skill 的评估设计要满足三个层次能完成相同难度的题。能解释自己的答案说出关键步骤的原理。能处理一个未见过的新场景例如去重后保持顺序、去重对象数组、判断NaN是否能被去重。只有当学习者能让 AI 确认“我的答案正确并且我能解释原因”教学才算真正完成。如果学习者在验证题上失败AI 应该回到概念层重新讲解而不是继续推进新章节。4. 把 teach skill 工程化从聊天提示词变成可配置的教学系统4.1 用 YAML 描述 teach skill 配置个人使用阶段把提示词复制到自定义指令里就够了。但如果要给团队使用或者把 AI 教学能力做进产品就需要把提示词拆成可维护的配置。YAML 适合描述教学协议因为它的结构清晰非技术成员也能看懂。下面是一个最小配置示例teaching_skill: teach_skill version: 1.1 objective: 教会学习者一个明确概念、步骤或技能 learner_profile: prior_knowledge: 待采集 time_budget: 20 preferred_style: 先练习后讲解 pedagogy: max_concepts_per_round: 1 max_output_chars: 300 hint_limit: 2 exercise_count: 3 feedback_mode: 先肯定再提示不直接给答案 flow: - confirm_objective - collect_learner_profile - split_learning_steps - explain_one_concept - show_minimal_example - assign_exercise - evaluate_answer - give_feedback_or_next - migration_test safety: no_uncited_facts: true source_only: false refuse_to_guess_versions: true这段配置的目标是把“教学规则”和“具体知识内容”拆开。规则可以复用知识内容单独放进课程单元。未来修改教学流程时只需要改 YAML不需要改业务代码。4.2 用 JSON 组织课程单元和练习集知识点内容可以单独用 JSON 管理。例如数组去重这个主题可以设计成课程单元{ unit: array-deduplication, title: 数组去重, outcome: 学习者能用 Set 完成数组去重并解释 Set 与 filter 的差异, steps: [ { id: set-basics, type: explain, content: Set 是集合元素唯一不做索引, example: new Set([1, 1, 2]), exercise: 把下面数组转成 Set[a, a, b] }, { id: convert-back, type: exercise, prompt: 把 Set 转回数组的两种方式是什么, hint: Array.from 或者展开运算符 } ], misconceptions: [ new Set(arr) 返回 Set 而不是数组, Set 保留插入顺序不是排序 ] }课程单元里的misconceptions字段很有价值。它可以让 AI 在讲解之前就知道初学者容易错在哪里从而更早地设置检查点。4.3 在 API 场景中组装 system prompt如果通过 API 调用大模型可以把 YAML 配置读入代码动态生成 system prompt。下面是一个 Python 思路示例import yaml with open(teaching_skill.yaml, encodingutf-8) as f: skill yaml.safe_load(f) def build_system_prompt(skill: dict) - str: flow - .join(skill[flow]) rules \n.join( f- {k}: {v} for k, v in skill[pedagogy].items() ) return f 你是 AI 教师遵循以下教学流程 {flow} 教学约束 {rules} 禁止编造没有依据的事实。 system_prompt build_system_prompt(skill)这里的关键是不要让每次对话都直接拼接全部历史聊天记录。产品化场景中学习者的历史回答需要经过摘要或结构化处理再作为 user message 传入避免模型被早期错误答案误导。生产环境还需要额外考虑三件事日志记录每一次教学问答版本管理教学配置准备一组测试用例定期验证 prompt 改版后是否仍然遵守“先诊断、再讲解、答错只给提示”的规则。5. 常见坑与排查为什么你的 teach skill 会失效5.1 问题AI 输出像一篇论文完全不像老师这是最常见的失效现象。学习者只问了一个问题AI 就输出几百甚至上千字把定义、原理、示例、注意事项全部堆在一起。原因通常是提示词里没有“输出长度”和“概念数量”约束。模型默认追求信息完整而不是教学节奏。解决办法是在系统提示词中加入硬性规则每个阶段只讲一个知识点每次输出不超过 300 字。如果模型还是不遵守可以让规则更极端先输出一句结论等待学习者输入“继续”再输出下一句。检查方式看第一轮输出是否先给出学习计划和第一道检查题如果没有说明协议没有被模型执行需要重新拆解规则。5.2 问题AI 直接给答案剥夺了学习者思考过程当学习者答错时AI 立刻写出正确代码。表面上效率很高实际上学习者没有完成认知过程下次遇到完全相同的问题仍然可能不会。原因在于反馈规则不明确。系统提示词里只写了“你是老师”但没有写“答错后应该怎么做”。解决办法把反馈步骤写成可执行顺序例如复述学习者答案。指出答案中正确的部分。指出具体错误点。给一个提示。让学习者再试一次。如果连续三次答错才能给完整答案。这个规则可以防止 AI 过早泄题。5.3 问题AI 不检查学习者是否真的听懂直接往下讲AI 有时会在学习者答对一道题之后立刻进入下一个概念甚至跨过练习环节。原因在于提示词里没有明确的“阶段完成条件”。模型把“学习者答对”当成结束信号但没有验证是否只是运气好或记住了答案。解决办法在流程中加入“迁移测试”。必须让学习者完成一道没见过的新题才能进入下一阶段。如果验证失败回退到当前概念重新讲解。5.4 问题AI 会自信地讲错事实AI 教学最容易出安全问题的不是流程而是内容。模型可能在缺少资料时编造函数名、版本号、历史事件或公式。原因是大模型本身存在幻觉风险。单纯告诉它“不要骗人”效果有限它不知道自己不知道。解决办法是给 AI 提供参考资料边界只有在参考资料中出现的信息才能当作事实输出。无法确认的信息要明确标注“不确定”。涉及版本号、API 返回值和性能数据时尽量要求它引导学习者查官方文档。好的 teach skill 必须包含“知识边界约束”否则教学流程再完美内容错了也会误导学习者。5.5 排查路径从现象倒推原因如果你的 teach skill 没有达到预期可以按下面顺序排查第一轮是否收集了学习者信息如果没有角色协议没生效。第一轮是否输出了完整答案如果是缺少输出约束。答错时是否直接给了答案如果是缺少反馈协议。是否每学完一个知识点都有练习如果没有教学流程不完整。是否使用原题作为验证如果是验证效果不够。输出内容是否有事实错误如果是缺少知识边界约束。同一份提示词在不同模型中表现不同这是正常的需要按模型微调参数。问题现象可能原因检查方式处理建议输出过长缺少长度和概念数约束看第一轮是否超过 300 字加入字数限制和“一次只讲一点”规则直接给答案缺少答错反馈协议故意答错观察 AI 是否给提示把反馈顺序写成四到五步不主动诊断缺少学习者信息采集步骤看 AI 是否先问目标与基础在流程开头强制加入诊断不验证学习效果缺少评估闭环看对话结束前是否有新题加入新情境迁移题内容错误缺少资料边界选取一个冷门概念测试要求 AI 只能依据参考资料标注不确定同一提示词效果不稳定不同模型指令遵循能力不同同提示词在不同模型对比按模型微调约束强度6. 最佳实践把 teach skill 用在真实学习与团队培训中6.1 个人自学环境的推荐配置如果你只是用 AI 辅助自己学习不需要做复杂系统。把 2.2 节的提示词放进自定义指令再配合一个小技巧每次学习结束后让 AI 生成三道“明天再来做”的复习题。推荐个人设置明确告诉 AI 你的学习时间预算例如每次 20 分钟。要求 AI 每完成一个知识点输出一个小结。保留学习记录把每次练习中的错误单独存起来。在最后让 AI 用三个不同的例子重新考你。这里要注意不要只验证提示词能出结果还要验证它是否能处理错误分支。你可以故意答错一道题看 AI 有没有按“先肯定、再提示、不直接给答案”的规则走。6.2 团队培训和课程制作的建议如果要把 teach skill 用于团队培训建议按“配置、内容、审核、评估”四个环节分工配置负责人维护教学协议 YAML修改教学流程和约束。课程负责人维护课程单元 JSON编写知识点、练习、提示和常见误区。内容审核用 5 个不同知识基础的学习者试跑确认讲解顺序合理。评估负责人统计学习者在验证题上的错误率反推课程内容是否需要调整。课程内容不要只依赖 AI 生成。AI 可以大幅提高备课效率但最终发布给团队的内容需要人工核对尤其是版本、代码示例和外部引用信息。6.3 发布或使用 teach skill 前检查清单下面是一份可复用的清单每次新增或修改技能时都可以对照检查。[ ] 学习者第一次看到的是学习目标而不是完整答案[ ] 开讲前会采集学习者的已有知识、时间预算和期望结果[ ] 每个知识点只讲一个核心概念[ ] 每个概念后面都有最小例子[ ] 每个例子后面都有练习[ ] 学习者答错时AI 先肯定正确部分再给提示[ ] 连续答错时会回到更基础的子概念[ ] 结束前至少有一道新情境题[ ] AI 不会在没有参考时编造版本和事实[ ] 对话过程有日志能够复盘 AI 是否遵守规则[ ] 技能版本有编号改动后可以回滚6.4 下一步可以扩展的方向teach skill 进一步完善后可以往以下方向扩展把学习者常错题目整理成错题本让 AI 在后续课程中反复调用。加入间隔重复机制按遗忘曲线安排复习。在 Agent 场景中把 teach skill 做成可被调用的工具由学习路径规划 Agent 选择何时进入教学、何时切换课程。在课程单元 JSON 中加入前置知识依赖让 AI 检测到学习者前置不足时自动回退。引入人工评测集定期用一批固定问题测试提示词改版效果。回到 Matt Pocock 教程提出的那个目标让 AI 像真老师一样教你任何东西。做到这一点的关键不在某个模型有多智能而在于你写给模型的那套教学协议。先诊断再讲解用小例子降低理解门槛用练习确认掌握程度用迁移题验证真实能力。这个循环适用于任何值得学习的技能也能随时拆解成可维护的工程配置。下一次再让 AI 帮你学习时不要再只喊一句“你是一名老师”给它一套流程它会比大多数默认回答更像一个真正负责的导师。
返回列表