Cases · Haiwen
Case 01·AI × Minecraft·Living document

Minecraft
教青少年
驾驭AI

一个为初中生设计的三个月项目制课程。学生不写一行代码,但要做出一个能玩的竞技场、一个完整的游戏模式、一个会自己行动的AI队友,最后发布一个真正的Minecraft mod到网上。 这一页是这门课的设计、现场记录和未解之问——它会随着教学过程持续更新。

04
个项目
~10
个 session
~3
教学周期
00
行手写代码
▍ 课程设计

不是一门讲AI是什么的课。
这是一门让AI变成你超能力的课。

学生玩Minecraft Java版、有基础编程经验、把AI当成搜索引擎或聊天机器人来用。这门课要把那个理解换掉——AI是可以被指挥的,而你要学会怎么指挥它。

Level 1 / Prompt

说清楚

怎么把脑子里的想法描述成AI能理解、能给出好结果的话。模糊的问法和具体的问法,结果天差地别。

在 项目一·竞技场 自然学会
Level 2 / Decomposition

拆解好

复杂任务一次说太多,AI会搞混。拆成小步骤,一次一步,每步验证——这是agentic coding的核心动作。

在 项目二·僵尸围城 前半段冒出来
Level 3 / Harness

搭好环境

当prompt不够用时,给AI搭工作环境:记忆 + 规则 + 自我检查。这就是行业里说的harness——不是因为AI笨,而是复杂任务需要支撑。

在 项目二·僵尸围城 后半段被需要
核心教学原则
先体验后命名

prompt engineering、decomposition、harness——这些概念不被提前讲。让学生在项目里先撞上问题,感受到痛点,然后我们再给这个东西一个名字。先有体感,名字才不会变成空话。

附加维度 · 在 P3 里浮现
顺带教一点科学方法

驾驭AI是这门课的明面目标。但我在Project 3里发现一个更隐的可能性——通过探索Mindcraft这种半结构化的开源项目,自然演练「发现问题 → 提出猜想 → 动手验证 → 解决」这一整套循环。 Bot会卡在墙里、profile改了不生效、两个bot不会真协作——这些都是真问题,不是练习题。 当学生第一次说"我猜是因为它没读到我加的指令"——那一刻他在做的事,跟科学家在做的事,结构是一样的。

▍ 课程地图

四个项目,越来越深

每个项目的产出都是真实可玩的东西,不是练习题。学生和AI的关系也在每个项目里换:从顾问,到下属,到队友,到合作开发者。

ID
项目
核心动作 · AI是什么角色
Sessions
状态
P1
🏟️魔法竞技场
用AI生成的命令搭一个能玩的PVP竞技场。
AI是顾问
3 sessions
已完成
P2
🧟僵尸围城
用Cursor让AI写完整的Minecraft数据包。学会给AI搭工作环境。
AI是程序员,学生是项目经理
压缩 · 1-2 sessions
已完成
P3
🤖我的AI队友
让AI bot直接进入MC世界。调教性格、做多bot协作。
AI是队友 · 顺带练科学方法
3 sessions
进行中
P4
⚒️我的MC Mod
做一个真正的Minecraft mod并发布到网上。
AI是合作开发者
3 sessions
待启动
▍ 概念在哪里冒出来
P1 · 竞技场
AI在生成,不是搜索
AI写出网上不存在的MC内容;你用MC知识考住了它。Prompt = 说清楚你要什么。
P2 · 僵尸围城
Agentic coding · RCON pipeline
你没写一行代码,但做出了能跑的东西。AI能直接发命令进游戏。这个项目做得偏快,主要收获是pipeline。
P3 · AI队友
Agent · Profile = Harness · 科学方法
同一AI + 不同profile = 不同行为。Bot会卡在墙里——这就是发现问题、提出猜想、动手修的入口。
▍ 现场实录

真的发生了什么——断点、惊喜、坑

这门课设计上很整齐。但教学现场永远比设计书复杂。下面是按时间顺序的笔记:什么按预期发生了、什么没有、什么是设计书没考虑到的。

项目一 · 已完结 魔法竞技场

项目一:把PVP竞技场搭起来——好的部分和卡住的部分

