用 TiMem 做 AI 学习助手:让它记住你的薄弱点和学习进度
大多数 AI 学习助手都有一个反常识的问题:你用得越久,它越没用。
第一次用,AI 还能认真回答你的问题。用了一个月之后,它对你的了解还是零。你上周刚把「递归」搞明白,今天又重新讲。你三次问错同一类题,它没有任何感知。
这不是 AI 的问题,是记忆层缺失的问题。本文带你用 TiMem 搭一个真正有记忆的 AI 学习助手。
理想的 AI 学习助手应该做什么
把优秀家教的行为拆开来看:
- 记住你学过什么:不重复讲已经掌握的内容
-
- 标记你的薄弱点:同一类型出错 2 次以上,自动标记
-
- 追踪学习进度:知道你在整个知识体系里到了哪里
-
- 调整讲解风格:你喜欢类比还是代码示例?喜欢简洁还是详细?
这四件事,普通 AI 助手一件都做不到。TiMem 的五层记忆树可以全部支撑。
TiMem 五层记忆树在学习场景的映射
| 层级 | 学习场景存储内容 |
|---|---|
| L1 原始片段 | 每道题的对话原文 |
| L2 会话摘要 | 本次学习的知识点和错误记录 |
| L3 每日总结 | 今天掌握/未掌握的模块 |
| L4 每周总结 | 本周薄弱点模式、进步趋势 |
| L5 用户画像 | 整体学习风格、长期薄弱领域 |
动手搭建
1. 安装依赖
pip install timem-client openai
申请 TiMem API Key:console.timem.cloud
2. 初始化
import os
from timem_client import TiMemClient
from openai import OpenAI
timem = TiMemClient(api_key=os.environ["TIMEM_API_KEY"])
llm = OpenAI()
3. 核心:记忆感知的答题辅导
def tutor_reply(user_id: str, question: str) -> str:
# 检索学习历史
memories = timem.search(
query=question,
user_id=user_id,
top_k=5
)
# 构建学习上下文
learning_context = ""
if memories:
lines = [f"- {m['content']}" for m in memories]
learning_context = "关于这位学生你已知道:\n" + "\n".join(lines)
base_prompt = (
"你是一位耐心的编程导师。"
"根据学生的学习历史,有针对性地讲解,避免重复已掌握的内容,"
"重点关注薄弱点。讲解风格简洁,优先用代码示例。"
)
system_content = base_prompt
if learning_context:
system_content = base_prompt + "\n\n" + learning_context
response = llm.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_content},
{"role": "user", "content": question}
]
)
reply = response.choices[0].message.content
# 存入学习记录
timem.add(
messages=[
{"role": "user", "content": question},
{"role": "assistant", "content": reply}
],
user_id=user_id
)
return reply
```
### 4. 主动标记薄弱点
```python
def mark_weakness(user_id: str, topic: str, detail: str):
"""学生答错时,主动写入薄弱点标记"""
timem.add(
messages=[{
"role": "system",
"content": f"[薄弱点标记] 主题:{topic},问题:{detail}"
}],
user_id=user_id
)
def mark_mastered(user_id: str, topic: str):
"""学生连续答对时,写入掌握标记"""
timem.add(
messages=[{
"role": "system",
"content": f"[已掌握] {topic},连续答对,无需重复讲解"
}],
user_id=user_id
)
```
### 5. 生成学习报告
```python
def generate_learning_report(user_id: str) -> str:
"""基于记忆层生成学习进度报告"""
memories = timem.search(
query="学习进度 薄弱点 掌握情况",
user_id=user_id,
top_k=10
)
if not memories:
return "暂无学习记录"
lines = [f"- {m['content']}" for m in memories]
memory_text = "\n".join(lines)
response = llm.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": f"根据以下学习记录,生成一份结构化的学习进度报告,包含:已掌握模块、薄弱点、建议下一步学习方向。\n\n{memory_text}"
}]
)
return response.choices[0].message.content
```
---
## 模拟真实学习场景
```python
if __name__ == "__main__":
STUDENT_ID = "student_001"
# 第一天:学递归
r1 = tutor_reply(STUDENT_ID, "递归是什么?能举个例子吗?")
print(r1)
# 学生答对了
mark_mastered(STUDENT_ID, "递归基础概念")
# 第二天:做题出错
r2 = tutor_reply(STUDENT_ID, "为什么我的递归代码总是栈溢出?")
print(r2)
mark_weakness(STUDENT_ID, "递归终止条件", "忘记设置 base case 导致无限递归")
# 一周后:AI 记得薄弱点
r3 = tutor_reply(STUDENT_ID, "我来练习一道树的遍历题")
print(r3)
# 预期:AI 记得「递归终止条件」是薄弱点,出题时重点考察这个方向
# 生成学习报告
report = generate_learning_report(STUDENT_ID)
print("\n=== 学习报告 ===\n", report)
```
---
## 效果对比
| 场景 | 普通 AI 助手 | TiMem 学习助手 |
|------|------------|----------------|
| 已掌握的概念 | 重复讲解 | 跳过,节省时间 |
| 同类型题连续出错 | 无感知 | 标记薄弱点,重点讲 |
| 跨天学习 | 从零开始 | 接续上次进度 |
| 学习报告 | 无 | 自动生成进度摘要 |
| 讲解风格适配 | 固定模板 | 根据偏好调整 |
---
## 进阶:自适应刷题系统
基于记忆层,可以进一步实现自适应出题:
```python
def adaptive_quiz(user_id: str, subject: str) -> str:
"""根据薄弱点历史,智能选题"""
memories = timem.search(
query=f"{subject} 薄弱点 错误",
user_id=user_id,
top_k=5
)
weakness_context = ""
if memories:
lines = [f"- {m['content']}" for m in memories]
weakness_context = "该学生的历史薄弱点:\n" + "\n".join(lines)
prompt = f"为学生出一道 {subject} 练习题。{weakness_context}\n要求:针对薄弱点出题,难度适中,附上解题思路。"
response = llm.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
```
---
## 小结
真正有用的 AI 学习助手 = 记住你学过什么 + 知道你哪里薄弱 + 随时间积累的个性化画像。
TiMem 的五层时序记忆树让这件事从「理论上可行」变成了「下午能跑起来」:
- **自动归纳**:每次学习后自动生成摘要,无需手动维护
- **时序感知**:近期薄弱点权重更高,旧的已掌握内容自动降权
- **52% Token 节省**:随着学习历史积累,成本不会线性增长
完整代码和文档:
https://github.com/TiMEM-AI/timem
---
如果你对 AI 记忆技术感兴趣,欢迎访问 TiMem 的 GitHub 仓库:
em.cloud
技术文档:https://docs.timem.cloud
https://github.com/TiMEM-AI/timem
给我们一个 Star,你的支持是我们持续开源的最大动力!
在线体验:https://playground.tim