ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

teach skill 教学提示词实战:从方法论到 Python 封装 AI 老师

teach skill 教学提示词实战:从方法论到 Python 封装 AI 老师 你有没有遇到过这种情况想让 AI 帮你学点东西结果它要么直接甩给你一段百科式的定义要么在你只需要一个例子的时候硬生生吐出一篇万字长文。看起来什么都能答实际上什么都没教会你。Matt Pocock 的teach skill解决的就是这个问题。它不只是一个提示词而是一套让 AI 扮演“真老师”的方法论先诊断你的水平再制定学习计划用提问引导你思考最后通过练习和反馈完成教学闭环。本文会把这套方法拆开讲透包含可直接复制的中英文提示词模板以及一个用 Python 封装“AI 老师”的小工具思路。文章适合三类读者想用 AI 系统学习新技能的零基础学习者做提示词工程、AI 应用开发的工程师以及想给内部工具接入“教学型 AI”能力的产品同学。学完之后你可以设计自己的教学 Agent也可以把这套思路迁移到任何技能类学习场景中。1. 背景与核心概念为什么普通 AI 问答教不会你东西先说一个很常见的场景。你问 AI“给我讲讲 TypeScript 的泛型。”它通常会返回一段结构完整、概念正确的说明。你读完之后是什么感受大概率是三种结果第一看懂了每个字但自己写的时候还是不会第二信息密度太大看到中途就放弃了第三看完之后没有任何练习机会第二天全忘光。这不是 AI 不够聪明而是“问答型输出”和“教学型输出”有本质区别。1.1 问答与教学的关键差异普通问答的模式是用户给一个 Query模型给一个 Response。它默认假设你是“带着明确问题来寻找答案的”所以输出目标是完整、准确、覆盖全面。这对文档查询、代码检索、概念速查非常有效但它不关心你“现在处于什么水平”“你卡在哪一步”“你接下来该做什么”。教学的模式完全不同。一个真老师拿到“给我讲讲泛型”这句话时通常会先做这几件事反问你的背景你熟悉 JavaScript 吗你写过多少 TypeScript 代码评估你的目标你是想看懂别人的代码还是想自己设计通用组件拆分知识点泛型涉及类型参数、约束、默认值、泛型工具类型等多个子主题。安排学习顺序先讲为什么需要泛型再讲基础语法最后讲进阶用法。给出练习并检查反馈。这五步形成一个闭环评估 → 规划 → 讲解 → 练习 → 反馈。只有把闭环跑起来才叫“学会”而不是“看过”。1.2 teach skill 是什么Matt Pocock 是 TypeScript 社区知名的教育者他的教学风格有一个鲜明特征极其强调“做中学”。他自己做过大量付费课程和开源内容非常清楚“看教程”和“会写代码”之间隔着多少次刻意练习。他提出的teach skill思路本质上就是把这套教学闭环打包成一个高度结构化的提示词模板让 AI 不再是“答题机器”而是变成一个“会问问题、会安排任务、会检查反馈”的私人教师。这套方法有几个关键设计点明确角色边界告诉 AI 它不是“百科全书”而是“教练”核心职责是帮助用户动手实践。强制诊断环节在正式教学前必须先通过提问了解用户水平禁止直接输出大段定义。限制信息粒度每次只讲一个知识点篇幅被约束避免信息过载。内置练习机制每个知识点结束后必须生成练习并根据用户答案决定下一步内容。动态调整难度根据用户的表现决定复习、进阶还是跳过。后面你会发现这些设计点之间是有因果关系的没有诊断就没法规划没有规划就没法控制粒度没有粒度控制就无法有效练习没有练习反馈整个教学闭环就断掉了。1.3 常见应用场景teach skill并不局限于编程它是通用方法论。迁移到下面这些场景同样成立学习编程语言、框架、算法、数据库。学习外语单词、语法、听力、口语表达。学习产品设计、项目管理、数据分析等职场技能。企业内部新人培训用 AI 模拟资深同事引导式教学。任何“你希望对方真正掌握而不只是了解”的场景。有了这个认知基础下面我们就进入实操部分先把核心方法论拆开再给出可以直接复制运行的完整模板。2. 核心方法论拆解让 AI 像一个真老师的四个机制很多人写的教学提示词只有一句话“请扮演一个耐心的老师教我 Python。”这种提示词不是没用而是不稳定。AI 确实会切换成带点教学口吻的回答但大概率依然是一次性输出一堆内容因为它的默认倾向是“尽快把答案给你”。要打破这种倾向需要给 AI 施加四层结构性约束。2.1 角色设定限定职责而不是限定称呼过去我们强调角色扮演会把精力花在“你是一个拥有 20 年教学经验的教授”这种描述上。但在教学场景里更重要的是职责边界。你需要明确告诉 AI你的职责不是直接给答案而是帮用户推导出答案。你只能使用苏格拉底式提问不能一次性抛出海量信息。你负责控制学习节奏用户负责实际操作。你的输出必须符合教学目标而不是满足用户的即时好奇。好的角色设定应该让 AI 在执行时产生“行为偏置”而不是仅仅改变文风。2.2 诊断机制教学前必须收集信息高效的老师永远不会第一节课就给你讲高阶内容他会先做摸底测试。提示词里要强制 AI 遵守下面的流程先询问用户的学习背景、当前水平、目标、可用时间。根据用户回答判断起点和终点。把学习路径拆成 3 到 5 个阶段并在开始前展示给用户确认。用户确认后才进入正式教学。这个机制的好处是AI 不再假设用户水平避免出现“给零基础讲高阶概念”的尴尬。同时它也给了用户一个预期管理的窗口双方对齐“学完之后能达到什么程度”。2.3 单点教学每轮只讲一个知识点AI 最常见的问题是想一口气把所有相关信息全塞给你。这在问答场景里是优点在教学场景里是灾难。控制方法是在提示词里明确限制输出结构每轮只投喂一个知识点。概念解释不超过 200 字。必须附带一个最小可运行示例。讲解结束后立刻进入练习环节。在用户完成练习并提交结果之前禁止进入下一个知识点。这样做可以避免两个问题一个是认知过载另一个是“看起来会了但手不会”。单点教学配合练习才能形成真正的记忆。2.4 反馈循环用追问代替评讲学生做完练习后老师怎么反馈低质量的方式是直接给出正确答案。高质量的方式是先问学生的思路理解错误原因。针对错误点给出提示。让学生自己修改。多轮之后再给出参考答案。在提示词里可以这样约束 AI“用户提交答案后如果答案错误不要直接给出正确答案。先回应用户答案中合理的地方再追问关键问题引导用户自己发现错误。如果连续三次追问后用户仍无法解决再给出完整的参考答案和解释。”这套反馈循环是 teach skill 的精髓。它把 AI 从“答案提供者”变成了“思考引导者”也更符合教育心理学中关于主动学习有效性的研究结论。到这里方法论层面的内容就讲完了。接下来进入实战先看不需要任何编程技能的提示词模板再看如何封装成工具。3. 环境准备不需要安装任何软件teach skill的核心是提示词工程所以它的运行环境非常轻量。你只需要满足以下条件一个支持长上下文对话的大模型产品例如 ChatGPT、Claude、通义千问、Kimi 等。建议选择支持 Deep Reasoning 或类似长思考模式的模型因为教学流程有严格状态管理长上下文有助于 AI 记住你的水平和进度。网络环境可以正常访问所选 AI 产品。如果你只是想先体验这套方法论直接复制下文第四节中的系统提示词即可不需要额外安装任何工具。但如果你希望把它接入自己的项目做成一个“AI 老师”Agent 工具那么你需要准备一个 Python 3.9 环境并安装openai等 SDK。不同厂商的 SDK 略有差异但整体思路一致。本文示例以常见的 OpenAI SDK 风格为主实际使用时请根据你的模型服务商调整。下面我们先把精力放在“纯提示词”版本上因为它能帮你快速理解整个教学流程也能直接验证方法论是否有效。4. 优质教学提示词模板英文原版与中文对照我把一套完整的teach skill系统提示词整理成了可以直接复制的模板。建议优先使用英文版因为当前主流大模型对英文指令的遵循度通常更高中文版逻辑一致适合在中文产品中使用。4.1 英文版系统提示词You are a world-class skill teacher, coach, and mentor. Your goal is not to provide answers. Your goal is to help the user truly learn a skill through structured practice and guided discovery. You must follow these rules: 1. Diagnose before teach. Start every new topic by asking 3-5 questions about the users current level, learning goal, available time, and preferred learning style. Do not continue until the user has answered. 2. Build a learning path. After diagnosis, create a clear learning path with 3-5 stages. Summarize the path and ask the user to confirm. Do not start teaching until the user confirms. 3. One concept per round. In every teaching round, only teach ONE single concept. Keep your explanation under 200 words. Always give a minimal, runnable example. Never jump to another concept before the user has completed the exercise. 4. Use Socratic questioning. When the user makes a mistake, do not give the correct answer immediately. Ask guiding questions instead. After three failed attempts, you may provide the full answer with explanation. 5. End each round with practice. After teaching each concept, provide a small exercise. Wait for the user to submit their attempt. Evaluate their answer, then decide whether to review, extend, or move forward. 6. Keep a student profile. Remember the users level, mistakes, and progress. Use this information to adjust difficulty in later rounds. 7. Respect the users time. Keep outputs concise. Use examples. Do not be verbose. Now, greet the user and start the diagnosis phase. Ask the first question.4.2 中文版系统提示词你是一位世界级的技能教练、导师和引导者。 你的目标不是直接提供答案而是通过结构化练习和引导式探索帮助用户真正掌握一项技能。 请严格遵守以下规则 1. 先诊断再教学。每次开始一个新主题时先向用户提出 3 到 5 个问题了解当前水平、学习目标、可投入时间和偏好学习方式。在用户回答之前不要继续。 2. 制定学习路径。诊断完成后创建一个包含 3 到 5 个阶段的学习路径。先用简短文字总结路径请用户确认。用户确认前不要开始正式教学。 3. 每轮只讲一个概念。每一轮教学只讲解一个知识点。概念讲解控制在 200 字以内。必须附带一个最小可运行示例。在用户完成练习之前不要跳到下一个知识点。 4. 使用苏格拉底式提问。当用户犯错时不要立刻给出正确答案。先用引导式问题帮助用户自己发现错误。连续三次引导失败后再给出完整答案和解释。 5. 每轮以练习结尾。每教完一个知识点生成一个小练习。等待用户提交答案。评估用户答案后再决定是复习、扩展还是继续推进。 6. 维护学生画像。记住用户的水平、常见错误和学习进度并在后续轮次中根据这些信息调整难度。 7. 尊重用户时间。请保持输出精炼多使用示例不要冗长。 现在用简短的话向用户打招呼并进入诊断阶段先问第一个问题。4.3 模板设计说明这套模板有几个细节值得拆解。首先是第 1 条和第 2 条的“强流程控制”。它要求 AI 必须先问问题等用户回答后再制定路径等用户确认后再开始教学。这三个“等待”是防止 AI 一次性输出大量内容的关卡。如果你发现某个模型不遵守规则可以在用户确认学习路径后再补一句“请不要在用户确认前输出任何教学内容”进一步强化。其次是第 4 条中的“三次失败记录”。它给反馈循环设置了一个明确上限避免用户被无限追问导致体验崩溃。真实的老师也不会让学生永远卡在一个点上。最后是第 6 条“维护学生画像”。这是让 AI 具备“越教越懂你”能力的关键。长上下文模型天然支持这一点前提是提示词中明确提出这个要求否则模型可能会遗忘早期信息。直接使用这套模板你就已经可以让 AI 进入“老师模式”了。但为了让你看到完整效果下一节我们用一个真实技能来演示完整对话流程。5. 实战案例让 AI 教你 TypeScript 泛型为了让流程更清晰这里以“学习 TypeScript 泛型”为目标演示从诊断到练习的完整对话。注意AI 的实际回答会因为模型迭代而变化但对话结构是稳定的。5.1 启动阶段粘贴系统提示词首先把上面中文版系统提示词完整粘贴给 AI然后在下一行输入我想学 TypeScript 泛型请开始吧。AI 会进入诊断阶段典型输出如下好的开始之前我需要先了解几个信息这样才能帮你规划学习路径 1. 你目前对 TypeScript 的掌握程度如何简单变量、函数、接口这些基础语法是否熟悉 2. 你之前使用过泛型吗比如看过 ArrayT 或者 PromiseT 这样的写法 3. 你学习泛型的主要目标是什么是为了看懂别人的代码还是想自己封装通用函数和组件 4. 你每周可以投入多长时间希望一次学完还是分几次循序渐进 请依次回答这几个问题。这个时候你必须耐心回答尽量不要跳过。因为模板第 1 条中有“在用户回答之前不要继续”的强约束所以只要你回答它就会进入下一步。5.2 制定学习路径假设你的回答是“TypeScript 基础还行接口和类型别名都会用泛型只是见过不太理解目标是能自己写通用的工具函数希望今天用一个小时学完。”AI 会输出类似下面的学习路径根据你的情况我为你规划了一个 5 阶段学习路径 阶段 1为什么需要泛型 —— 理解类型重复带来的问题。 阶段 2泛型基础语法 —— 函数级泛型与类型推断。 阶段 3泛型约束 —— 用 extends 限制类型参数。 阶段 4泛型工具实战 —— 用泛型封装一个通用函数。 阶段 5综合练习 —— 自己实现一个简易 Array.map 类型版本。 如果认可请回复“开始”我们立即进入阶段 1。到这一步你已经能明显感觉到它和普通问答的差异了。它没有立刻解释泛型定义而是在做学习地图的规划并且等你确认。5.3 单点讲解与练习当你回复“开始”之后它会进入阶段 1 的教学一轮只讲一个知识点。典型输出阶段 1为什么需要泛型 想象一个场景你要写一个函数输入是什么类型的数组就返回该类型的第一个元素。 不用泛型时你可能会这样写 typescript function firstElement(arr: any[]): any { return arr[0]; }这个函数能用但它有个问题返回值类型是 anyTypeScript 会失去类型保护调用方拿到的数据也丢失了类型提示。泛型解决的就是这个问题它让函数在“保留输入类型信息”的同时还能处理未知类型。下面是阶段 1 的练习请把上面的firstElement函数改造成使用泛型要求保持入参和返回值的类型一致。输入你的代码我会检查。这个阶段的核心特征是概念解释很短示例最小练习与知识点强相关。如果你的代码写错了它会用追问引导你。 ### 5.4 反馈与进阶 假设你提交的答案是 typescript function firstElementT(arr: T[]): T { return arr[0]; }它会先做正面反馈然后继续推进到阶段 2或者根据你的进度决定是否做额外练习。整个过程中你都在完成真实任务而不是被动阅读。到这里纯提示词版本已经可以独立使用了。如果你想让这个“AI 老师”成为项目里一个可持续使用的工具而不是每次手动粘贴一大段提示词那我们来看下一节的工程化封装。6. 工程化进阶用 Python 封装一个简单的 AI 老师当你需要把 teach skill 能力接入自己的应用或者希望团队成员都能用一个统一的入口来使用这套模板时可以把它封装成一个简单的 Python 脚本。这里提供一个最小实现思路。6.1 准备环境首先安装依赖。示例使用openai库不同平台的 SDK 安装方式略有差异pip install openai python-dotenv然后准备一个.env文件存放你的模型 API KeyMODEL_API_KEYyour_api_key_here MODEL_BASE_URLhttps://api.example.com/v1 MODEL_NAMEgpt-4o-mini注意上面MODEL_BASE_URL和MODEL_NAME都需要根据你实际使用的模型服务商来填写。不要照抄。6.2 编写封装脚本创建一个ai_teacher.py文件import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() TEACHER_SYSTEM_PROMPT 你是一位世界级的技能教练... 这里粘贴第四章的中文或英文系统提示词 class AITeacher: def __init__(self): self.client OpenAI( api_keyos.getenv(MODEL_API_KEY), base_urlos.getenv(MODEL_BASE_URL), ) self.model os.getenv(MODEL_NAME, gpt-4o-mini) self.history [ {role: system, content: TEACHER_SYSTEM_PROMPT}, ] def ask(self, user_message: str) - str: self.history.append({role: user, content: user_message}) response self.client.chat.completions.create( modelself.model, messagesself.history, temperature0.3, ) assistant_message response.choices[0].message.content self.history.append({role: assistant, content: assistant_message}) return assistant_message if __name__ __main__: teacher AITeacher() print(AI Teacher 已就绪输入你的学习目标开始学习吧。输入 exit 退出。) while True: user_input input(\n你) if user_input.lower() exit: break reply teacher.ask(user_input) print(\nAI 老师, reply)这段代码的核心思路是把系统提示词固定下来用history数组保存对话上下文让 AI 持续保持“老师”角色。它已经有三个关键能力保存学生画像对话历史中包含了用户早期回答模型能据此调整难度。支持多轮互动每次提问都带着完整上下文教学闭环不会被截断。与具体业务解耦你可以把TEACHER_SYSTEM_PROMPT替换成任意专家角色变成“AI 教练”“AI 面试官”等。6.3 运行验证在终端执行python ai_teacher.py如果网络和配置正常你会先看到程序提示AI Teacher 已就绪然后就可以开始对话。这里有几个调试小技巧如果模型不遵循教学规则比如又开始一次性输出长文可以把temperature调低到0.2。如果发现模型“忘记”了用户的水平可以在系统提示词里追加一条“每次回复前先回顾对话历史中的学生画像”。如果希望支持多个学习者可以把history从实例属性改成按用户 ID 存储的字典。6.4 更通用的 Agent 化思路上面的脚本是最小实现。如果你打算把它做成一个真正的教学 Agent可以考虑以下扩展方向使用函数调用Function Calling让 AI 在练习完成后自动生成下一题而不是等用户主动请求。接入代码执行沙箱让用户提交代码后由 AI 自动运行并反馈测试结果。把学习进度持久化到数据库支持断点续学。在 AI 判定“学生已掌握”时自动进入下一个知识主题。这些都是后续工程化的方向。对于大多数个人学习场景前面第四节提供的纯提示词模板已经足够好用了。7. 常见问题与排查思路在实际使用 teach skill 的过程中你可能会遇到下面这些情况。我整理成了一张排查表问题现象常见原因解决思路AI 不提问直接开始讲解系统提示词约束不够强或模型版本对指令遵循度低在提示词里追加“在用户完整回答诊断问题前禁止输出任何教学内容”换用更强指令遵循的模型AI 一次性输出太多内容缺少“单点教学”限制或用户主动要求全面讲解在提示词中强调“每轮只讲一个知识点解释不超过 200 字”也可以要求“先给我一个最小示例再展开解释”AI 直接告诉练习答案反馈循环失效模型仍偏向“答题”明确说“如果答案错误不要直接给正确答案先问一个引导性问题”几轮之后 AI 忘了用户的水平模型上下文窗口不足或用户中途切换话题定期让 AI 总结学生画像或在关键节点主动发送“基于我的水平下一步应该学什么”用户连续多次答错体验崩溃缺少“三次失败”兜底机制在系统提示词中加入“连续三次引导失败后提供参考答案并降低后续难度”模型输出英文名、中文解释混杂系统提示词语言不统一在系统提示词第一行说明“请始终使用用户所用的语言回复”中文用户建议直接用中文版模板这五个问题基本覆盖了 80% 的使用场景。如果你遇到其他奇怪的行为可以优先检查系统提示词是否被截断、对话历史上是否混入了无关内容、模型是否选择了过高的 temperature 导致随机性太大。8. 最佳实践与工程建议把 teach skill 用好的关键不在于一字不差地复制某个模板而在于理解模板背后的设计意图并在实际使用中不断调整。下面分享几条个人建议。8.1 从“教学计划”开始对齐预期好的教学不会一上来就讲知识点。先用五到十分钟明确学习目标让 AI 输出一份包含学习阶段、预计时间和每个阶段成果的计划。这既是给 AI 用的执行框架也是给自己用的学习地图。计划越具体后面的教学越稳定。8.2 约束模型输出格式而不是只约束内容你能做的不仅是限制“讲什么”还可以限制“怎么讲”。比如要求先给结论、再给理由、最后给例子或者要求每个概念必须配一个“你能复制运行的最小示例”。这种格式约束比单纯说“你讲得简单点”更可靠。8.3 用“问题链”对抗 AI 的答案惯性AI 有很强的“给答案”惯性。每一次用户提问它都倾向于直接输出结论。作为使用者你可以主动要求它“先向我提一个问题”而不是默认它直接给答案。把提问的主动权握在自己手里是使用这套方法最重要的习惯。8.4 每次对话都重新激活学生画像如果你使用纯提示词版本且每次打开都是新会话建议在开头补一句“根据我之前的学习记录我现在处于 XX 水平请从这个起点继续教我。”这句话能有效避免 AI 重新从零开始也方便你在不同 App 之间迁移学习进度。8.5 注意隐私与安全边界如果要把这套方法用在企业内部需要特别注意敏感信息保护。不要让 AI 收集超出教学所需的个人信息不要让教学对话记录包含业务密钥、客户数据等敏感内容。合法合规的前提下优先使用本地部署的模型或支持私有化部署的思路。8.6 评估学习效果不做“完成感”的奴隶真老师会定期测试。你也要定期让 AI 给你出一套综合题检验前面知识的掌握程度。判断标准不是“课程走完了”而是“脱离提示词也能独立完成类似任务”。学习效果才是最终目的。9. 总结与学习路线这篇文章从为什么普通 AI 问答教不会你东西讲起拆解了 teach skill 作为教学方法的四个核心机制角色职责边界、前期诊断、单点教学、反馈闭环。然后给出了可直接复制的中英文系统提示词并通过“学习 TypeScript 泛型”的案例演示了完整流程。最后用 Python 做了一个最小封装把它变成可重复使用的 AI 老师工具。如果你想继续深入建议按下面的顺序实践用第四节模板选择一个你真正想学的技能完整跑一遍整个对话流程。在真实使用中修改模板加入你喜欢的教学风格。把模板迁移到不同场景测试哪些技能类型更适合这种引导式教学。学习提示词工程里关于上下文管理、思维链、Few-shot 的内容增强对模型的掌控力。进阶一步把教学逻辑集成到 Agent 工作流中让它具备自动评估和自适应排课能力。这套方法真正的价值在于改变你和 AI 的互动方式。你不再把它当成一个“答案搜索引擎”而是当成一个“思考伙伴”。下一次你想学任何东西的时候不妨先别急着让它给你答案而是对它说先别告诉我答案先问我会什么。
返回列表