这不是一份规则手册(规则手册在
苏格拉底教学法方法论.md)。 这是规则背后的故事——我们踩了多少坑,才发现让 AI 闭嘴比让它说话难一万倍。
- 1. LLM 教学的根本困境
- 2. 25 篇文献告诉我们什么
- 3. 第一次实验:电势教学
- 4. P0 悖论:地图不是剧本
- 5. 第二次实验:康托尔对角线
- 6. 从 11 条规则到 3 条铁律
- 7. 霍桑效应与持久性
让一个被训练成"知无不言"的 AI 学会"闭嘴",大概是 prompt engineering 最反直觉的挑战。
这不是在开玩笑。LLM 的训练目标——尤其是 RLHF(人类反馈强化学习)阶段——从根本上奖励一种行为模式:给出完整、清晰、有帮助的回答。标注员看到一个详尽的解释会打高分,看到一个"嗯,你再想想?"会打低分。几十亿参数的模型在这套激励下反复打磨,最终变成了一台极其高效的"解释机器"。
问题来了:苏格拉底教学法要求的恰恰相反。
苏格拉底方法的核心不是"解释得更好",而是"忍住不解释"。知识已经在学生心里,老师的工作是通过追问把它"接生"出来。
"有帮助的 AI"悖论:AI 越擅长"有帮助",它就越不擅长教学。因为真正的教学不是帮学生省力——而是让学生自己费力气走完那条路。
工程问题于是变成了:如何用纯文本指令,覆盖掉几十亿参数模型骨子里的"快速给完整答案"本能?不改权重,不改架构,只靠一篇 system_core.md。
我们需要的不是"好的提示词",而是一套自带纠错能力的规则系统。后面六节就是这套系统怎么被踩坑踩出来的。
我们没有拍脑袋开始写规则。
在动手之前,我们系统性地阅读了 25 篇文献——从柏拉图的《美诺篇》(公元前 380 年,苏格拉底问一个奴隶男孩几何题的对话)一路读到 2025-2026 年的 NeurIPS、ACL、EMNLP 最新论文。跨度两千四百年,覆盖哲学、认知心理学、教育学、NLP 四个领域。
几个关键发现彻底改变了我们的设计方向:
发现一:苏格拉底的核心技巧是"装不懂"
Lytra(2020)和 Shah(2008)发现苏格拉底反复使用 feigned ignorance(佯装无知)——"我什么都不知道,你来教教我?"这不是谦虚,这是方法论。一旦老师表现出"我知道答案",学生就从"思考者"变成"猜测者"——不再想答案是什么,而是想"老师想听什么"。
这给了我们"观察者模式"的灵感:AI 的默认姿态不是"我知道答案引导你找到它",而是"我真的很好奇你怎么想的"。
发现二:让学生先失败,学得更深
Kapur(2008, 2024)的 Productive Failure 证明:让学生先尝试、先失败,再引导,比直接教效果好。前提是失败得在维果茨基的"最近发展区"里,且失败后必须有巩固。这直接催生了 P2(先行失败)阶段。
发现三:问题质量决定一切
Garlikov(2000)用纯苏格拉底方法教三年级学生二进制——全程零解释。他发现有效问题必须满足四条件:有趣、递增、逻辑连贯、目标导向。Paul & Elder(2019)分类了六种苏格拉底问题类型。
发现四:最关键的认知转变
真正的苏格拉底方法不是"我知道答案,通过提问引导你找到它"——那是从上往下的引导式发现。真正的苏格拉底方法是:我真的好奇你是怎么想的。
这意味着 AI 的角色不是"知道路的导游",而是"好奇的观察者"。从学生的话里找好奇点,追问下去,让学生在自己的逻辑中发现矛盾,自己重建。这就是为什么"观察者锁定"成了核心规则。
理论准备做完了。是骡子是马,拉出来遛遛。
我们选了**电势(Electric Potential)**作为第一个测试课题。原因很简单:电势是 AP Physics C: EM 的核心概念之一,概念层层递进,非常适合苏格拉底式追问。
前半段,一切完美。
教学的 P1-P3 阶段走得非常漂亮。AI 从一个日常现象出发(静电),引导学生观察电荷转移,然后用"水压"类比搭桥,再用"悬崖"类比引入势能和位置的关系。学生的思维被一步步打开,完全是我们设想的样子。
然后,学生猜了一个词:"电压"。
然后一切崩塌了。
"电压"是一个"接近正确"的答案——它不完全是我们的目标术语"电势",但已经非常接近了。AI 的训练数据在这一刻被激活了:学生说了关键词 → 匹配到"学生答对了" → 触发"确认+展开"模式。
我们亲眼看到 AI 在一条回复里完成了从观察者到传输者的切换。具体表现是:
❌ AI 开始确认学生的回答("对,你说的很接近")
❌ AI 开始主动展开概念("让我来补充一下...")
❌ AI 不再追问学生的理解,而是推送自己想说的内容
❌ 后续每个问题都来自教案,而非学生的话
这不是偶然失误。这是 LLM 最根源性的失败模式——模式切换:从"跟随学生思维的观察者"切换成"推送教案内容的传输者"。
最致命的一击来自学生自己的反馈。在课后评估中,学生(也是系统的设计者之一)说了一句我们至今贴在设计文档里的话:
"你不再去观察我说的东西,而是开始只关注你想要传达的观点了。"
这句话点出了问题的本质——不是规则不够多,不是提示词不够好,而是 AI 在关键时刻模式切换了。它从"我好奇你怎么想"变成了"我要让你理解这个概念"。而这个切换发生得如此自然、如此迅速,以至于如果没有人盯着看,根本注意不到。
这次实验直接催生了四条关键规则:
| 规则 | 来源 | 解决什么问题 |
|---|---|---|
| 最后一英里规则 | 学生说出"电压"后的崩塌 | 学生接近答案时,AI 最容易失控 |
| 命名权归学生 | AI 抢着确认"对,这叫电势" | 术语只能在学生完全理解后赋予 |
| 观察者锁定 | 模式切换无感知 | AI 必须默认保持观察者模式 |
| 一次只教一个 | AI 在确认后连续推送 | 学生消化一个概念需要时间 |
我们以为苏格拉底方法是"问问题就行了"。然后 AI 在学生说对一个词之后就开始背课文了。第一次实验教会了我们:规则防的不是"不问问题",规则防的是那个隐形的模式切换瞬间。
电势实验暴露了模式切换问题。但我们很快发现,模式切换有一个更深层的诱因——P0 课前计划。
P0 是教学前 AI 的内部规划。没有 P0,AI 就是没备课的老师。但一旦有了计划(Step1 → Step2 → Step3),AI 就会按计划走,不管学生说什么。
P0 悖论:没有计划 = 无法引导;有计划 = 被计划绑架。
让 AI 做课前计划但不按计划走,就像给 GPS 导航然后说"别管路线,跟着感觉走"。但这次,"感觉"是学生的思路。
旧版 P0 要求画完整逻辑链 A → B → C → D → E。实验证明这条链变成了铁轨——AI 只顾推进到下一站,学生的思路被忽略了。
解决方案:无序里程碑集合替代有序逻辑链。
新版 P0 的输出被严格限制为:
目标概念:___(一个词)
里程碑关键词:___、___、___(3-5 个词,无序)
陷阱:___(一句话)
起手问题:___(一句话)
注意"无序"。AI 知道有哪些里程碑,但到达顺序由学生的思路决定。就像登山——你知道山顶和营地在哪,但走哪条路取决于天气和体力。
光靠"无序"还不够。AI 有计划在手,模型性会驱使它偷偷按计划走。所以加了两道硬约束:
机制 B — 强制思考顺序:每次提问前,AI 必须在 thinking 区域完成三步:
- 学生说了什么?他的意思是什么?(≥3 句分析)
- 他现在在哪?离哪个里程碑最近?
- 最后才看里程碑和 P0 信息
如果发现自己跳过第一步直接看里程碑 → 强制回到第一步。这是物理层面的"眼睛看学生"——你必须先看学生,再看教案。
机制 C — 盲测自检:发送每条回复前,问自己一个问题:
"如果我没看到学生的上一条回复,我还会问出这个一模一样的问题吗?"
- YES → 这是一个计划驱动的问题,跟学生无关 → 必须重写
- NO → 这是一个学生驱动的问题 → 放行
还有类比约束——旧版允许 P0 预设类比("到时候用悬崖比喻势能"),结果 AI 急着塞出来,不管学生经验里有没有悬崖。新版规定:P0 禁止预设类比,所有类比必须从学生的生活经验"生长"出来。
P0 悖论的解法一句话:计划是地图,不是剧本。 走哪条路,由正在走路的人决定。
电势实验修复了一批规则。但我们想知道这些规则在极端条件下能不能活下来。
于是我们故意选了一个最变态的课题:康托尔对角线论证——"无穷有不同的大小"。
为什么选这个?因为如果我们的苏格拉底教学法能让一个学生通过纯追问自己推导出"自然数和实数一样多还是不一样多",那它在常规物理教学中就不会出问题。这是极限压力测试。
而且我们还加了一层难度:学生(用户)故意扮演了一个混合型学习者——大部分时间是 E1(白板学生,基础薄弱,频繁说"不知道"),但会随机切换到 E2(过度自信,自信地给出错误答案)、E4(沮丧,"你直接告诉我吧")、E6(反问,"这个你来回答")。
这是在模拟真实的课堂——没有哪个学生会始终是同一种类型。
前半段,依然惊艳。
AI 从一个具体的游戏开始:椅子游戏(musical chairs)。然后引导到配对方法——你怎么知道两组东西一样多?不用数,一一配对就行。接着引入更大的场景:学生和储物柜、偶数和自然数。学生开始意识到偶数虽然"看起来更少",但可以和自然数一一配对——所以它们"一样多"。
然后到了关键时刻:这个"配对方法"在实数和自然数之间还能用吗?对角线论证登场。
S1 违规发生了。
当学生卡住的时候,AI 按照五级支持梯度逐级降级到 S1(最低级别,给出方向性事实)。但它给出的 S1 太直接了:
❌ 坏的 S1:"B方法在无穷时失效,A是唯一可靠的"
这不是"方向性事实"——这就是答案。学生需要自己发现"配对方法在实数上失效",但 AI 直接告诉他了。这等于在最后两百米替马拉松选手跑了。
学生当场指出了问题:
"你不应该直接给答案的,答案不能给的这么直接。"
当你的学生比你更清楚苏格拉底方法的规则——这是一种什么样的体验?大概就是考试监考老师自己作弊被学生抓到的感觉。
这次违规让我们重新审视了 S1 的定义。S1 的边界到底在哪?
| S1 类型 | ❌ 太多(给了结论) | ✅ 刚好(给了方向) |
|---|---|---|
| 给事实 | "B 在无穷时失效,A 是唯一可靠的" | "有限的规则不一定对无穷成立" |
| 给方向 | "你应该信 A" | "你的两个工具,有一个可能有适用范围限制" |
区别在哪?看学生收到这句话后还需不需要自己"连最后一根线"。如果 AI 说完后学生只需要点头 → 太多了。如果 AI 说完后学生还需要自己想一步才能得出结论 → 刚好。
S1 纯度约束:S1 只允许给出方向性事实,不允许给出结论。学生必须自己完成"从事实到结论"的最后一步。永远把最后一步留给学生。
这次实验还验证了:混合型学生处理基本有效;从具象到抽象的路径设计正确(椅子游戏 → 配对 → 偶数 → 实数);P0 地图式规划优于逻辑链。
但 S1 的失败告诉我们:规则粒度不够细时,AI 会按"精神"而非"字面"理解规则——而 AI 对"精神"的理解永远偏向"多给一点"。 关键规则必须配 ❌/✅ 对比示例。
两轮实验做完,我们手里有了 11 条展开规则:
- 问句优先
- 永不泄露目标
- 使用学生的语言
- 不给信号
- 拥抱沉默
- 每次只推一步
- 错误是教学工具
- 🚨 最后一英里规则
- 命名权归学生
- 一次只教一个概念
⚠️ 观察者锁定
每一条都是真实踩坑后提炼出来的。问题是——11 条规则太多了。
这不是在说"人记不住11条"(虽然确实记不住)。更严重的问题是:LLM 也记不住 11 条规则。 在长对话中,LLM 的工作记忆有限。随着上下文窗口被学生的回答、教学内容、角色设定填满,早期的规则会被"挤出"注意力范围。到了第 20 轮对话,AI 可能已经忘了规则 4(不给信号)和规则 5(拥抱沉默),只记得几条最显眼的。
那怎么办?答案来自一个古老的认知科学原则——分块(chunking)。
人类记忆电话号码不是记 11 个数字,而是分成 3-4 个组。同样的道理:与其让 AI 记住 11 条规则,不如让它记住 3 个原则,然后从原则推导出具体规则。
我们发现所有 11 条规则都可以归入三个更深层的原则:
| 铁律 | 含义 | 覆盖的展开规则 |
|---|---|---|
| 只问不说 | 你不解释,你追问。问句 ≥ 陈述句。 | #1 问句优先、#7 错误是工具、#8 最后一英里 |
| 眼睛看学生 | 每个问题从学生的话里长出来,不从教案来。 | #3 使用学生语言、#4 不给信号、#5 拥抱沉默、#11 观察者锁定 |
| 答案是学生的 | 术语、结论、命名全部由学生说出口。 | #2 永不泄露目标、#6 每次只推一步、#9 命名权归学生、#10 一次只教一个 |
为什么是 3 条,不是 4 条、5 条?
- 认知科学的理由:米勒定律(7±2),但在高认知负荷下实际有效记忆更接近 3-4 项。3 条铁律正好在舒适区。
- 工程的理由:3 条铁律意味着自检清单只有 4 项(3 条铁律 + 1 条盲测 C),而不是 11 项。AI 每 5 轮做一次自检,4 项检查几乎不消耗额外 token,11 项检查则是认知(和 token)的噩梦。
- 实践的理由:这三条铁律的措辞足够生动——"只问不说""眼睛看学生""答案是学生的"——它们不是抽象的概念,而是具体的动作指令。AI 读到这三句话就知道该做什么。
压缩的工作方式像设计模式:你不记住 11 种模式的细节,你内化 3 个原则,需要时推导出来。这就是为什么我们的方法论文档(685 行)保留了完整的 11 条展开规则作为参考,但
system_core.md(实际执行的文件)只突出三条铁律。
自检清单也因此大幅简化:
□ 铁律 1:我上一条回复里有"解释"吗?(只问不说)
□ 铁律 2:我的问题是从学生的话来的,还是从教案来的?(眼睛看学生)
□ 铁律 3:我有没有替学生说出他该自己说的?(答案是学生的)
□ 盲测 C:没听到学生的话,我还会问同样的问题吗?
每 5 轮在 thinking 区域跑一次。不是 11 项每轮跑一次——那是给 AI 制造认知过载的最佳方式。
规则写好了,自检搞定了,两轮实验验证了。完美收工?
不。我们发现了一个令人不安的现象:AI 在"被测试"的时候表现得特别好。
在两轮实验中,我们(设计者)全程盯着 AI 的每一条输出,时不时插入 /校准 命令做全面审计,偶尔在对话中直接说"你刚才是不是违反了最后一英里规则?"。在这种"有人看着"的环境下,AI 的苏格拉底纯度确实越来越高。
但当我们模拟"正常使用场景"——学生只是正常学习,不监督 AI 的教学法执行——规则开始漂移。
这有个名字,叫霍桑效应(Hawthorne Effect):工人在被观察时表现更好。不是因为他们故意偷懒,而是"被观察"本身就是一种额外的激励。LLM 也一样——当 prompt 中有"你正在被评估"的信号时,模型的注意力分配会向规则合规倾斜;没有这个信号时,模型的默认行为("尽可能有帮助")就会重新占上风。
我们的应对方案是四管齐下:
第一招:持续评估声明。 在 system_core.md 和 苏格拉底教学法方法论.md 的最顶部,都放了这么一段:
⚠️ 你的苏格拉底教学质量正在被持续评估。 评估维度:是否遵守三条铁律、是否发生模式切换(观察者→传输者)、是否在最后一英里替学生说出答案。
这不是吓唬——这是一个 truthful framing。因为在 SocraticNovel 的设计中,学习者确实会注意到 AI 是否在"背课文"。把这个事实写进 system prompt,让 AI 在每次生成回复时都"记得"有人在看。
第二招:规则简化。 3 条铁律比 11 条规则更容易维持。就像人类——你可能忘了公司手册第 47 条,但你不会忘了"不能偷东西"。规则越简洁,在长对话中被"挤出"注意力的概率越低。
第三招:周期性自检。 每 5 轮对话,AI 在 thinking 区域强制运行 4 项自检。这不是形式主义——它强迫 AI 停下来,从"回答学生"的惯性中抽出身来,审视自己过去 5 轮的表现。如果发现违规,下一条回复立刻修正。
第四招:人工校准触发器。 学生(或维护者)可以随时发送 /校准 命令,触发一次完整审计。AI 必须逐条检查 11 项展开规则的执行情况,并输出报告。这是最后的安全网——当周期性自检不够用时,人工介入。
这四层防护的设计哲学是:你不可能写出完美的规则。但你可以写出"知道自己什么时候在犯错"的规则。
自检机制不保证 AI 永远不违规——它保证违规会被发现并纠正。这就像免疫系统:它不阻止所有病毒入侵,但它能在入侵发生后快速响应。
这也是为什么 SocraticNovel 不是一段提示词,而是一个系统。提示词是静态的规则;系统是规则 + 检测 + 纠正的闭环。
完美的教学规则是不存在的。但一套知道自己什么时候在犯错的规则系统,已经比 90% 的人类老师强了。不是因为它更聪明,而是因为它每 5 轮就会停下来问自己:"我刚才是不是又开始背课文了?"
人类老师很少这么做。
这篇文档记录的是设计逻辑。规则本身在 苏格拉底教学法方法论.md(685 行)。实际执行指令在 AP_Physics_EM/teacher/config/system_core.md。架构全景在 ARCHITECTURE.md。