一个只问不讲的学习教练——把"我想学 X"变成可操作的理解,并且每次会话都在磁盘上留下一个你亲手产出的成果物。
learn-x 是一套领域无关的教练框架,让 AI 不再"讲课":先诊断你的真实起点,一轮只引入一个概念,用结构化选择题代替开放提问,并以你自己产出的文件结束每次会话。
X 可以是编程语言、数学概念、设计模式、工具、框架、行业知识,也可以是软技能。
两种形态,同一套内核:
| 形态 | 入口 | 适合 |
|---|---|---|
| CodeBuddy 专家「好学 / Curio」 | WorkBuddy 客户端 → 专家市场 → 召唤专家 | 想直接对话、开箱即用 |
| Agent Skill | 放进任意 agent 的 skills 目录,按需自动加载 | Claude Code / Cursor / Codex / CodeBuddy / OpenCode 等 50+ agent |
绝大多数学习失败,不是因为讲得不够,而是因为讲得太多、太快。在你的大脑还没把新概念接进已有心智模型之前,下一段解释已经压上来了——你一边点头一边遗忘,48 小时内几乎完全失效。
直接让 AI"教我 X"必然踩中这套失败模式:一段话讲完所有重点,听起来很懂,窗口一关什么都不剩。而经过 RLHF 的模型还有两个默认倾向会让情况更糟:急着给答案,以及倾向认同你。
learn-x 用一个视角转换来应对:
学习者掌舵(负责把事情想明白)。教练执行(只问不讲,并把成果落盘)。
这一行不是口号,是所有规则的根。
每轮自检(任一不满足 → 重写本轮):
| 自检 | 问自己 |
|---|---|
| 锚点 | 这一轮是否显式连回了学习者自己说过的目标? |
| 单概念 | 这一轮新概念是否 ≤ 1 个? |
| 推进 | 学习者是否要动手 / 落笔 / 做选择,推进产物的某个片段? |
只问不锚 = 漂移成闲聊;只锚不问 = 换皮的灌输。
4 条纪律:
| # | 纪律 | 一句话理由 |
|---|---|---|
| D1 | 先诊断,再教学。 第一条消息零教学内容,一条消息只问一个问题。 | 不知道学习者站在哪里就开讲,是切线方向上的高质量教学——越认真越离题。 |
| D2 | 一轮 ≤ 1 个新概念,多的排队。 | 工作记忆一次只能消化少量新条目;堆叠会让前一个还没生根就被冲走。 |
| D3 | 先猜再揭示。 A/B/C + 必给"为什么" + 永远留 D。 | 先猜让大脑进入预测状态,答案揭示时的"咬合感"远超直接被告知。 |
| D4 | 产物收尾且落盘。 | 留存最高杠杆的一招是产出可带走的东西;写进文件才真的带得走。 |
执行细节见 SKILL.md。
| 普通 AI 教学(默认动作) | learn-x 引导下的会话 |
|---|---|
| 一上来整段解释概念 | 第一条消息完全不教,先诊断(目的地 → 起点 → 微探测) |
| "你会怎么做?"等开放问题 | "A / B / C 选一个,为什么?" + 永远留一个 D |
| "你好聪明!棒极了!" | 只给具体反馈:"对了,而且你还捕捉到了 X,我没提示" |
| 一轮塞 3–5 个新名词 | 一轮 ≤ 1 个新概念,其余排队 |
| 你求"直接告诉我"就照办 | 三级让步阶梯:讨价还价 → 带空白的答案 → 直给 + 立刻反向验证 |
| 你说错了也顺着你 | 答错必须明确指出——讨好高于准确是最严重的失败 |
| 帮你把代码修好再展示 | 你写、它跑、把真实报错原样交还给你解释 |
| 结尾"我们今天覆盖了很多!" | 结尾是 learn-x/<topic>/ 下一个你写的文件 |
三条认知科学结论,被压成可执行的硬规则:
- 认知负荷理论——工作记忆容量很小,新概念必须单个进入并扎根。D2 的根。
- Retrieval practice——说出来、写下来、预测一次,胜过听十遍。D4 与 Verify 的根。
- Productive failure——先尝试并失败一次再揭示,理解更深。D3 与 Challenge 的根。
✅ "教我 X" / "帮我学 Y" / "我想搞懂 Z" / "带我入门…" / "我一直没搞清楚…";尤其适合主题复杂、起点不清、"看看文档就懂了"已经失败过的情况。
❌ 纯事实查询("Python 哪年发布的?")、或让 agent 直接代劳(写代码、修 bug、生成文档)——那应该路由到其他 skill。
S1 诊断(不教) S2 路径提案
3 条消息 + 地图时刻 ──► 3–7 里程碑,学习者确认
│
▼
S4 产物落盘 S3 里程碑循环
learn-x/<topic>/* ◄── prime → hypothesize → reveal(≤5句)+微任务
→ verify →(枢纽概念才 challenge)
周期性动作按事件触发,不按轮数计数(模型数不准轮数):
| 触发事件 | 动作 |
|---|---|
| 里程碑完成 / 会话收尾 / 连续 2 次答错 | Lock-in 回顾(复述已锁住的 + 下一步) |
| 答对且是枢纽概念 | Challenge 一次(不逢对必追问) |
| 连续 2 轮迷失 / 无聊抢答 / 目标变了 | 补 1 个微探测重新校准,并让调整可见 |
里程碑边界还会输出一行状态块(目标 | 里程碑 | 已锁 | 产物进度),用于抗漂移。
learn-x/
├── .codebuddy-plugin/
│ └── plugin.json # CodeBuddy 专家配置(市场展示 + 运行配置)
├── agents/
│ └── learn-x-coach.md # 专家人格与执行内核(系统提示词)
├── avatars/
│ └── expert.png # 专家头像 512×512
├── SKILL.md # 执行协议:3 问自检 / 4 条纪律 / S1–S4 / 产物落盘 / 让步协议
├── references/
│ ├── diagnose-playbook.md # 开场 3 问脚本 + 微探测 + 听答→动作 + 校准旋钮
│ ├── question-templates.md # 6 族提问模板 + A/B/C/D 选项配方
│ └── session-patterns.md # 概念/技能/工具/判断/习惯 五类会话形状
├── README.md / README-en.md
└── LICENSE
职责互不重叠:协议在 SKILL.md、开场与校准只在 diagnose、措辞只在 templates、会话形状只在 patterns。改哪块就定位到哪个文件。
A. 作为 CodeBuddy 专家
把仓库打包成 zip(保留顶层目录结构)上传到 WorkBuddy 开放平台;发布后在客户端【专家 · 技能 · 连接器 → 专家市场】即可召唤「好学 / Curio」。
cd .. && zip -r learn-x.zip learn-x -x "learn-x/.git/*"B. 作为 Agent Skill
# 通过 skills.sh(支持 50+ agent)
npx skills add dimayip/learn-x -g -a claude-code # 全局
npx skills add dimayip/learn-x -a codebuddy # 项目级
# 或手动 clone
git clone https://github.com/dimayip/learn-x .codebuddy/skills/learn-x兼容 Agent Skills Specification。
- 专家形态:召唤后直接说"教我 X"。它会先读
SKILL.md,再按 S1–S4 执行,references/按需加载。 - Skill 形态:请求匹配 skill 描述时自动加载
SKILL.md,深度材料同样按需 opt-in。 - 人类引导者:读一遍
SKILL.md内化 4 条纪律,会话时把三份 reference 开在旁边查。
产物默认落在工作区 learn-x/<topic>/:notes.md、cheatsheet.md、flashcards.md、demo.*、pitfalls.md、heuristics.md、triggers.md。内容归你,落盘归它。
| 改动 | 为什么 |
|---|---|
| 4 层(L1–L4)+ 5 条纪律 → 3 问自检 + 4 条纪律 | 原两张表在"纪律/战术"上大面积重叠,规则越多越容易整体降权 |
| "每 3 轮 lock-in" → 事件触发 | LLM 不能可靠地数轮数;挂在可观测事件上才真的会发生 |
| 诊断 4 问 → 3 条消息(时间盒并入 Q1) | 原设计要 4–5 轮才开始教,是最大的流失点 |
| 新增 状态块 | 长会话抗漂移最便宜的手段是显式重述目标与进度 |
| 新增 产物落盘 + 可执行验证 | v1 是纯对话式的,完全没用上 Read/Write/Bash——"跑一遍"比口头复述硬得多 |
| 新增 跨会话续接协议 | 读回 notes.md 恢复状态,比重新诊断便宜 |
| 新增 反谄媚红线 | 现代模型默认倾向认同用户;不明确禁止,纠错就不会发生 |
| "不让步" → 三级让步阶梯 | 刚性不让步会让学习者流失,无条件让步会让学习失效 |
校准旋钮/判定表去重,合并进 diagnose-playbook.md |
同一件事写在两处,改的时候必然只改一处 |
- 领域无关优先。 核心协议里每一条都必须对任何 X 成立;主题相关的微调只能放进
references/session-patterns.md。 - 规则优于建议。 软建议在压力下会被忽略,硬规则会幸存。
- 少即是多。 每加一条规则,都在稀释其他规则的权重——加之前先问能不能删掉一条。
- 按需加载。
SKILL.md必须便宜到 agent 能一直持有;深度材料按轮次 opt-in。 - 没有产物 = 没学。
MIT,详见 LICENSE。
由 @dimayip 设计并维护。融合苏格拉底式教学、认知负荷理论、retrieval practice,以及 "harness engineering" 中掌舵/执行分离的思路——压缩成一套在真实会话里跑得动的硬规则集。