Evidence-based AI-assisted interactive learning protocol
基于循证学习科学的 AI 辅助互动学习协议
> Combines 5 scientifically validated methods + self-assessment + diagnostic test + customized learning path
> 结合 5 种科学验证方法 + 自我评价 + 摸底考试 + 定制化学习路径
📦 Source Code (源码): https://github.com/kaixiad/RetainCraft
⚠️ Permissions required (所需权限):
This skill requires: file read/write (~/learn/), Python script execution, web search (for test questions & fact-checking), and platform-specific reminder scheduling. All data stored locally. No external API calls.
本技能需要:文件读写(~/learn/)、Python 脚本执行、网络搜索(出题和事实核查)、平台提醒调度。所有数据本地存储,无外部 API 调用。
> RetainCraft by kaixiad — 170 unit tests, 14 academic citations, zero dependencies.
> If you find this useful, a ⭐ on GitHub would mean a lot.
📖 Detailed workflow (详细流程): references/full-workflow.md
> ⭐ If this skill helps you, please give a Star on GitHub!
> 如果这个 skill 对你有帮助,欢迎在 GitHub 上给个 Star!
> All commands use paths relative to this SKILL.md's directory. 以下所有命令路径相对于本文件所在目录。
Must read before each learning session (每次学习开始前必须读)
```bash
python3 scripts/srs.py record-test
```
Not executing = module test invalid, level not updated.
不执行此命令 = 模块测试无效,等级不更新。
AI MUST verify reminder status before proceeding. Missing reminder = learning risk.
AI 必须确认提醒状态再继续。无提醒 = 学习中断风险。
```bash
python3 scripts/srs.py reminder
```
python3 scripts/srs.py check-reminder
```bash
python3 scripts/srs.py switch-channel
```
| Method (方法) | Effect Size (效果量) | 执行层 | v1.5.0 目标 | Source (来源) |
|---------------|---------------------|--------|------------|---------------|
| Distributed Practice → 间隔重复 | d=0.85 | 🟢 代码级 | 🟢 | Donoghue & Hattie 2021 |
| Practice Testing → 主动回忆 | d=0.74 | 🟢🟡 混合级 | 🟢🟡 | Donoghue & Hattie 2021 |
| Self-Explanation → 费曼学习法 | d=0.54* | 🔵 AI协议级 | 🔵 | Donoghue & Hattie 2021 |
| Interleaved Practice → 交错练习 | d=0.47 | 🔵 AI协议级 | → 🟢 代码级 | Donoghue & Hattie 2021 |
| Elaborative Interrogation → 因果追问 | d=0.56 | 🔵 AI协议级 | 🔵 | Donoghue & Hattie 2021 |
| AI Tutoring (AI 辅导) | 0.63-1.3 SD | 🟢🟡 混合级 | 🟢🟡 | Kestin et al. 2025 RCT |
> Note (注): *d=0.54 corresponds to "Self Explanation" in original paper, mapped to Feynman technique here.
> *d=0.54 对应原文"自我解释",此处映射为费曼学习法。
> Execution Layer (执行层): 🟢 代码强制执行 | 🟢🟡 代码框架+AI内容 | 🔵 AI在会话中执行
Output format (输出格式):
📅 学习时间
- 每周学习天数:周一到周五(5 天)
- 每天学习时间:晚上 8:00 - 9:00(1 小时)
- 休息日:周六、周日(轻量复习)
📚 学习节奏
- 每个模块预计:3-5 天
- 每天新概念:2-3 个
- 每天复习:根据间隔重复算法(SM-2/FSRS-5)到期情况
🎯 目标
- 目标等级:L4 熟练
- 预计总时长:30 小时
- 预计完成日期:2026-06-15
请确认以上计划,或告诉我需要调整的地方。
你可以:
1. 输入"确认"接受计划
2. 输入"修改"调整学习时间
3. 输入"跳过"使用默认设置
Estimated duration formula (预计时长公式):
预计总时长 = 模块数 × 每模块平均Phase数 × 每Phase平均时长
预计完成日期 = 当前日期 + 预计总时长 / (每日学习时长 × 每周学习天数)
Scientific basis (科学依据): Gollwitzer (1999) - Implementation intentions. Specific plans increase execution rate by d=0.65.
Reminder creation (提醒创建):
After user confirms the learning contract, AI MUST create a timed reminder:
python3 scripts/srs.py setup-reminder (auto-detects channel + delivery target)
Reminder check at session start (会话开始时提醒检查):
Every time a learning session starts, check if the user has a timed reminder.
| Level (等级) | Standard (标准) | Behavior (行为特征) |
|--------------|-----------------|---------------------|
| 🔴 L1 Entry (入门) | No test history or first <20% | Start from zero (从零开始) |
| 🟠 L2 Beginner (初学) | First >=20% | Has concepts but not systematic (有概念但不系统) |
| 🟡 L3 Intermediate (进阶) | 2 consecutive >=40% | Can apply independently (能独立应用) |
| 🟢 L4 Proficient (熟练) | 2 consecutive >=70% | Can solve complex problems (能解决复杂问题) |
| 🔵 L5 Mastery (精通) | 2 consecutive >=90% + Feynman check | Can teach others (能教会别人) |
| Item (项目) | Review (复习) | Module Test (模块测试) |
|-------------|---------------|------------------------|
| Purpose (目的) | Strengthen memory (强化记忆) | Phase assessment (阶段性评估) |
| Impact (影响) | No level change (不影响等级) | Determines level (决定等级升降) |
| Command (命令) | srs.py rate | srs.py record-test |
Decision rule (判定规则):
record-test)
record-test)
rate)
python3 scripts/srs.py due
python3 scripts/srs.py due
Triggers (触发条件 - 任一):
Response (响应): Lower difficulty, suggest break, switch to easy mode
响应:降低难度、建议休息、切换轻松模式
Iron rule: AI must search before answering any knowledge question
铁律:AI 助手回答任何知识性问题前,必须先搜索验证
| Scenario (场景) | Must Search? (必须搜索?) |
|-----------------|--------------------------|
| User asks "what is XX" (用户问"XX 是什么") | ✅ |
| Correct answer for test (出测试题的正确答案) | ✅ |
| Feynman check judgment (费曼检验时判断对错) | ✅ |
| Planning learning path (规划学习路径) | ✅ |
| Basic common knowledge (基础常识) | ❌ |
| Flow conversation (流程性对话) | ❌ |
Rule (规则): Factual statements must include source links
规则:事实性陈述必须附来源链接
□ Current phase core output completed? (当前 Phase 核心产出已完成?)
□ If module test: record-test called? (如果模块测试:已调用 record-test?)
□ Key progress written to session notes? (关键进展已写入会话笔记?)
python3 scripts/srs.py check-session [topic] # Check unrecorded tests
python3 scripts/srs.py check-burnout <topic> # Analyze burnout risk
| System (系统) | Stores (存什么) | Location (位置) |
|---------------|-----------------|-----------------|
| Platform notes (平台笔记) | Progress summary, weak points (进度摘要、薄弱点) | Use your platform's native notes/memory |
| ~/learn/ | SRS data, concept mastery (间隔重复数据、概念掌握度) | ~/learn/topics/{topic}/concepts.json |
concepts.json > session notes (concepts.json > 笔记)
> The critical data is in concepts.json. Session notes are supplementary — use any storage mechanism your platform provides.
> 关键数据在 concepts.json。会话笔记是辅助性的——用你平台自带的任何存储方式。
AI receives heartbeat → python3 scripts/srs.py due → Has due content → Notify user
AI 助手收到心跳 → python3 scripts/srs.py due → 有到期内容 → 通知用户
Delivery (投递): When sending reminders, use your platform's native messaging to the user's active channel. Do not rely on implicit target resolution.
发送提醒时:使用你平台的原生消息机制发送到用户的活跃渠道。不要依赖隐式目标解析。
~/learn/config.json
{
"algorithm": "fsrs", // fsrs (default) / sm2
"fsrs_weights": null, // Personalized FSRS weights (optimize-params generates)
"learning_depth": "standard", // shallow / standard / deep
"learner_type": "practical", // visual / practical / theoretical
"daily_review_limit": 20,
"session_duration": 60,
"burnout_threshold": 3,
"mastery_threshold": 0.8,
"level_thresholds": { "L2": 0.2, "L3": 0.4, "L4": 0.7, "L5": 0.9 },
"learning_contract": {}, // Saved by sign-contract (time, days, duration, target_level)
"reminder_channels": [], // Managed by setup-reminder
"active_channel": null // Current reminder channel
}
FSRS-5 支持个性化参数优化,让算法适应每个用户的记忆特征。
python3 srs.py optimize-params
前置条件:
优化过程:
fsrs_weights 字段
何时触发:
optimize-params
Core: init, add, review, rate, due, status
Analytics: today, streak, analyze, weekly-report, reminder
Tests: record-test, test-history, record-simulation, simulation-history
Config: config, sign-contract, setup-reminder, optimize-params
Diagnostics: profile, check-session, check-burnout
> Full CLI reference with examples: README.md
| Priority (优先级) | Description (描述) | Example (示例) |
|-------------------|-------------------|---------------|
| 1-Urgent (紧急) | Deadline approaching (截止日期临近) | Exam prep (考试准备) |
| 2-Important (重要) | Core skills (核心技能) | Programming (编程语言) |
| 3-Regular (常规) | Daily learning (日常学习) | New tech (新技术) |
| 4-Extended (扩展) | Broaden horizons (拓宽视野) | Related fields (相关领域) |
| 5-Reserve (储备) | Future use (未来可能用到) | Learning list (待学习清单) |
_is_openclaw_available() platform detection + automatic fallback
> Full changelog: CHANGELOG.md on GitHub
共 4 个版本