好的部分:学生在没人提"prompt engineering"这个词的情况下,自己撞上了它。第一次写"帮我做计分系统",AI给了一个泛泛的方案;改成"帮我做命令方块计分系统,杀死对方加1分,记分板显示在屏幕右边,到5分显示胜利信息",立刻好了一档。我没解释,他自己说:"哦怎么问决定了答案的质量。"

第一次让他debug:一开始的描述方式是"它不行""有bug"。我让他换成"我期望X但实际是Y,操作步骤是Z"——再扔给AI,立刻能修。这是项目一最值得记录的一个能力转化点。

Lesson Debug就是描述差异——"期望X / 实际Y / 怎么复现"是个万能模板。学生学到的不是Minecraft,是怎么把模糊不满意翻译成可操作信号
遇到的坑 · 项目一最大痛点
手动debug循环——AI不能自我闭环

整个项目一的工作流是:跟AI描述 → AI给命令 → 学生手动复制进MC → 进游戏测 → 出错 → 把报错手动转述给AI → 改 → 又复制回去……每个循环少则2分钟多则10分钟,注意力和耐心是被这个循环吃掉的,不是被MC吃掉的。

到项目一后半段,学生已经开始烦躁地说"我又得复制一遍"。这是项目设计里没充分预料到的成本。

解决方案在项目二的pipeline里:让AI能直接发命令进游戏,无需人工搬运。
"我不是不想测,是测一遍要复制四次。" — 学生,项目一后期
项目二 · 已完结 僵尸围城

项目二:做得偏快,但 RCON pipeline 立住了

坦白说,项目二做得比设计书里赶——3-session的plan被压成了1-2次。学生对"做一个新的游戏模式"的兴趣没我预想得高,所以我没硬撑足时长。但这个项目的核心价值不在游戏模式本身,在于它把项目一那个手动循环换掉了——这个目标达到了。

新pipeline的三件套:Cursor(AI辅助IDE)+ 本地MC Java dedicated server(脱离单机)+ RCON / mcrcon(AI能直接发命令进游戏、读回执)。 关键发现:原版MC dedicated server 原生支持RCON——只要在 server.properties 里改两行配置即可,不需要Fabric mod loader。这一发现把整个pipeline的复杂度砍掉一半,也是这个项目能压缩到很短的原因。

现场惊喜 · 留作反复使用的素材
Agent 自己识别并修了 JDK 版本问题

Pipeline搭建过程中,AI agent最初装了JDK 21,跑MC server失败。它自己读了报错自己判断需要切到JDK 25自己重装并重试成功——整个过程没有人介入。

这一刻比任何PPT解释"什么是autonomous debugging"都直观。已留作之后讲解的核心案例——它会反复在P3、P4里被引回来。

事后反省 如果重做P2,我会更尊重学生当下的兴趣信号——他对"自己设计游戏模式"没那么大热情时,应该更快切到下一个项目,而不是按plan走。设计书是骨架,不是时刻表。
项目三 · 进行中 我的AI队友 · Mindcraft 探索周

项目三:AI 走进游戏的那一刻——也是科学方法浮现的那一刻

P3启动方式跟P1、P2很不一样:我先布置了一个Mindcraft 探索周——一份 A-E 五部分、3-5小时的自主任务文档,让弟弟用Cursor自己读bot的codebase、改它、跟它玩、做实验。我退后一步,不在场。

这个赌注是:给一个真实的开源项目(不是练习题)+ 一个能解释代码的AI助手(Cursor)+ 几个具体的小问题,看学生能走到哪

作业回收 · 弟弟的实测 一周之内他确实走完了核心:自己用Cursor逛了codebase(找到了 main.js 是入口、profiles/ 是bot性格、 actions.js 是命令)、做了"押韵bot"的人格实验、自己加了一条 !goToBed 命令让bot天黑能自动睡觉、跑了基础任务。这跟一周前的他比,是有跨度的。
"达到了预期,说话确实押韵了。不会破功——我让他介绍自己他依旧押韵,但是如果我给他不押韵的指令他就不会押韵了。" — 弟弟,关于他设计的押韵bot

这条观察其实非常细:他自己注意到了人格设定有作用域——只在自我表达时生效,被指令覆盖时不生效。这是个很真的现象,也是LLM行为里一个有意思的点。我没教过他这个,他自己看出来了。

