
过去两年,大学课堂对 AI 的态度大致经历了三个阶段。第一阶段是恐慌,老师们担心学生把作业题扔给 ChatGPT,论文、代码、实验报告一键生成,于是想尽办法封禁、查重、口试、线下闭卷。第二阶段是妥协,大家发现封不住,也查不准,更挡不住学生在宿舍、咖啡馆、手机上使用 AI。第三阶段才刚刚开始:既然 AI 已经进入学习现场,教育者真正要做的不是假装它不存在,而是重新定义“合理使用”的边界。
斯坦福 CS336 最近在作业仓库里放出的 CLAUDE.md 文件,正是这种转向的一个标志。它不是一份面向学生的普通说明,而是一份面向 AI 编程代理的说明。换句话说,老师不只是告诉学生“你不许作弊”,而是直接告诉 AI:“你在这门课里不是答案生成器,而是助教。”
这件事的象征意义,比文件本身更重要。
CS336 不是一门轻松的“调包课”。它的主题是从零理解和构建语言模型,学生要写大量 Python 和 PyTorch 代码,完成 tokenizer、模型结构、优化器、训练循环、性能分析、分布式训练、数据处理、scaling law、alignment 和强化学习相关内容。这种课程最怕的不是学生不知道答案,而是学生跳过了亲手踩坑的过程。语言模型、深度学习系统、GPU 性能优化这些东西,很多知识不是“看懂”就算学会,而是必须在张量维度错位、mask 写反、显存爆掉、loss 不收敛、分布式同步卡死之后,才会长进脑子里。
所以 CLAUDE.md 的核心原则很清楚:AI 可以解释概念,可以指向课程材料,可以帮学生读错误信息,可以建议 sanity check、toy example、assertion、profiling 方法,也可以做代码 review;但不能替学生写 Python 或伪代码,不能完成 TODO,不能编辑学生仓库,不能运行 bash 命令,不能把作业要求翻译成可运行方案,更不能实现 tokenizer、transformer block、optimizer、training loop、Triton kernel 等核心组件。
这套边界看起来严格,但并不保守。它不是把 AI 赶出课堂,而是给 AI 换了一个身份:从“代写枪手”变成“苏格拉底式助教”。学生问“我的 causal mask 为什么错了”,AI 不能直接说“你第几行写错了”,而应该追问学生已经试过什么,再提示他检查 mask 是否在 softmax 前应用、是否能广播到正确 shape、被 mask 的位置是否变成足够负的数值,然后引导他用长度为 3 的 toy sequence 打印注意力分数。这里的关键不是答案,而是诊断路径。学生最终仍然要自己走到 bug 面前。
这恰恰击中了 AI 教育的核心矛盾:AI 最擅长缩短路径,而学习常常依赖“不要太快到达终点”。
一个初学者真正需要的,并不是随时有人把完整代码贴给他。完整代码当然爽,但它会让学生形成一种虚假的流畅感:我看得懂,我会解释,我能运行,所以我掌握了。可一旦换一个题目、一换一个约束、一换一个规模,原来所有“懂了”都会坍塌。因为他没有建立底层肌肉记忆,也没有建立面对陌生错误时的调试耐心。
这就是为什么 Carson Gross 那句“AI 可以成为很好的 TA,而不是代码生成器”值得反复说。对于初学者,AI 最有价值的地方不是替你走路,而是在你陷进无意义障碍时把你拉出来。比如工具链安装失败、错误信息看不懂、GPU 环境配置混乱、文档入口找不到,这些并不是课程真正想训练的能力。如果学生被这些偶然复杂性卡死,他失去的不是作弊机会,而是继续学习的机会。好的 AI 助教应该帮助学生越过这些泥坑,把精力留给真正重要的概念和实现。
但这份指南也有明显问题。HN 上很多开发者指出,它可能太长了。对人类老师来说,细致说明很自然;但对 AI 代理来说,指令越长,越可能稀释重点,挤占上下文,甚至在多轮对话和工具调用后被后续信息冲淡。尤其在编程代理场景中,任务上下文、代码文件、错误日志、测试输出都会不断进入窗口。一个 50 行、70 行甚至更长的规则文件,未必比 10 行清晰硬规则有效。
这其实暴露了“给 AI 写规章制度”的新问题。我们过去给人写制度,习惯越详细越放心;现在给模型写制度,却必须考虑模型的注意力经济。太短,边界不清;太长,执行变差。最好的 agent policy 可能不是厚厚一本文档,而是一套分层结构:顶层只有几条硬规则,中层提供角色定义,底层再用少量例子校准行为。
比如教学场景里,真正不可妥协的硬规则可以压缩为五条:不写完整作业代码;不完成核心 TODO;先问学生做过什么;优先给检查方法而不是修复方案;当学生要求代做时转向解释、测试和调试路径。其余内容可以作为补充材料,而不是每次都塞进模型上下文。
更进一步,单靠 CLAUDE.md 也不够。AI 指令文件只能改变默认行为,不能构成完整治理。一个学生如果真想作弊,完全可以换工具、删文件、改系统提示、复制题目到另一个聊天窗口。指令文件解决的是“让善意使用更容易”,而不是“让恶意使用不可能”。教育场景里,最重要的不是幻想技术封堵一切,而是重新设计作业、过程记录和评价方式。
这也是社区讨论里一个有价值的方向:要求 AI 使用留下 history,记录学生问了什么、AI 回了什么、学生做了什么修改。这个思路比简单封禁更现实。不是为了监控学生,而是为了把 AI 使用过程纳入学习反馈。老师可以看到学生是把 AI 当拐杖,还是当教练;是不断追问“为什么”,还是只要求“给我完整代码”。教育评价不应只看最后提交物,还要看学生如何抵达那个提交物。
不过,这里也要小心。过度记录会带来隐私、负担和形式主义。学生可能为了应付审查而制造漂亮的互动记录,老师也未必有精力逐条查看。因此,更可行的方式是抽样审查、关键节点说明和反思报告。比如每次作业要求学生附上一段“我在哪里使用了 AI,它帮我解决了什么,它没有替我做什么,我最终理解了什么”。这比一刀切禁止更接近真实学习。
从更大的角度看,斯坦福这份指南真正代表的是大学课程的一次范式变化:课程材料不再只面向人,也开始面向机器助教。过去一个代码仓库里有 README,是给人看的;现在出现 AGENTS.md、CLAUDE.md,是给 AI 看的。未来每门技术课可能都会同时拥有三套材料:给学生的 syllabus,给助教的 grading rubric,给 AI 代理的 behavior policy。课堂从“人—教材—作业”的结构,变成“人—教材—AI—作业”的结构。

