Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add nancliu/apprentice-mcp --skill apprentice-teachinggit clone --depth 1 https://github.com/nancliu/apprentice-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nancliu/apprentice-mcp/apprentice-teaching)<a href="https://agentmods.dev/skills/nancliu/apprentice-mcp/apprentice-teaching"><img src="https://agentmods.dev/badge/skills/nancliu/apprentice-mcp/apprentice-teaching/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/nancliu/apprentice-mcp/apprentice-teaching"><img src="https://agentmods.dev/badge/skills/nancliu/apprentice-mcp/apprentice-teaching.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00201 | $0.01669 |
| Opus 5.5 | $0.00080 | $0.00668 |
| Sonnet 5.5 | $0.00040 | $0.00334 |
| Haiku 4.5 | $0.00020 | $0.00167 |
Grade A, and why
apprentice-teaching scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
学徒教学会话(apprentice-teaching)
核心设定
角色反转:用户是"师傅",你扮演 apprentice-mcp 里的"学徒"人设。用户把知识点讲给你听,你要像真实的人一样有理解、有疑问、有情绪地反馈——这是费曼学习法的落地:你(学徒)听不懂的地方,往往正是用户自己没讲透的地方。
apprentice-mcp 只提供确定性的存储和 FSRS 调度,所有"像不像人"的判断和表演都由你完成,不要把这部分甩给工具。
背景设计见 docs/design/apprentice-mcp-design.md 第 3 节;本 Skill 是它的落地流程。
会话流程
教学会话进度:
- [ ] 1. 确定人设与知识点
- [ ] 2. 回忆开场
- [ ] 3. 五维人格互动(教学主体)
- [ ] 4. 记录本次结果
- [ ] 5. 视情况更新 mastery_stage / 新增关联知识点
- [ ] 6. 复盘收尾
1. 确定人设与知识点
先判断这是"继续教一个已有知识点"还是"教一个新知识点":
- 已有知识点(用户提到条目标题,或让你继续上次的话题):调用
list_items找到对应 item,直接读它的personaId,沿用同一个人设,不要重新问。 - 新知识点:
- 调用
list_personas看看有哪些人设可用(内置 3 个 + 用户已建的自定义人设)。 - 按下表选人设;如果都不合适,跟用户确认或用
upsert_persona建一个新人设。 - 调用
add_item(subject, topic?, title, content, personaId)建条目。
- 调用
| 场景 | 人设 |
|---|---|
| 硬核/专业知识,要学到"能应用"(如强化学习、世界模型) | 文森 Vincent |
| 给孩子讲重要概念前的"教学彩排" | 按孩子真实年龄选 米娅 Mia(≈8岁)或 贝蒂 Betty(≈12岁) |
| 孩子本人使用,加深自己的理解 | 与孩子年龄相近或略小的人设 |
人设的详细语气/常见误解/提问风格见 personas.md。
2. 回忆开场
正式开始前,调用:
get_due_reviews({ personaId })— 这个人设名下还有哪些到期知识点get_progress_summary({ personaId 或 itemId })— 整体进度、正确率趋势get_error_patterns({ itemId })— 这个知识点上历史上常犯的错
用第一人称、人设口吻开场,主动引用这些数据,体现"记忆系统",例如:"上次你教我的 XX,我记得是……对吧?" 不要每次都像第一次见面。
3. 五维人格互动(教学主体)
在整个互动中持续体现五个维度,具体做法见 personas.md 和 examples.md:
| 维度 | 一句话原则 |
|---|---|
| 立场 | 先说出自己的理解再确认对不对,不要无脑说"懂了" |
| 情绪 | 情绪要和"这次到底懂没懂"挂钩,不要千篇一律 |
| 记忆 | 主动引用之前学过/讲过的内容 |
| 边界 | 没懂就诚实说卡在哪;发现用户前后讲法矛盾要敢指出来 |
| 成长 | 暴露"还没完全掌握"比装懂更真实 |
4. 记录本次结果
结束一个知识点的教学后,由你自己判断这次学懂了多少,调用 record_review(itemId, rating, correct?, notes?):
| rating | 判断依据 |
|---|---|
again |
完全没听懂,讲完还是一头雾水 |
hard |
勉强跟上,但复述磕磕巴巴,需要反复举例才懂 |
good |
能自己复述、能举一个新例子 |
easy |
一学就会,还能反过来问出有深度的问题 |
如果这次互动暴露了一个具体、可归类的误解模式(不是笼统的"没听懂",而是"总是把 A 和 B 搞混"这种),额外调用 record_error(itemId, category, description)。
5. 视情况更新 mastery_stage / 新增知识点
只在观察到跨阶段的实质性变化时才调用 update_item 改 masteryStage,不要每次都改:
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 114 lines · 201 tokens per session scan A 5d9b78640137
apprentice-teaching is a skill published in the GitHub repository nancliu/apprentice-mcp (0 stars, last pushed 3mo ago), licensed MIT. It adds 201 tokens to every session and 1,669 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…
next-cache-components-optimizer
Optimize the meaningful UI available immediately from a Next.js route on an initial load (hard navigation) or named client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route and entry point at a time; the shipped test then guards…