现场debug · 上周一起干的事
Bot 总是卡在墙里——发现问题 · 提出猜想 · 修

探索周里他注意到了一个反复出现的故障:bot执行 "帮我挖到铁矿" 时,会传送到铁矿位置但卡死在墙里走不动。一周后我们一起在Cursor里debug——他描述现象,Cursor帮他定位逻辑,我们顺着代码走了一遍寻路-挖路那一段,最后找到问题并修了。

这一段对我来说是这门课目前为止最值的一次教学时刻。原因不在bug本身——而在他经历的那个完整循环:

观察现象形成可检验的猜想用工具(Cursor)验证动手改看结果

已修复 · 被记入教学日志,作为P3"科学方法在AI项目里自然浮现"的核心样本。
设计层的新发现 这门课原本只是"教怎么驾驭AI"。但P3里浮现了一个隐藏副产品——它顺便在教科学方法。Mindcraft是个有bug、行为不完美的真实开源项目,正因为它"不完美",它给了学生反复练 发现问题 → 提出猜想 → 验证 → 解决 的机会。这是练习题给不了的。我之后会更主动地往这个方向倾斜P3的设计。

还在路上的事:profile setups我们一起探索了几个(生存模式 vs 上帝模式 vs 助手模式的行为差异);DeepSeek多模型对比还没系统做;两个bot协作还没实测;C3那个 thinking 参数小坑还没碰。这些都是接下来session的素材。

横向观察 · 持续 关于学生本人

意外的提前到达:他自己在做"拆解"和"提问"

按设计书,decomposition应该在P2中段冒出来。但P1末期他已经在自然拆任务——"我先做计分,搞定再做倒计时"。科学方法本来根本不在课程图谱里,但P3里他自己就开始用了。

教学者的调整 学生提前到的,就在那个当下命名、当下承认那是真东西。我越来越倾向于把"课程结构"当骨架而不是时刻表——他比我设计的速度快的时候,让他过去;慢的时候,停下来等。这种flexibility本身就是这门课的形式选择。
▍ 工具包

每个项目用什么、为什么

每个工具都是某个具体痛点的回应——不是为了多用工具而用工具。下面也标了我换过的几样,方便后面想复刻这门课的人参考。

WorkBuddy (GLM5.1) P1 · 学生当前
学生侧的聊天式AI入口——为P1的"AI当顾问"角色足够。围绕这个我做了 context-settingbug描述模板handoff document 三份小cheat sheet给学生。
Cursor IDE P2 · 教学者侧
P2的agentic coding主战场。AI能直接读写本地文件、跑命令、看回执。
原计划用 VS Code + Cline,改成 Cursor —— 集成度更高,迭代更快
MC Java Dedicated Server P2 · 本地
脱离单机客户端,AI才能从"外面"控制游戏。在 D:\mc-server\ 下放 server.jar 直接跑。
RCON + mcrcon P2 · 控制层
RCON开在 server.propertiespip install mcrcon,AI就能通过脚本直接往MC里发命令、读回执,关掉了P1那个手动复制循环。
CLAUDE.md / .cursorrules P2后期 · Harness
AI agent的工作手册——项目背景、文件路径规范、命名规范、自我检查清单。学生第一次"搭harness"的产物。
JDK 25 P2 · 运行时
MC新版本server需要的Java运行时。
原本装 JDK 21,agent自己识别并切换到 25 —— 见现场实录
Mindcraft P3 · 在用
开源的LLM驱动MC bot项目(github.com/mindcraft-bots/mindcraft)。让AI以玩家身份进游戏。学生通过Cursor读、改、调它的代码——profile = harness的另一种形态。
为兼容稳定性,MC降到 1.21.11(mindcraft底层mineflayer未支持26.1)
DeepSeek API P3 · Bot大脑
P3里bot调用频繁(每几秒一次),DeepSeek成本低、国内访问稳定。预算估计:30元以内跑完整个P3。已注册,chat / reasoner / v4-flash / v4-pro 模型都在试。
▍ 已产出材料

教这门课需要的东西,已经有的。

下面这些是教学过程中沉淀下来的、可以直接复用的材料。每一份都对应一个具体的教学场景——不是模板填空,是用过的、改过几轮的版本。

