Some checks are pending
Build and Push Docker Images / changes (push) Waiting to run
Build and Push Docker Images / build-backend (push) Blocked by required conditions
Build and Push Docker Images / build-frontend (push) Blocked by required conditions
Build and Push Docker Images / build-admin-frontend (push) Blocked by required conditions
178 lines
4.4 KiB
Markdown
178 lines
4.4 KiB
Markdown
# 记忆与个性化技术方案建议(PRD 讨论稿)
|
||
|
||
> 目标:给 DreamWeaver 的“记忆与个性化”提供可落地的技术路径与产品取舍依据,用于 PRD 细化。
|
||
|
||
---
|
||
|
||
## 1. 总体结论(推荐方案)
|
||
|
||
**v1 推荐:混合方案(结构化 DB + 轻量语义检索)**
|
||
|
||
- **DB** 作为权威事实与可解释记忆(孩子档案、宇宙设定、成就、偏好权重)。
|
||
- **RAG** 用于非结构化内容(故事摘要、互动摘要、近期期望),辅助个性化提示词。
|
||
|
||
**原因**
|
||
- 纯 DB 可控但缺乏语义弹性;纯 RAG 难以稳定控制与审计。
|
||
- 混合方案能在“可解释 + 个性化”之间取到最佳平衡。
|
||
|
||
---
|
||
|
||
## 2. DB vs RAG:技术与产品对比
|
||
|
||
### 2.1 DB(结构化记忆)
|
||
|
||
**适用内容**
|
||
- 孩子档案(基础信息)
|
||
- 兴趣标签与成长主题
|
||
- 故事宇宙设定(主角、世界观、常驻角色)
|
||
- 成就(可审核、可追溯)
|
||
|
||
**优点**
|
||
- 高可解释性
|
||
- 变更可追踪、可回滚
|
||
- 便于用户管理(家长可编辑)
|
||
|
||
**缺点**
|
||
- 灵活性不足
|
||
- 难以覆盖“隐性偏好”(比如叙事风格喜好)
|
||
|
||
### 2.2 RAG(语义记忆)
|
||
|
||
**适用内容**
|
||
- 故事摘要
|
||
- 互动摘要(“最近更喜欢冒险故事”)
|
||
- 非结构化日志
|
||
|
||
**优点**
|
||
- 具备语义召回能力
|
||
- 适合挖掘“隐含偏好”
|
||
|
||
**缺点**
|
||
- 可解释性弱
|
||
- 成本与性能压力大
|
||
- 隐私风险更高
|
||
|
||
---
|
||
|
||
## 3. 时序性与记忆衰减(建议必须有)
|
||
|
||
**核心观点**:孩子兴趣会随时间变化,必须引入时间衰减。
|
||
|
||
**做法建议**
|
||
- 所有记忆项带 `created_at` / `last_used_at`
|
||
- 引入权重衰减模型:
|
||
- 近 7 天:高权重
|
||
- 30 天:中权重
|
||
- 90 天:低权重
|
||
- 超过 90 天:降权或淘汰
|
||
|
||
**价值**
|
||
- 避免旧偏好过度影响新故事
|
||
- 体现成长与兴趣演变
|
||
|
||
---
|
||
|
||
## 4. 分层记忆(建议引入)
|
||
|
||
建议采用三层结构:
|
||
|
||
### 4.1 短期记忆(Session)
|
||
- 当前生成上下文(关键词、选定档案/宇宙)
|
||
- 生命周期:仅本次请求有效
|
||
|
||
### 4.2 中期记忆(近期偏好)
|
||
- 最近 5-10 次故事生成/阅读偏好
|
||
- 生命周期:30-60 天
|
||
|
||
### 4.3 长期记忆(稳定事实)
|
||
- 档案、宇宙、核心兴趣
|
||
- 生命周期:长期可编辑
|
||
|
||
**价值**
|
||
- 既保留稳定设定,又能捕捉近期变化
|
||
|
||
---
|
||
|
||
## 5. Agent 动态判断是否写入记忆
|
||
|
||
**建议:规则优先 + 模型辅助**
|
||
|
||
流程示例:
|
||
1. 命中规则(如完整阅读/重复播放)→ 进入候选
|
||
2. LLM 抽取结构化信息 + 置信度
|
||
3. 置信度不足 → 不写入
|
||
|
||
**优点**
|
||
- 避免模型“乱记忆”
|
||
- 降低噪声,提高记忆质量
|
||
|
||
---
|
||
|
||
## 6. 推荐的记忆数据结构
|
||
|
||
### 6.1 结构化表(DB)
|
||
|
||
- `child_profiles`:基础信息、兴趣、成长主题
|
||
- `story_universes`:主角、角色、世界观、成就
|
||
- `reading_events`:阅读/跳过/重播行为日志
|
||
- `memory_items`:抽象记忆表(type, value, confidence, ttl)
|
||
|
||
### 6.2 语义检索(RAG)
|
||
|
||
- 存储内容:故事摘要、成就摘要、行为总结
|
||
- 向量库:**pgvector**(成本低、易部署)
|
||
- 检索过滤:`child_id` / `universe_id` / 时间窗口
|
||
|
||
---
|
||
|
||
## 7. 关键产品问题(需明确)
|
||
|
||
1) **记忆是否可编辑**
|
||
- 家长是否能查看、修改、删除系统记忆?
|
||
|
||
2) **跨孩子隔离**
|
||
- 同账号多孩子的记忆是否完全隔离(推荐隔离)
|
||
|
||
3) **隐私与合规**
|
||
- 哪些数据进入记忆?是否脱敏?是否加密?
|
||
|
||
4) **性能与成本**
|
||
- RAG 查询是否影响生成时延?
|
||
- 是否需要缓存与批量检索?
|
||
|
||
5) **效果评估**
|
||
- 记忆是否提高故事满意度?
|
||
- 需要 A/B 或指标体系吗?
|
||
|
||
---
|
||
|
||
## 8. 推荐实施路线
|
||
|
||
### v1(1-2 个月)
|
||
- DB 记忆为主,RAG 只做轻量补充
|
||
- 引入时序衰减
|
||
- 记忆来源:用户显式输入 + 行为日志
|
||
|
||
### v2(2-3 个月)
|
||
- 引入 Agent 记忆抽取与置信度
|
||
- 记忆管理界面(家长可编辑)
|
||
- 更精细的个性化推荐
|
||
|
||
---
|
||
|
||
## 9. 需要确认的决定点
|
||
|
||
- 是否采用混合方案(DB + RAG)
|
||
- RAG 的检索范围(故事摘要 / 行为摘要 / 成就)
|
||
- 记忆分层与衰减规则
|
||
- Agent 记忆写入规则与阈值
|
||
- 家长可见/可控的记忆管理策略
|
||
|
||
---
|
||
|
||
如确认以上方向,我可以进一步输出:
|
||
- PRD 里的“记忆系统”完整章节
|
||
- 数据模型(含字段 + 时序衰减)
|
||
- 交互与界面草案
|
||
- 后端实现拆解(任务清单 + 里程碑)
|