AI导师该不该直接给答案?我做了个SQL实验

6人实验发现,AI导师先给提示比直接给答案更能让人在导师消失后坚持修复错误,但无法证明是导师导致了差异。
开发者 Vikrant Negi 用6人对照实验比较了两种 AI 导师策略:Arm A 强制先尝试再给提示,Arm B 直接给答案。练习一周后的无辅助测试中,Arm A 全部36题正确,Arm B 仅25题正确。但两组在「第一次就答对」上完全相同,差距全部来自答错后的修复行为。实验存在无监督、题目排序、部分人未使用帮助等多重缺陷,导致无法断言因果关系。尽管如此,研究者提前写好十项检查标准并如实报告两项失败,使这个「不宣称胜利」的项目成为 AI 教育产品设计的方法论范例。
AI导师的困境:帮忙还是帮倒忙?
当一个学习者卡住并点击「帮助」按钮时,AI导师应该给他什么?
大多数工具会直接给出答案。ChatGPT这样做,Copilot也这样做。这感觉很高效,学习者可以继续往下走。
但一项大规模研究(Bastani等,PNAS 2025)给所有正在构建这类工具的人敲响了警钟:用AI直接给答案来练习数学的学生,在后来的考试中表现反而比完全没有AI辅助的学生更差。AI一旦撤走,他们的情况变得更糟。
开发者Vikrant Negi在100x Engineers AI课程的毕业项目中,决定用实验来回答一个更具体的问题:如果导师强制你先尝试,在给答案之前先给提示,一周后当导师消失时,你能做得更好吗?