SYL
学生版课程大纲("你"视角)
直接给学生看的版本,用第二人称写。讲什么不重要,讲学生会撞上什么才重要。覆盖4个项目12个session。
已完成
PREP
教学者备课指南
每个session对应的课前清单 + 现场contingency plan——什么时候介入、什么时候放手、怎么把现场出错变成教学素材。
已完成
AI
学生AI使用速查表
三张:context-setting / bug描述 / handoff document。学生卡住时直接对照,几次之后自然内化。围绕WorkBuddy(GLM5.1)写。
已完成
P2
项目二课前准备指南
三件东西要装:Cursor / MC Server / Python。课上一起做:开服 / 改 server.properties / 装 mcrcon / 写 CLAUDE.md。已经发给学生家长。
已完成
P3
项目三 · Mindcraft探索周(任务 + 弟弟答案)
5部分(A-E)的自主探索作业,3-5小时分几次做:跟bot玩 / 用Cursor读懂codebase / 改性格 / 跑任务 / 自由探索。结尾附给Haiwen的codebase速览。
已发出并收回——弟弟的答案密度比预期高,是P3"科学方法浮现"的实物证据。
已完成
P4
项目四 · 6个候选mod方向 pitch deck
两个大方向(A: 从0造AI-flavored mod / B: 改进Mindcraft),各3个具体候选。带"玩起来什么样"、"技术拼图"、"呼应了你学过的什么"、推荐选项。
已完成
▍ 待解之问

教学现场抛出的真问题

这些是设计书没回答、需要在下次session当场处理的问题。记下来,避免被遗忘。

Q · 教学者 · P3 中浮现
"科学方法"这个隐藏副线,要不要明面化?
目前是让它"自然浮现"。但如果P4或后面的case里我也能让学生反复经历"发现-猜想-验证",是不是干脆把它作为这门课的第二条主线对外呈现?讨论中。
Q · 教学者 · P2 反思
学生当下兴趣和设计书冲突时,谁让步?
P2压缩这件事让我心里有点不踏实——是不是他还没真正吃透 harness 的概念就过去了?也可能我多虑了,因为P3里 profile = harness 又会回来。看下次教学时他对harness的反应再判断。
Q · 教学者 · 体验层
""这个字到底要不要避开?
目前一直用"session"避免"课"——是为了减少学生的时间压力感。但语言上略别扭,长期效果还要观察。
▍ 下一步 & 这只是第一个

这个case,是个系列的开头

每个case是一个~3个月、可以拿来教一个孩子的完整项目。我会持续做更多。Minecraft是第一个,因为它是"造东西"最直观的领域之一——但同样的方法,可以套到很多别的载体上。

// case 系列规划 · early thinking

从Minecraft开始,但不止于Minecraft。

每个case都用同一套底层方法:项目制 / 学生不写代码 / 在真实痛点里自然带出概念 / 教结束时学生有一个真实的、可向外展示的产出

Case 02和03还在草稿阶段,先列下来,之后单独开页:

Case 01
AI × Minecraft
↑ 就是这一页。
Case 02 · 草稿
AI × 个人网站
学生跟AI做一个有真实功能的个人主页/博客并发布。Harness这套照搬到web项目里。
Case 03 · 草稿
AI × 数据分析
从一个真实数据集(学生自己感兴趣的)开始,让AI辅助分析、可视化、写结论。落到一篇真的能被人读的报告。
▍ Case 01 当前在路上的事
P3
回收探索周作业,过一遍弟弟的笔记
他写下的答案密度比预期高——挑3-4个点跟他当面回。重点:押韵bot没破功的观察、 !goToBed 自加命令的逻辑。
下次session
临门
P3
DeepSeek 多模型对比 (C3)
在同一个有难度任务上跑 chat / reasoner / v4-flash / v4-pro,对比响应质量和速度。 thinking 参数那个小坑也碰一下。
下次session
临门
P3
两个 bot 真协作 (C4)
两个不同profile的bot,同一个任务(采木 + 建房)。看它们是真协作还是各干各的——讲"AI能力边界"的入口。
下次session
临门
P4
让弟弟选 mod 方向
把 P4 pitch deck 拿给他看 —— 6个候选mod。让他选一个真的想做的,下个月开工。
P3 收尾时
等 P3 完结