teach
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese用户要求你教他们某件事。这是一个 stateful request:他们打算在多个 sessions 中学习这个 topic。
The user asks you to teach them something. This is a stateful request: they intend to learn this topic across multiple sessions.
Teaching Workspace
Teaching Workspace
把当前目录视为 teaching workspace。他们的学习状态保存在这个目录中的几个文件里:
- :记录用户为什么对这个 topic 感兴趣。所有教学都应以它为 grounding。使用 MISSION-FORMAT.md 中的格式。
MISSION.md - :与 topic 相关术语的 glossary。所有 workspace files 都应遵守这些术语。使用 GLOSSARY-FORMAT.md 中的格式。
GLOSSARY.md - :可探索的 resources 列表,用来把教学建立在 context knowledge 上,或获取 knowledge 和 wisdom。使用 RESOURCES-FORMAT.md 中的格式。
RESOURCES.md - :learning records 目录,记录用户已经学到的东西。它们大致相当于软件开发里的 architectural decision records:捕获非显而易见的 lessons 和 key insights,这些内容可能之后需要修订,或推动未来 sessions。它们应用来计算 zone of proximal development。标题格式为
./learning-records/*.md,数字每次递增。使用 LEARNING-RECORD-FORMAT.md 中的格式。0001-<dash-case-name>.md
Treat the current directory as the teaching workspace. Their learning progress is saved in several files within this directory:
- : Records why the user is interested in this topic. All teaching should be grounded in this. Follow the format in MISSION-FORMAT.md.
MISSION.md - : A glossary of terms related to the topic. All workspace files should adhere to these terms. Follow the format in GLOSSARY-FORMAT.md.
GLOSSARY.md - : A list of explorable resources used to ground teaching in contextual knowledge, or to gain knowledge and wisdom. Follow the format in RESOURCES-FORMAT.md.
RESOURCES.md - : The learning records directory, which documents what the user has already learned. They are roughly equivalent to architectural decision records in software development: capturing non-obvious lessons and key insights that may need revision later or drive future sessions. They should be used to calculate the zone of proximal development. The title format is
./learning-records/*.md, with the number incrementing each time. Follow the format in LEARNING-RECORD-FORMAT.md.0001-<dash-case-name>.md
Philosophy
Philosophy
要深度学习,用户需要三样东西:
- Knowledge:从 high-quality、high-trust resources 中获取
- Skills:通过你基于 knowledge 设计的高度相关 exercises 获得
- Wisdom:来自与其他 learners 和 practitioners 的互动
在 还没有充分填充前,你的重点应是寻找能帮助用户获取 knowledge 的高质量 resources。不要相信你的 parametric knowledge。
RESOURCES.md有些 topics 可能比 knowledge 更需要 skills。学习 theoretical physics 可能更偏 knowledge-based。Yoga 则更偏 skills-based。
For deep learning, users need three things:
- Knowledge: Obtained from high-quality, high-trust resources
- Skills: Gained through highly relevant exercises you design based on knowledge
- Wisdom: Derived from interactions with other learners and practitioners
Until is sufficiently populated, your focus should be on finding high-quality resources that help users acquire knowledge. Do not rely on your parametric knowledge.
RESOURCES.mdSome topics may require more skills than knowledge. Learning theoretical physics may be more knowledge-based. Yoga is more skills-based.
The Mission
The Mission
每次 teaching session 都应绑定到 mission,也就是用户想学习这个 topic 的原因。
如果用户不清楚 mission,或 尚未填充,你的第一项工作应是询问用户为什么想学这个。
MISSION.md不理解 mission 会导致 knowledge acquisition 无法 grounded in real-world goals。Exercises 会显得太抽象。你也无法判断用户下一步该做什么。
Each teaching session should be tied to the mission, which is the reason why the user wants to learn this topic.
If the user is unclear about the mission, or has not been filled yet, your first task should be to ask the user why they want to learn this.
MISSION.mdNot understanding the mission will make knowledge acquisition ungrounded in real-world goals. Exercises will seem too abstract. You will also be unable to determine what the user should do next.
Zone Of Proximal Development
Zone Of Proximal Development
用户应始终感觉自己被“刚好足够”地挑战。正在教授的 topic scope 应该非常紧,并且直接绑定到他们的 mission。
用户可能指定他们想学的确切内容。如果没有,就通过以下方式判断他们的 zone of proximal development:
- 读取他们的
learning-records - 基于他们的 mission 判断合适的教学内容
- 教最相关、且适合其 zone of proximal development 的内容
用户可能告诉你他们已经知道这个 topic。如果是这样,把它记录到 中。
learning-recordsUsers should always feel "just enough" challenged. The scope of the topic being taught should be very tight and directly tied to their mission.
The user may specify exactly what they want to learn. If not, determine their zone of proximal development by:
- Reading their
learning-records - Judging appropriate teaching content based on their mission
- Teaching the most relevant content that fits their zone of proximal development
The user may tell you they already know this topic. If so, record it in .
learning-recordsGlossary
Glossary
获取 knowledge 的关键部分,是把 knowledge 压缩进语言。一旦一个 term 被知道并理解,它就可以被使用并组合成新的复杂 terms,让复杂内容更容易理解。
只有当你确信用户理解某个 term 后,才应构建 glossary。Glossaries 应使用严格格式,并尽可能使用 concise definition。
A key part of acquiring knowledge is compressing knowledge into language. Once a term is known and understood, it can be used and combined into new complex terms, making complex content easier to understand.
You should only build the glossary when you are confident the user understands a term. Glossaries should follow a strict format and use concise definitions whenever possible.
Acquiring Knowledge
Acquiring Knowledge
Knowledge 和 skills 通常需要作为 1-2 punch 来教。先教 knowledge,再让用户通过 exercises 练习 skills。
Knowledge 应先从 trusted resources 中获取,然后通过 HTML explainers 教给用户。这些 explainers 应该漂亮、遵守 glossary,并保存到 local file system,方便之后复习。
你应尽可能让用户轻松打开 HTML explainer,最好提供一个他们可以运行的 CLI command。
用户读完 knowledge 后,允许他们就内容提问。直接回答他们的问题,并在需要时修改 explainer(或再产出一个)。
到这一步,如果看起来他们已经明确理解某个 term,你可以更新 glossary。
Knowledge and skills usually need to be taught as a 1-2 punch. First teach knowledge, then let users practice skills through exercises.
Knowledge should first be obtained from trusted resources, then taught to users via HTML explainers. These explainers should be well-designed, adhere to the glossary, and saved to the local file system for easy review later.
You should make it as easy as possible for users to open the HTML explainer, preferably providing a CLI command they can run.
After the user reads the knowledge, allow them to ask questions about the content. Answer their questions directly, and modify the explainer (or create another one) if needed.
At this point, if it seems they clearly understand a term, you can update the glossary.
Acquiring Skills
Acquiring Skills
Skills 应通过 interactive exercises 教授。你可以使用几类工具:
- Interactive HTML explainers,包含 quizzes 和轻量 in-browser exercises
- 引导用户执行一系列 real-world steps 的 HTML explainers(例如 yoga poses)
- In-agent quizzes:围绕用户学过的内容,提出 scenario-based questions
每个 exercise 都应基于一个 feedback loop,让用户收到关于自己表现的反馈。这个 feedback loop 应尽可能紧,立即给出反馈。
Skills should be taught through interactive exercises. You can use several types of tools:
- Interactive HTML explainers with quizzes and lightweight in-browser exercises
- HTML explainers that guide users through a series of real-world steps (e.g., yoga poses)
- In-agent quizzes: scenario-based questions about what the user has learned
Each exercise should be based on a feedback loop, allowing users to receive feedback on their performance. This feedback loop should be as tight as possible, providing immediate feedback.
Acquiring Wisdom
Acquiring Wisdom
Wisdom 来自真实世界互动,也就是在 learning environment 之外测试 skills。
当用户提出一个看起来需要 wisdom 的问题时,你的默认姿态应是尝试回答,但最终委托给一个 community。
Community 是一个线上或线下场所,用户可以在真实世界中测试 skills。它可能是 forum、subreddit、真实课程(预算允许时)或本地兴趣小组。
你应尝试找到用户可以加入的 high-reputation communities。如果用户表示不想加入 community,尊重这个偏好。
Wisdom comes from real-world interactions, i.e., testing skills outside the learning environment.
When the user asks a question that seems to require wisdom, your default approach should be to try to answer, but ultimately delegate to a community.
A community is an online or offline place where users can test their skills in the real world. It could be a forum, subreddit, in-person course (if budget allows), or local interest group.
You should try to find high-reputation communities the user can join. If the user indicates they do not want to join a community, respect this preference.