这对中国高校、职业院校和企业培训也很有启发。我们不能只把 AI 当成学生偷懒工具,也不能天真地把 AI 当成万能教师。真正应该做的是把 AI 变成受约束的学习基础设施。比如智能制造、工业软件、机器人、工业 AI 实训课程里,完全可以为每个项目仓库放一份教学版 AGENTS.md:允许 AI 解释 PLC 通信、OPC UA、CAD/CAE、ROS2、PyTorch、数据库和接口错误;禁止它直接生成完整项目;鼓励它提出测试用例、边界条件、故障排查清单;要求它不断追问学生的现场现象、硬件型号、日志输出和已经尝试过的步骤。
这样一来,AI 不再是“替学生完成任务”的外包工,而是“逼学生说清楚问题”的教练。它会把学生从“老师,我不会”推进到“我试了 A,预期是 B,实际出现 C,日志显示 D,我怀疑是 E”。只要学生能说到这一步,他已经完成了非常重要的工程训练。
大学课堂真正该担心的,不是学生用了 AI,而是学生用了 AI 以后仍然没有学会提问、验证、调试和解释。禁止 AI 解决不了这个问题,放任 AI 也解决不了。唯一可行的方向,是把 AI 纳入教学设计,把“怎么用 AI 学习”本身变成课程能力的一部分。
斯坦福 CS336 的 CLAUDE.md 不是最终答案。它可能太长,可能执行不稳定,也可能很容易被绕过。但它至少承认了现实:AI 已经坐在学生旁边了。问题不是要不要把它赶出教室,而是要不要给它一张助教工作守则。
未来真正有竞争力的学生,不是不用 AI 的学生,也不是让 AI 代写一切的学生,而是能把 AI 当成放大器、诊断器、陪练和审稿人的学生。他们会用 AI 问更好的问题,做更快的实验,发现更隐蔽的 bug,理解更复杂的系统。但最后那一步——把知识长到自己身上——仍然没人能代替。
教育的底线从来不是“学生是否接触工具”,而是“学生是否通过工具变得更强”。如果 AI 让学生跳过思考,它就是毒药;如果 AI 逼学生更清楚地表达、更严格地验证、更诚实地面对自己的不懂,它就是这个时代最好的助教。
斯坦福这份文件的价值就在这里:它提醒所有老师,AI 时代的教学规则不能只写给学生,也要写给机器;不能只防作弊,也要教会学生如何不被工具废掉。