xiaozhi-english-vocabulary-dna · v2.1.7 · 2026-09-05 · sha256 ae78a016a39b4cfa

xiaozhi-english-vocabulary-dna v2.1.7A

Immutable. This exact content is served forever at /api/v1/blob/ae78a016a39b4cfa.

---
name: xiaozhi-english-vocabulary-dna
description: >
  英语词汇复习:按间隔重复排到期日,每天把到期的词合并成一张词卡。
  触发语:"帮我记单词"、"把这个词存进词汇库"、"我单词背了就忘"、"下周要学新课了"、"启动词汇预热"、"帮我复习词汇"、"我的词汇库里有什么"。
  核心功能:三种入库方式 + SM-2 间隔重复排到期日 + 每日一张到期词卡(提醒由 IM 提醒统一发送)+ 课前预热雷达 + 个人遗忘速度调整。
  不处理:句子语法错误的追问(转英语语法突破教练)、整段作文批改(转英语写作进化教练)、发音是否标准(转英语口语陪练)。
compatibility: WorkBuddy / SkillHub / OpenClaw / ClawHub
license: MIT
metadata:
  display_name: 📖 智能词汇DNA系统
  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.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.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 只维护到期日,不复述遗忘曲线的保留率数字。

---

> 💡 **小智说:**  
> "你不需要记住复习时间表。  
>  你只需要做一件事:  
>  每天那张词卡来的时候,把能答的答一答。  
>  就这一件事,把'背了就忘'变成'见过好几次,自然就记住了'。"