实验设计:两种「帮助」策略的对决
Negi构建了一个单页面的SQL导师应用。用户阅读一个用自然语言描述的问题,写出SQL查询,然后点击运行。页面会告诉你是否正确。当你卡住时,点击「帮助」。
帮助按钮的行为就是整个实验的核心。他构建了两个版本——在实验术语中称为「arm」:
| 当你按下帮助 | Arm A:先尝试 | Arm B:直接给答案 |
|---|---|---|
| 你还没尝试任何操作 | 拒绝:「先运行一次」 | 显示答案 |
| 尝试一次后 | 由LLM生成的提示 | 显示答案 |
| 再尝试两次后 | 显示答案 | 显示答案 |
Arm B是基线,它的行为就像今天大多数AI工具一样。除此之外,两个版本完全相同:同一个页面、同样的16道练习题、同样的检查机制。唯一的区别就是一个配置参数。
Demo Day上一位评委称这个实验为「掰手腕」,这个名字就此固定下来。
关于「arm」这个术语:在对照实验(controlled experiment)中,arm 指被试被分配到的其中一个实验条件或处理组。每个 arm 对应一种独立的干预方案,所有 arm 在其他条件上保持一致,只有被研究的那一个变量不同。
例如在临床试验中,新药组、安慰剂组和空白对照组就是三个不同的 arm。arm 与 arm 之间的差异必须严格控制在目标变量上,否则结果无法归因于该变量。
Arm A 和 Arm B 各自的名称(「先尝试」和「直接给答案」)只是研究者为了方便沟通而取的标签,真实身份是「实验组」和「对照组」。最终比较的是两个 arm 在同一个因变量(此处为后续无辅助测试成绩)上的表现差异。
测试方法:关注「导师消失后」的表现
六位参与者(主要是开发同事)被分成两组,每组三人。分组依据是之前两轮测试中表现出的SQL水平,确保两组技能相近。
测试流程分三步:
- 练习阶段:在导师辅助下完成16道关于
GROUP BY和HAVING的SQL题 - 等待5到7天
- 最终测试:12道新题,考察相同技能,没有任何帮助按钮
第三步才是关键。研究者不关心人们在有导师时表现如何,他关心的是导师消失后他们还能做什么。
在看到任何结果之前,Negi提前写下了他解读结果的标准,包括十项检查——如果这些检查失败,结果就不可信。这个做法后来被证明至关重要。
为什么等待 5–7 天? 这不是随意的安排。教育心理学中的「间隔效应」(spacing effect)表明,学习后经过一段时间的遗忘,再提取信息时记忆痕迹反而更牢固。但这里的等待还有第二层目的:让练习阶段的短期记忆消退,从而测试学习者是否真正内化了可迁移的技能,而非仅仅记住了刚才看过的答案。
如果测试与练习同天进行,Arm B 可能仅凭「刚才见过类似解法」就取得好成绩,掩盖两种策略的差异。等待一周后,任何没有真正学会的人都会暴露。这也解释了为什么研究者最关心的指标是「导师消失一周后,你还能做什么」——它更接近真实世界中独立解决问题的场景。
结果揭晓:惊人的差距与意外的真相
每组3人回答12道题,所以每组有36个答案。
| 36个答案中 | Arm A:先尝试 | Arm B:直接给答案 |
|---|---|---|
| 正确(任意尝试次数后) | 36 | 25 |
| 第一次就正确 | 17 | 17 |
| 至少打开过的题目 | 36 | 29 |
| 首次错误后修复的 | 19/19 | 8/12 |
注意第二行。在第一次尝试时,两组完全相同:各17个正确答案。
这意味着导师并没有让人更擅长凭记忆写出正确的查询。全部差距来自人们在答错之后做了什么:
- Arm A打开了每一道题。Arm B留下了7道空白。
- Arm A修复了全部19次首次错误。Arm B只修复了12次中的8次。
这和研究者的预测不同。他原本预期人们会记住更多,但他看到的是人们持续尝试并修复错误。
「首次错误后修复」这一指标为什么重要? 在编程教育中,学习者调试错误的能力通常比一次性写对更重要。错误修复行为反映的是元认知能力——意识到自己错了、定位错误原因、调整策略再尝试。
Arm A 的 19/19 全修复意味着每当他们第一次写错,都至少再次尝试并最终做对;Arm B 的 8/12 则说明近三分之一的首次错误被直接放弃。这一差异与「固定型思维 vs 成长型思维」的研究相呼应:把错误视为需要解决的信号而非失败的证据,是持续进步的关键。AI 导师如果直接给答案,实际上剥夺了学习者练习这种「错误恢复循环」的机会。
为什么不宣称胜利:严谨的科学态度
这是Negi最引以为豪的部分——尽管它看起来像是一次失败。
十项检查中有两项失败了:
两组的行为差异没有预期中那么大。 Arm A的核心理念是「先尝试再获取帮助」,但只有当Arm B的人不先尝试时,这个差异才有意义。然而他们尝试了——Arm B平均在点击帮助前做了0.83次尝试。所以Arm A并没有创造出Arm B所缺乏的习惯。
测试对Arm A来说太简单了。 Arm A得了100%。当一个组拿到满分时,你无法判断它到底领先多少。
此外还有两个计划外的因素扭曲了结果:
题目顺序问题。 12道题从最简单到最难排列。三个人提前停止作答,因此都错过了最难的题目。两组之间最大的差距——最难技能上的6个答案——实际上只是6个空白答案。
并非所有人都使用了帮助功能。 一位Arm A参与者在练习中从未按过帮助。所以他根本没有体验过「先尝试」的导师机制,但仍然拿了12/12。如果只计算实际使用了帮助功能的四个人,差距从11个答案缩小到3个。
综合来看:结果倾向于「先尝试」更好,但无法断言是「先尝试」导致了这个结果。
因此研究者能站得住脚的结论更窄:让学习者先尝试似乎改变了他们在答错后的行为,但并没有改变他们第一次就能答对的能力。
「预注册检查标准」是什么意思? 这是开放科学运动中的核心实践,指研究者在收集数据之前,公开写下他们将如何分析数据、什么结果算支持假设、什么结果算失败。Negi 提前列出的十项检查正是这一思路的简化版。
预注册能防止两类常见偏差:一是「事后归因」——看到结果后才挑选有利的解释;二是「p-hacking」——反复尝试不同的统计方法直到出现显著结果。当研究者能坦然说「两项检查失败了」,其结论的可信度反而高于那些宣称「所有指标均有改善」的报告。对产品实验来说,写下检查标准同样有用:它迫使你区分「我想看到的结果」和「数据真正支持的结果」。
监督缺失:一个被忽略的关键变量
在Demo Day上,一位评委问了一个关键问题:「练习和测试是现场进行的吗?你在旁边看着吗?」
答案是否定的。Negi给每个人发了一个链接,他们自行安排时间完成。
这个细节改变了结果的解读方式。当人们在无人监督的环境下工作时,你无法知道他们还用了什么工具——一个ChatGPT标签页只需Cmd+Tab。
而且它对两组的影响并不对等:
- Arm B的人没有理由离开页面,答案就在一次点击之外。
- Arm A的人在尝试之前是被阻断的。那正是你会把问题粘贴到ChatGPT的时刻。
如果Arm A的人这样做了,他们就跳过了导师设计来创造的「挣扎」过程。这会让Arm A导师的效果比应有的更弱,缩小两组之间的差距。
最终测试同样是无监督的。如果人们在测试中也查了资料,两组的分数都会更高,差距再次缩小。
所以无监督的环境可能让结果看起来比实际更弱,而非更强。这其实是个好故事——只是没有出现在幻灯片上。
教训: 如果关于测试执行方式的某个细节会改变别人对结果的解读,就把它放到幻灯片上。如果省略了,人们会默认标准做法,而你的做法可能并非如此。
如果重来一次:五项改进
Negi列出了他下次会做的五件事:
- 为每个人打乱题目顺序。 这样提前停止不会总是撞上最难的题。
- 使用更难的测试题, 让任何一组都无法拿满分。
- 把「第一次就正确」作为主要指标。 这是他新预测中不会变化的数字,因此也是最能证明他错误的数字。
- 追踪谁真正使用了功能。 从未按过帮助的人从未体验过导师。
- 现场进行测试, 或者至少记录人们何时切换标签页或粘贴内容。
核心启示:AI教育产品设计的三个原则
这个实验虽然样本量小(仅6人),但它的方法论价值远超统计意义:
大差距可能来自你没想到的地方。 36比25看起来像是记忆力更好,但第一行数据揭示了真相——差距来自错误修复行为,而非知识记忆。
在看到结果之前写好检查标准。 这是研究者能坦然说「两项检查失败了」而不是事后找借口解释的唯一原因。
改变预测不是失败。 他的预测从「人们记住更多」变成了「人们恢复得更好」。这个变化本身就是项目最有用的产出。
对于正在构建AI教育工具或任何需要决定「AI应该帮多少忙」的产品的人来说,这个实验传递了一个明确信号:直接给答案或许让用户当下更满意,但可能培养出依赖而非能力。而衡量一个AI导师是否真正有效,应该看它离开之后学习者还能做什么。
据Negi透露,系列下一篇将介绍他如何构建这个导师系统——让LLM从不决定是否提供帮助。决策由普通代码完成,LLM只负责生成提示文本。正是这一规则让实验变得可检查。
你可以亲自体验两个版本:
相关推荐

Gemini 4 Argon API实战:思考等级、后台模式一次讲透
Free Code Camp 出品的 Gemini 4 Argon API 速成教程:从申请密钥、发送首次请求,到用思考等级控制推理成本、用 previous_interaction_id 实现多轮对话,再到后台模式一句话生成打砖块游戏,附 Google 工程师对模型能力的解读。

强化学习通关《抡大锤》:63%进度背后的分布式训练策略
开发者用深度强化学习挑战《抡大锤》,智能体从底部攀爬至63%进度,卡在铁砧部分。项目开源,采用分治训练和CPU训练策略,寻求社区协作突破瓶颈。

AAAI 2027二审放榜在即:社区热议评审公平与投稿生态
AAAI 2027第二阶段评审结果即将公布,Reddit社区热议评审一致性与流程透明度。本文梳理放榜前的社区情绪、顶会评审的结构性矛盾,以及作者应对二审结果的务实策略。