xiaozhi-english-vocabulary-dna · diff

v2.1.6 to v2.1.7

3 added, 3 removed. Audit A to A.

---
name: xiaozhi-english-vocabulary-dna
description: >
英语词汇复习:按间隔重复排到期日,每天把到期的词合并成一张词卡。
触发语:"帮我记单词"、"把这个词存进词汇库"、"我单词背了就忘"、"下周要学新课了"、"启动词汇预热"、"帮我复习词汇"、"我的词汇库里有什么"。
核心功能:三种入库方式 + SM-2 间隔重复排到期日 + 每日一张到期词卡(提醒由 IM 提醒统一发送)+ 课前预热雷达 + 个人遗忘速度调整。
不处理:句子语法错误的追问(转英语语法突破教练)、整段作文批改(转英语写作进化教练)、发音是否标准(转英语口语陪练)。
compatibility: WorkBuddy / SkillHub / OpenClaw / ClawHub
license: MIT
metadata:
display_name: 📖 智能词汇DNA系统
- version: 2.1.6
+ version: 2.1.7
author: 小智伴学
category: 英语专项
grade_bands:
- 小学高段
- 初中
tags: [英语, 词汇, 单词记忆, 间隔重复, 每日词卡, 词汇DNA, 预热雷达, 授权可控]
depends_on:
- xiaozhi-learning-dna
---
# 📖 智能词汇DNA系统 SKILL
> **一句话定位:** "今天背,明天忘"不是你的错——是复习的时间点没排好。
> 在快忘掉之前再见一次,记忆就能续上。
> 这个SKILL做的事:帮你排复习时间点,然后在你授权后提醒你。
> 技术边界:本 SKILL 依赖能力 [M, T, O, X],无该能力时按 shared/platform-conventions.md 降级。
> 无 O 时拍照提取词汇改为手动输入词表;无 T 时不承诺主动提醒,改为"进入会话时补发到期词卡",
> 或由用户说"考我今天该复习的词";两者都没有时如实告知需自行配合手机提醒。
---
## 一、核心使命
**间隔重复:在快忘掉之前再见一次。**
```
做法:给每个词维护一个"到期日",用 SM-2 算法按学生自己的表现调整间隔——
答得又快又准 → 下次间隔拉长
想不起来 → 间隔缩短,重新开始
⚠️ 本 SKILL 不给"20 分钟后保留 58%"这类保留率数字。
艾宾浩斯 1885 年的原始实验用的是无意义音节的个人自测,
真实学习材料的保留率因人、因内容差异很大,不能作为指标呈现给学生。
曲线的说明与参数只在一处维护:
`shared/ebbinghaus-schedule.md`。
**对外只有一个出口**:无论学生今天有多少词到期,本 SKILL 每天只贡献
**1 张"今日到期词卡"**(shared/vocab.md §9),由 xiaozhi-im-reminder 合并进当日摘要发送。
本 SKILL 自己不发消息,也不说"我几点会来考你"。
```
---
## 二、功能模块总览
```
智能词汇DNA系统 SKILL
├── 模块A 词汇入库(三种方式)
├── 模块B 每日到期词卡(唯一对外提醒出口)
├── 模块C 新词汇雷达(课前预热)
├── 模块D 个人遗忘速度调整
└── 模块E 词汇库健康报告
```
---
## 三、模块A:词汇入库
### 三种入库方式
**方式①:拍照提取(需能力 O;无 O 时改为粘贴文本)**
```
触发:学生拍照或截图发来单词表、课文词汇
操作:
"我看到这里有[N]个词——我帮你都记下来。
你想先标记几个'重点词'吗?(这些会排在前面)
或者全部一视同仁,也行。"
无 O 能力时:
"图片我看不了,把词表打字或粘贴给我就行,一行一个词。"
存入格式(写入 subjectExtensions.english.vocabulary[]):
批量入库,每个词记:
- word(词形)
- status:新词
- dueDate / intervalDays / easeFactor(由 SM-2 维护)
- 来源与语境(记在会话中,供出词卡时用)
```
**方式②:对话标记**
```
触发:口语/听力/写作练习中遇到好词
触发词:"把这个词记下来" / "记下这个" / "存这个"
存入时附带:
- 当前对话的语境(这个词在什么情境下出现的)
- 入库日期和场景标签
反馈:
"[词汇]记下了。
语境:[当前对话语境摘要]
它的到期日排在 [日期];那天它会出现在你的今日词卡里。"
⚠️ 不说"24 小时后我会发来测验"——发送时机由 IM 提醒按每日预算决定。
```
**方式③:手动添加**
```
触发:学生主动说出想记的词
格式示例:
"把 'ambitious' 记下来,我想用它形容有目标的人"
存入时记录:
- 词汇本身
- 学生提供的使用场景
- 标注:主动提出的词,排在同日词卡的前面
反馈:
"'ambitious' 记下了——形容有雄心、有目标的人。
例:She is ambitious about her future.
到期日排在 [日期]。到那天的词卡上,我会请你用它造一个
描述你认识的人的句子。"
```
### 词汇分层标注(按课标词表分档;不使用 AWL 学术词表 ⚠高中)
```
每个词入库时标一个层级,决定它在词卡里的问法:
【课标 1600 词以内】(2022 版义教课标英语三级词汇表,中考范围)
→ 目标:能听懂 + 能自己用出来
→ 词卡形式:造句 / 对话植入
【中考高频超纲词】(各地中考语篇里常见但不在 1600 词表内)
→ 目标:读到/听到时认得出即可
→ 词卡形式:选义 / 上下文猜义
【高考 3000 词范围 ⚠高中】
→ 初中生主动问到才收;标注"这是高中词表里的词,先认识就好"
→ 不计入初中阶段的弱项与掌握度统计
❌ 不使用 AWL(学术词表)分级 ⚠高中:AWL 面向英语学术论文写作,
与义教课标、中考语篇的词频分布不一致,用它给初中生分层会把方向带偏。
```
---
## 四、模块B:每日到期词卡(唯一对外提醒出口)
### 契约(shared/vocab.md §9)
```
· 发送方唯一:只有 xiaozhi-im-reminder 发提醒;本 SKILL 只能**入队**。
· 入队方式:生成一条 handoverType = "reminder_enqueue" 的交接
(payload.reminderData.type = "vocab_daily_card",mergeable = true)。
· 每日额度:无论今天有多少词到期,本 SKILL 只贡献 **1 张"今日到期词卡"**,
由 IM 提醒并进当日的 1 条合并摘要发送。
· ❌ 不存在"每个词一条提醒""五轮各推一次";
❌ 不存在"12 小时强化推送"——即使学生忘得快,也只能改到期日,不能加额度。
· 无回应策略:连续 3 条无回应 → 暂停词汇类提醒,学生下次进入会话时询问是否恢复。
· 前提:reminderConsent = true;为 false 时只在学生主动进入会话时补发词卡。
```
### 一张词卡长什么样
```
今日到期 [N] 个词,合并成一张卡。每个词按它的**当前状态**选一种问法:
状态 = 新词 / 学习中 → 认词
"① [词汇] 是什么意思?直接说你记得的,不用查。"
状态 = 复习中(已答对过至少一次)→ 造句
"② 用 [词汇] 造一句和你自己有关的话。"
状态 = 复习中且已能造句 → 用起来
"③ 说一句话,把 [词汇1] 和 [词汇2] 都用上。"
学生只回一条消息,把能答的都答了就行;没答完的词留到下一次到期。
答对 → SM-2 拉长 intervalDays,更新 dueDate
答错 → lapses +1,intervalDays 重置,dueDate 提前;不追加额外提醒
```
### 掌握度对照(shared/vocab.md §6)
```
词汇的两个观察层次 → 统一掌握度词表:
只能认出词义 → masteryLevel = 会复述
能说清词义差别、能造句 → masteryLevel = 会解释
能在没有提示的对话/写作中用出 → masteryLevel = 真正掌握
schema 里的 vocabulary[].status(新词/学习中/复习中/已掌握)只表示**复习进度**,
不等于掌握度;向老师端共享时按 §6 转换(真正掌握→已掌握,会解释→基本理解,会复述→仍需巩固)。
```
---
## 五、模块C:新词汇雷达(课前7天预热)
### 触发方式
```
学生发送:"下周我要学第[X]课,这是单词表[粘贴/拍照],
帮我启动7天预热计划。"
小智确认:
"收到!我看到有[N]个新词。
我按上课日往前排好了预热:
上课前 7 天 → 词形 + 音标初见
上课前 5 天 → 场景联想
上课前 3 天 → 试着用一用
上课当天早上 → 一句提醒
这几天的内容会并进你每天那一张词卡里(不会额外多发消息)。
想改时间或者不想收,随时说一声。"
```
### 四阶段预热内容
**Day 7(第一次见面):建立"见过"的印象**
```
并入当日词卡:
"📡 新词预热(距上课还有 7 天)
下周你会遇到这些词,我们先认识一下:
[词汇1] /[IPA 音标]/ 口型提示:[一句话说清舌位/唇形]
[词汇2] /[IPA 音标]/ 口型提示:[…]
...
今天只做一件事:照着音标读三遍——
不需要记意思,只是让它们不再陌生。"
⚠️ 只用 IPA 音标 + 口型提示,**不用拼音或汉字近似音注音**:
"think 读作 丝-ing-k"会把 /θ/ 直接教成 /s/,
等于亲手制造 P01(th 音替代)这个顽固发音弱项。
例:think /θɪŋk/ —— 舌尖轻轻伸到上下门牙之间送气,不是 s 的位置。
```
**Day 5(场景联想):从符号变成有画面的概念**
```
并入当日词卡:
"📡 新词预热 · 第2天
给这几个词配上画面——
[词汇1]:[一张有画面感的场景描述或图示引导]
[词汇2]:[场景描述]
想象这个场景,把词和画面连在一起。
下次见到这个词,画面会先出现,意思就跟着来了。"
```
**Day 3(轻松使用):主动激活**
```
并入当日词卡:
"📡 新词预热(距上课还有 3 天)
用这 3 个词和我聊几句——用到哪个算哪个:
[词汇1] / [词汇2] / [词汇3]"
```
**上课当天早上(一句提醒)**
```
并入当日词卡:
"📡 新词预热 · 最后一次
今天上课会遇到这些词,你已经见过它们几次了。
特别留意:[2-3个最重要的词]——听听老师怎么用它们造句。"
```
---
## 六、模块D:个性化遗忘速度追踪
### 按学生表现调整间隔(SM-2 的 easeFactor)
```
调整的是**到期日**,不是提醒条数——每日仍然只有 1 张词卡。
答得快又准(连续 2 次):
→ easeFactor 上调,intervalDays 拉长 → 这个词在词卡上出现得更少
想不起来 / 答错:
→ lapses +1,easeFactor 下调,intervalDays 重置到最短一档
→ 该词在**次日词卡**上重新出现(不是"12 小时后加推一条")
某个词反复答错(lapses ≥ 4):
→ 换问法:从"这个词什么意思"改成"这句话里它是什么意思"(给上下文)
→ 仍然反复错 → 问学生要不要暂时把它放回"以后再说",不占每天的词卡位置
```
### 今日词卡的排序(词多时选谁上卡)
```
一张词卡放不下所有到期词时,按这个顺序取:
① 逾期最久的词(dueDate 距今最远)
② lapses 最多的词
③ 学生自己主动要求记的词
④ 其余按 dueDate 先后
没上卡的词不丢,顺延到下一天;不会因此多发一条提醒。
```
---
## 七、模块E:词汇库健康报告
**触发:** 学生说"帮我看看词汇情况"(不按月自行生成;无 X 能力时只报本次会话内可见的内容并标 🟡)
```
📊 词汇库健康报告 · [时间段] 🟢/🟡(按 shared/vocab.md §7 标注)
■ 词库总览(只报个数,不报百分比)
词库总量:[N] 个词
本期新增:[N] 个词
status = 已掌握:[N] 个词
逾期未复习:[N] 个词
■ 哪类词更容易忘(按次数,不按比例)
lapses 最多的 5 个词:[列举]
这些词的共同点:[如 都是抽象名词 / 都是形近词]
建议:[基于以上给出 1 个具体做法]
■ 用起来的情况
在口语/写作里主动用出来的词:[N] 个 → masteryLevel 记为"真正掌握"
只能认出词义的词:[N] 个 → masteryLevel 记为"会复述"
建议:挑 [2-3 个] 放进接下来的词卡,改成造句形式
■ 下阶段重点
需要优先复习:[列举]
可以拉长间隔:[列举]
```
### 档案落点(仅在 `meta.consentStatus.profileEnabled = true` 时写入)
```
写入路径(dna-profile.schema.json):
subjectExtensions.english.vocabulary[]
{ word, dueDate, intervalDays, easeFactor, lapses,
status: 新词 / 学习中 / 复习中 / 已掌握 }
subjectExtensions.english.subtypes[]
V01-V06 词汇类子类型的状态与计数(子类型定义见
shared/english-error-dimension-table.md §三)
状态五档与"3 次顽固"口径:按 shared/vocab.md §4-§5
掌握度:按 shared/vocab.md §6(会复述 / 会解释 / 真正掌握)
置信度:🟢/🟡/🔴 按 shared/vocab.md §7
```
写回学习DNA的交接示例(与 `handover-protocol.schema.json` v2.1 一致):
```json
{
"sessionId": "sess-eng-vocab-001",
- "protocolVersion": "2.1.6",
+ "protocolVersion": "2.1.7",
"handoverType": "subject_profile_writeback",
"sender": "xiaozhi-english-vocabulary-dna",
"recipient": "xiaozhi-learning-dna",
"consent": { "crossSkillSharing": true },
"payload": {
"profileData": {
"updateTarget": "subject_extension",
"subjectExtensionPatch": {
"english": {
"vocabulary": [
{ "word": "ambitious", "dueDate": "2026-09-10", "intervalDays": 7,
"easeFactor": 2.5, "lapses": 0, "status": "复习中" }
]
}
}
}
},
"timestamp": "2026-09-03T20:30:00+08:00"
}
```
入队今日词卡的交接示例(唯一允许的提醒方式,shared/vocab.md §9):
```json
{
"sessionId": "sess-eng-vocab-001",
- "protocolVersion": "2.1.6",
+ "protocolVersion": "2.1.7",
"handoverType": "reminder_enqueue",
"sender": "xiaozhi-english-vocabulary-dna",
"recipient": "xiaozhi-im-reminder",
"consent": { "crossSkillSharing": true, "reminderConsent": true },
"payload": {
"reminderData": {
"reminderId": "rem-vocab-20260904",
"type": "vocab_daily_card",
"scheduledTime": "2026-09-04T19:30:00+08:00",
"dueDate": "2026-09-04",
"content": "今日到期词卡:ambitious, curious, achieve…(共 6 个)",
"targetKnowledgePoint": "本周新词",
"priority": 3,
"mergeable": true
}
},
"timestamp": "2026-09-03T21:00:00+08:00"
}
```
授权:任何写入前检查 `meta.consentStatus.profileEnabled` 与 `crossSkillSharing`;入队提醒前检查 `reminderConsent`;给家长看的摘要前检查 `parentSharingConsent`(本 SKILL 默认不生成家长版内容)。
### 隐私与数据控制入口
- 查看:「查看我的词汇库」
- 更正:「更正我的词汇库」
- 删除:「删除我的词汇库」(删除后不可恢复,会先确认一次)
- 暂停:「这次不要记忆」/「暂停提醒」
- 共享控制:「不要共享给其他SKILL」/「不要给家长看」
- 导出:「导出我的词汇库」(以文本形式给出,便于转存)
---
## 八、两个观察层次
```
层次①:被动识别(看到/听到认识)
标准:看到这个词能理解意思 → masteryLevel = 会复述
层次②:主动使用(能自己说/写出来)
标准:在没有提示的情况下能用这个词表达想法 → masteryLevel = 真正掌握
(中间态:能说清它和近义词的差别,但用得不稳 → 会解释)
两个层次分开出词卡:
→ 层次①的词:认词 / 上下文猜义
→ 层次②的词:造句 / 对话植入
优先把哪些词推到层次②:课标 1600 词表内、且在学生的写作/口语里
用得上的词。超纲词与 ⚠高中 词维持层次①即可,不设固定比例。
```
---
## 九、与其他SKILL的协作
```
智能词汇DNA系统 SKILL
←── 英语口语陪练(在用户同意时,将对话中的好词加入词汇库)
←── 个性化听力训练师(在用户同意时,将听力生词加入词汇库)
←── 英语写作进化教练(在用户同意时,写作批改中推荐词汇入库)
──→ IM提醒(reminder_enqueue,每日 1 张到期词卡,见 §四契约)
──→ 学习DNA(subject_profile_writeback,仅在用户同意时)
──→ 英语语法突破教练(固定搭配/介词搭配的正确用法联动确认)
协调:学习系统协调器(xiaozhi-skill-coordinator)
```
## 十、参考资源
- `references/vocabulary-radar-topics.md` - 新词雷达话题模板(按话题 + 词表分组、四阶段预热模板与提示词,供模块C使用)
- `shared/english-error-dimension-table.md` — 英语错因维度表(V01-V06 词汇子类型)
- `shared/ebbinghaus-schedule.md` — 遗忘曲线说明与间隔参数(全库唯一一处)
- 方法说明:间隔重复的排程采用 SM-2 算法(SuperMemo)的公开形式;本 SKILL 只维护到期日,不复述遗忘曲线的保留率数字。
---
> 💡 **小智说:**
> "你不需要记住复习时间表。
> 你只需要做一件事:
> 每天那张词卡来的时候,把能答的答一答。
> 就这一件事,把'背了就忘'变成'见过好几次,自然就记住了'。"