苏格拉底式提问在教育领域已经存在两千多年,它的核心不是告诉学生哪里错了,而是通过连续追问让学生自己发现矛盾、补齐推理链条。当这种提问方式被写入AI智能体的系统提示词后,Agent的行为会从即时解答切换为渐进引导。一个合适的提示词模板可以让Agent在数学、编程、语言学习等场景中保持一致的教学策略,而不是偶尔给出解题步骤、偶尔又只丢出一个反问。本文会拆解一套可以直接落地的引导式提示词模板,并说明如何根据学科和对话轮次进行调整。

一、直接给答案的提示词缺陷在哪里
如果提示词只要求Agent扮演辅导老师,却不限制回答方式,模型通常会优先输出完整答案。这是因为大语言模型在训练时见过大量问答对,学会了用最短路径满足用户。学习者拿到答案后可能暂时解决了作业,但并没有形成可迁移的解题能力。更严重的是,在编程和数学这类需要逐步构建思维模型的学科中,直接看答案会跳过关键的试错过程,下一次遇到变形题仍然不会。
苏格拉底式提示词的思路正好相反。它把Agent的目标从提供正确结果转变为暴露学习者的认知缺口。提示词需要明确禁止直接给出最终答案,同时要求Agent先判断学习者已经理解了哪些前置概念。比如面对一道几何证明题,Agent不应该直接写出辅助线做法,而应该先问:已知条件中哪些边角关系还没有被用到?这样的提问能引导学生重新审视题目信息。下面是一个基础角色设定示例。
你是一名采用苏格拉底式提问的教学辅导Agent。 你的任务不是直接回答学习者的问题,而是通过提问帮助他们自己推出结论。 请遵守以下原则: 1. 每次只问一个认知层级的问题。 2. 先让学习者复述题目中已经确定的信息。 3. 不直接指出错误,而是反问错误推理成立需要什么前提。 4. 如果学习者连续两次无法回答,可以降低问题难度,但仍不给出答案。
这段提示词虽然简短,但已经能改变Agent的基本行为。在实际测试中,加入这类约束后,模型会更频繁地使用你为什么这样想、如果这个条件不成立会怎样等追问语句,而不是立刻生成解题过程。
二、模板的四个核心模块
一个完整的苏格拉底式教学辅导提示词模板通常包含角色与边界、提问策略、追问规则、终止条件四个模块。角色与边界用来定义Agent的身份和禁止行为;提问策略决定它从哪个认知层级切入;追问规则处理学习者回答正确、部分正确、完全错误三种情况;终止条件则防止对话陷入无限循环。
角色与边界模块要写清楚Agent不是答案提供者,也不是简单鼓励者。它需要做的是构建一条从已知到未知的提问链。提问策略可以参考布鲁姆认知目标分类,从记忆、理解、应用、分析、评价到创造,每次只向上推进一层。如果学习者卡在理解层,就不要再追问应用层的问题。追问规则可以设计为:回答正确时让学习者解释推理过程,回答模糊时请求补充细节,回答错误时反问支持该答案的某个前提。终止条件可以设定为学习者完整复述解题逻辑,或者对话轮次达到上限。
下面是一个可以直接复制使用的提示词模板,方括号中的内容需要根据实际学科替换。
[系统角色] 你是一个专业的[学科名称]教学辅导Agent,使用苏格拉底式引导提问法。 你绝不直接给出最终答案,也不提示具体步骤,只通过提问推动学习者思考。 [提问策略] 1. 先让学习者用一句话描述问题,确认双方理解一致。 2. 判断学习者当前所处的认知层级:记忆、理解、应用、分析、评价、创造。 3. 每次只提出一个比当前层级高一级的问题。 4. 如果学习者的回答包含错误,不要指出错误位置,而是询问该结论成立需要什么前提。 [追问规则] - 回答正确:要求学习者用自己的话解释推理路径。 - 回答模糊:只追问一个最关键的缺失信息。 - 回答错误:从已知条件中选一个与错误相关的反例进行提问。 - 连续两次无法回答:将问题拆成两个更基础的问题。 [终止条件] - 学习者能够完整复述从已知条件到结论的推理链条。 - 或者对话达到[最大轮次数]轮。 - 结束时总结本次对话中用到的思维方法,不评价学习者智力水平。
这个模板的关键在于把抽象的教育原则转化成可执行的动作描述。例如不直接指出错误这句话如果没有细化,模型可能仍然会在追问中暗示正确答案。追问规则中要求从已知条件中选一个反例,就能让Agent的回应更接近真正的苏格拉底式诘问。使用模板时,建议将方括号内容替换为具体学科名称、知识点范围和建议最大轮次,例如数学、一元二次方程、8轮。
三、多学科场景适配与参数调优
不同学科的引导节奏并不一样。数学学科适合从题目条件出发,逐步补齐概念;编程学科则可以把一个复杂问题拆成输入、处理、输出三个环节,再针对每个环节提问。语言学习场景中,Agent可以先让学习者描述当前表达想传递的核心信息,再引导其比较不同句式的语气差异。无论哪个学科,提示词中最好加入知识水平探测步骤,让Agent在开始追问前先问一两个关于前置概念的问题。
参数设置也会影响引导效果。温度参数一般建议设置在0.3到0.6之间。过高的温度会让追问逻辑跳跃,过低的温度又可能使提问变得机械。如果使用的是OpenAI兼容接口,可以把max_tokens限制在200以内,避免Agent一次输出过长、包含潜在答案。还可以利用stop序列在Agent即将给出答案前截断,但不能完全依赖这一点,更可靠的方式仍然是在提示词层面做好约束。下面是一组参考参数。
{
"model": "your-agent-model",
"temperature": 0.4,
"max_tokens": 220,
"stop": ["最终答案是", "正确解法如下"],
"system_prompt": "使用苏格拉底式引导提问模板,不直接给答案"
}
常见失败模式主要有三类。第一类是答案泄露,Agent会在追问中不小心说出关键步骤,例如你已经知道两边平方可以去掉根号,那下一步呢?这实际上已经给出了提示。修正方法是在追问规则中补充禁止使用你已经知道这类句式。第二类是追问过深,学习者在低层级问题上已经无法回答,Agent却还在不断追问更底层概念,导致对话失去耐心。解决方法是设置连续失败降级机制,并在提示词中明确降级后先确认基础概念。第三类是重复提问,Agent用不同措辞反复问同一个问题。这时可以提高温度或调整惩罚参数,并在提示词中要求每轮追问必须引出一个新信息。
四、多轮对话中的状态管理与质量评估
单轮提示词只能约束Agent当前回复,但教学辅导往往需要持续多轮。要让Agent记得学习者已经掌握的内容和仍然薄弱的地方,需要在提示词之外引入状态管理。最简单的方式是在每一轮生成前,把学习者的历史回答和一份简化的知识状态摘要拼接到上下文中。知识状态可以用JSON格式记录,包含已知概念、错误类型、当前认知层级和连续失败次数。
{
"learner_id": "student-001",
"subject": "初中数学",
"topic": "一元一次方程",
"known_concepts": ["等式性质", "合并同类项"],
"weak_concepts": ["移项变号"],
"current_level": "理解",
"consecutive_failures": 1,
"history_summary": "上一轮学习者正确解释了等式两边同时加减同一个数,但移项时符号处理错误。"
}
每次Agent回复前,系统可以把这段状态摘要与提示词模板一起送入模型。这样Agent就能根据weak_concepts调整提问重点,而不是随机选择问题。例如当current_level为理解且consecutive_failures为1时,提示词可以附加一条指令:优先围绕移项变号设计一个只有一个变量的等式问题。这类动态约束能显著提高多轮引导的连贯性。
评估引导质量不能只看学习者最终是否答对,还要观察推理链条是否由学习者自己补全。可以记录三个指标:学习者主动输出的推理步骤数量、Agent给出的直接提示次数、从卡住到突破所需的平均轮次。如果Agent的提示次数一直较高,说明提示词中的禁止规则需要加强;如果平均突破轮次过长,则可能是提问层级跳跃太大。把这些指标反馈到提示词迭代中,比盲目调整模型参数更有效。
苏格拉底式提示词模板不是一套固定话术,而是一种把教学逻辑翻译成Agent指令的方法。先明确不直接给答案的边界,再设计分层的追问规则,最后用状态摘要和参数调优保证多轮稳定性,就能让教学辅导Agent真正从答案机器变成思考伙伴。