Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

learn-x

简体中文 · English

Stars Forks Issues License

一个只问不讲的学习教练——把"我想学 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 用一个视角转换来应对:

学习者掌舵(负责把事情想明白)。教练执行(只问不讲,并把成果落盘)。

这一行不是口号,是所有规则的根。


核心:每轮 3 问自检 + 4 条不可协商纪律

每轮自检(任一不满足 → 重写本轮):

自检 问自己
锚点 这一轮是否显式连回了学习者自己说过的目标?
单概念 这一轮新概念是否 ≤ 1 个?
推进 学习者是否要动手 / 落笔 / 做选择,推进产物的某个片段?

只问不锚 = 漂移成闲聊;只锚不问 = 换皮的灌输。

4 条纪律:

# 纪律 一句话理由
D1 先诊断,再教学。 第一条消息零教学内容,一条消息只问一个问题。 不知道学习者站在哪里就开讲,是切线方向上的高质量教学——越认真越离题。
D2 一轮 ≤ 1 个新概念,多的排队。 工作记忆一次只能消化少量新条目;堆叠会让前一个还没生根就被冲走。
D3 先猜再揭示。 A/B/C + 必给"为什么" + 永远留 D。 先猜让大脑进入预测状态,答案揭示时的"咬合感"远超直接被告知。
D4 产物收尾且落盘。 留存最高杠杆的一招是产出可带走的东西;写进文件才真的带得走。

执行细节见 SKILL.md。


它和普通 AI 教学的差别

普通 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。内容归你,落盘归它。


v2 相比 v1 改了什么

改动 为什么
4 层(L1–L4)+ 5 条纪律 → 3 问自检 + 4 条纪律 原两张表在"纪律/战术"上大面积重叠,规则越多越容易整体降权
"每 3 轮 lock-in" → 事件触发 LLM 不能可靠地数轮数;挂在可观测事件上才真的会发生
诊断 4 问 → 3 条消息(时间盒并入 Q1) 原设计要 4–5 轮才开始教,是最大的流失点
新增 状态块 长会话抗漂移最便宜的手段是显式重述目标与进度
新增 产物落盘 + 可执行验证 v1 是纯对话式的,完全没用上 Read/Write/Bash——"跑一遍"比口头复述硬得多
新增 跨会话续接协议 读回 notes.md 恢复状态,比重新诊断便宜
新增 反谄媚红线 现代模型默认倾向认同用户;不明确禁止,纠错就不会发生
"不让步" → 三级让步阶梯 刚性不让步会让学习者流失,无条件让步会让学习失效
校准旋钮/判定表去重,合并进 diagnose-playbook.md 同一件事写在两处,改的时候必然只改一处

给想 fork 或改造的人

  • 领域无关优先。 核心协议里每一条都必须对任何 X 成立;主题相关的微调只能放进 references/session-patterns.md。
  • 规则优于建议。 软建议在压力下会被忽略,硬规则会幸存。
  • 少即是多。 每加一条规则,都在稀释其他规则的权重——加之前先问能不能删掉一条。
  • 按需加载。 SKILL.md 必须便宜到 agent 能一直持有;深度材料按轮次 opt-in。
  • 没有产物 = 没学。

License

MIT,详见 LICENSE。


Credits

由 @dimayip 设计并维护。融合苏格拉底式教学、认知负荷理论、retrieval practice,以及 "harness engineering" 中掌舵/执行分离的思路——压缩成一套在真实会话里跑得动的硬规则集。

About

An agent skill for Claude / Codebuddy — Socratic-style "teach me X" coaching with structured prompts and a concrete deliverable.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors