Skip to content

Latest commit

 

History

History
201 lines (155 loc) · 8.73 KB

File metadata and controls

201 lines (155 loc) · 8.73 KB

Speakeasy 记忆系统调研总结

对话日期:2026-03-16 主题:V0.3 记忆模块方案选型


一、Bob 提出的问题清单

# 问题 类型
1 对记忆方案(mem0)仍存疑,是否有更好选择? 方案质疑
2 NanoClaw 用的是本地文件记忆,是否可借鉴? 竞品参考
3 是否有可借鉴的学习类开源项目的记忆能力? 竞品参考
4 学术界和工程界对学习类记忆有什么研究? 理论支撑
5 sqlite-vec 是什么?文件存储在哪里? 技术澄清
6 sqlite-vec 能满足 Speakeasy 的记忆要求吗? 方案评估

发散思考:英语学习场景的个性化记忆应该有什么

把记忆按"从哪来、用在哪"分成五个维度 ┌──────────────────────────────────────────────────────┐ │ 维度 1:语言能力记忆 │ │ - CEFR 等级 + 历史趋势 │ │ - 强项(流利的话题/句型) │ │ - 弱项(反复出现的语法错误) │ │ - 词汇盲区(用中文说但不会用英文表达的词) │ │ - 发音习惯(哪些音经常含糊) │ ├──────────────────────────────────────────────────────┤ │ 维度 2:用户画像记忆 │ │ - 职业 / 行业背景 │ │ - 常聊话题偏好(职场/生活/兴趣/时事) │ │ - 学习目标(面试英语/日常沟通/演讲/写作) │ │ - 性格风格(喜欢严肃还是幽默,话多还是话少) │ ├──────────────────────────────────────────────────────┤ │ 维度 3:学习行为记忆 ← 你提的第1点 │ │ - 用户主动问过什么("这个词怎么用""这句话地道吗") │ │ - 点击追问的内容(v02b click-to-ask 的记录) │ │ - 复习卡片的通过率 / 遗忘率 │ │ - 哪些内容被标记了 👍(觉得有用) │ │ - 学习时段规律(几点学、每次学多久) │ ├──────────────────────────────────────────────────────┤ │ 维度 4:对话内容记忆 │ │ - 聊过的事件("上周开了个重要会议") │ │ - 提到的人物关系(同事、老板、朋友) │ │ - 持续关注的话题(连续几天都在聊同一件事) │ │ - 表达过的情绪和态度 │ ├──────────────────────────────────────────────────────┤ │ 维度 5:学习节奏记忆 │ │ - 连续打卡天数 │ │ - 上次学习时间(用于续接上下文) │ │ - 当前学习计划完成进度 │ │ - 高频放弃时间点(用于预警和激励) │ └──────────────────────────────────────────────────────┘

mem0 的真正价值

你说得很准:关系化、结构化、识别模式、语义检索

具体在 Speakeasy 里意味着什么:

用户聊天原文(非结构化)
"I had a tough meeting with my boss today,
 he said my presentation was not clear"
           ↓ mem0 自动提取
{
  entity: "boss",
  event: "presentation feedback",
  emotion: "frustrated",
  learning_opportunity: "presentation vocabulary",
  pattern: "user struggles in formal workplace English"
}

这是自建 SQLite 做不到的——你不可能为每一种可能的信息写一张表,但 mem0 能从自由对话里自动识别出结构。

语义检索的价值:

Alex 下次对话时检索:
"跟职场表达相关的记忆" → 找到上次 presentation 事件
→ Alex 主动说:"Last time you mentioned your presentation,
   want to practice how to present ideas more clearly?"

这就是从"工具"变成"朋友"的关键一步。


记忆服务于什么(你的第2点)

三个出口,记忆必须真正流向这三个地方才有价值:

记忆
 ├── 服务于【聊天内容】
 │    Alex 主动用记忆发起话题、续接上次的事、调整词汇难度
 │
 ├── 服务于【学习建议】
 │    "你最近 presentation 类词汇用得少,今天可以练练"
 │    "你连续3天在聊职场,要不要试试切换到生活话题?"
 │
 └── 服务于【学习计划】
      基于弱项 + 目标 + 节奏,生成个性化每周计划
      "本周重点:workplace communication,目标5次对话"

整合后的 v03 记忆架构

数据来源                存储层              服务出口
──────────            ────────            ──────────
对话内容       →                →        聊天 system prompt
用户追问记录   →   mem0(非结构化  →        学习建议卡片
FSRS 卡片结果  →    + 向量检索)   →        学习计划生成
点击追问内容   →                →        记忆管理页面
学习行为数据   →   SQLite(结构化)→        Alex 个性化
能力评估结果   →                →        Level 仪表盘

两层存储并行:

  • mem0:处理非结构化对话内容,自动提取实体、事件、模式
  • SQLite:存储结构化数据(FSRS 调度、CEFR 等级、打卡记录)

结论更新

引入 mem0 的时机应该提前到 v03,不是因为复杂,而是因为:没有 mem0,维度 3 和维度 4 的记忆根本无法从自由对话里自动提取,全靠手写规则会漏掉大量信息。


s

四、学习类开源项目的记忆能力

结论先行

目前没有「英语对话学习 + 用户记忆」兼备的开源项目。现有开源项目分两类:

A. 语言学习类(记忆做得浅)

WordPecker App

  • LLM 生成课程 + voice agent 对话练习单词
  • Agent 能访问用户词汇列表,对话中动态添加新词
  • 记忆仅限词表,无用户画像

Discute

  • 专注口语练习,Kokoro 模型做个性化语音反馈
  • 无跨会话用户记忆

B. AI 记忆类(不是学习场景)

MemoryOS(EMNLPS 2025 Oral)

  • 为个性化 AI Agent 设计的记忆操作系统
  • 学术级项目,可借鉴架构,不可直接用

空白即机会

现有学习应用只记"你学了什么"(知识状态),没有人认真做"你是谁"(用户关系)。Speakeasy 的差异化恰在此处


五、学术界和工程界的研究

学术界:Knowledge Tracing(知识追踪)

发展脉络

1994  BKT(贝叶斯知识追踪)   → 建模知识掌握概率
2015  DKT(深度知识追踪)     → 用 RNN 建模学生知识状态
2024  Dialogue KT             → 在对话每轮中识别知识点

核心发现 个性化参数(individualization)效果显著:对每个学生用独立的掌握概率初始值,可以将部分学生达到掌握标准所需题目数量减少约一半。

2024-2025 最新方向 用 LLM 做对话式 KT(dialogueKT):不只追踪答题,而是在对话每一轮中识别涉及的知识点,判断学生是否真正理解。

工程界:Learner Profile(学习者画像)

Open TutorAI(arXiv 2026)

  • 三层架构:对话界面 + 学习者仪表板 + RAG 引擎
  • 入门时初始化 learner profile,实时参与度监测

FOKE 框架(学术)

  • 基础模型 + 知识图谱 + Prompt 工程 = 个性化可解释学习路径
  • 核心思路:把知识点用学生感兴趣的场景包装

对 Speakeasy 的映射

学术概念 Speakeasy 对应 状态
Knowledge Tracing grammar_cards + FSRS ✅ v02b 已实现
Learner Profile 职业、话题偏好、CEFR 等级 ⏳ v03 目标
Contextualizing Alex 把练习融入用户关心的话题 🎯 核心差异化
Dialogue KT 对话中隐性识别错误模式 🔮 未来方向