日期:2026-06-22 | PM:张一章 对照对象:MetaPact(仓库源码实读)↔
11/PRD/持久记忆框架设计_代聊系统_v0.2.md一句话:MetaPact 是「纯文件 + 双层记忆 + 单角色单用户」;你的框架是「两平面 + 三作用域 + 百万×万多租户隔离」。思想多处同源,实现量级完全不同。
| MetaPact | 你的 v0.2 | |
|---|---|---|
| 规模 | 单角色 × 单用户(一次部署=一个分身) | 百万用户 × 万创作者,多对多,多 persona |
| 隔离单元 | 无(就一个人) | Relationship = (UserFacet × CreatorPersona) |
| 存储 | markdown 文件 + memory/日期.md |
DB + Redis + 向量索引(分区/冷热) |
| 召回 | 全量读今日+昨日+MEMORY.md | BM25+向量 RRF + 时间衰减,先平面A裁剪再 ANN |
| 关系建模 | 无 | 身份/关系图(来自结构化元数据,非对话抽取) |
| 合规 | 成人向、可欺骗 | 已披露 AI、创作者在环、不可欺骗、不可串台 |
结论:MetaPact 是"单租户玩具级"的优雅实现,可作架构思想样本,不能作你的底座。 它验证了你几条设计的正确性,也提供 3 个你 PRD 还没写的轻模块。
| 维度 | MetaPact 做法 | 你 v0.2 做法 | 判定 |
|---|---|---|---|
| 记忆分层 | 双层:memory/日期.md(原始日志) + MEMORY.md(蒸馏) |
三作用域:PersonaProfile广播 / RelationshipMemory私有 / GlobalUserProfile受控 | 思想抄:它的"原始日志+蒸馏长期"正好对应你 RelationshipMemory 的 L2/L3;你比它多了多租户三作用域,对 |
| 写入管线 | memory-write.sh --summary/--long,对话后滚动更新 MEMORY |
事件→去重→隐私过滤→存原始;会话结束规则预抽+一次 LLM 归纳 | 印证不抄实现:你"绝不每条调 LLM"是规模刚需,它单用户无所谓 |
| 召回 | 把今日+昨日+MEMORY 全量塞 prompt | 向量+BM25+时间+重要度,Top-K(3-5) | 不能抄:全量塞在多用户/长历史下爆 token,你必须向量召回 |
| 隔离/隐私 | MEMORY.md 仅主会话加载,群聊不加载 |
RelationshipMemory 严格按 relationship_id 隔离,GlobalUserProfile 默认不下放 | 强印证:它的"按会话类型决定加载哪层"= 你不可串台的运行时落地,可抄成显式开关 |
| 人格模型 | SOUL(稳定) + custom.md(用户层,升级不覆盖) + 5 阶段好感 |
CreatorPersonaProfile(固定设定,按 persona 广播) | 抄分层:给 PersonaProfile 加"custom 覆盖层"(运营可改、模板升级不覆盖) |
| 情绪/主动 | heartbeat-check.sh cron 每30min,思念值≥80 主动发;mood-recovery 收消息回血;阶段门控频率 |
(PRD 未覆盖主动触达) | 可抄(轻):这是你代聊"AI主动破冰/召回"的现成轻实现,但要挂 relationship + 受确权/合规约束 |
| prompt 组装 | 启动按序读 SOUL→USER→memory→MEMORY | 注入 = PersonaProfile + RelationshipMemory TopK + (授权)GlobalUserProfile | 同源:你的注入模板已是它的多租户版,无需改 |
| 存储介质 | 纯文件、可版本化、全本地 | DB+Redis+向量 | 不能抄:文件方案撑不住百万×万 |
| 多平台/多模态 | cc-connect 接十几个 IM + 6 个媒体 skill | 平台方自有渠道 | 不抄:你是平台方,不需要第三方 IM hack 与成人媒体栈 |
状态文件(思念值) + 定时检查(阈值触发) + 收到消息回血。落到代聊:挂在 relationship_id 维度,触发"AI主动破冰/召回沉默用户";但频率/内容受**确权 + 合规(不得伪装真人)**约束,对应 AI-01~06。custom.md 升级不覆盖 = 直接可抄的工程纪律)。| MetaPact(单租户文件) | 补到你百万×万 |
|---|---|
memory/日期.md 原始日志 |
→ DB 原始事件表,按 relationship_id 分区 + 冷热分层(Redis 热 / 冷存 rehydrate) |
MEMORY.md 全量读 |
→ BM25+向量 RRF Top-K;先用平面A(relationship_id)裁剪搜索空间再 ANN |
| 单一 MEMORY 文件 | → 三作用域(PersonaProfile 广播 / RelationshipMemory 私有 / GlobalUserProfile 受控) |
| "主会话才读 MEMORY" | → 确权隔离(relationship_id)+ GlobalUserProfile 显式授权才下放 |
| cron 每 30min 跑单 agent | → 事件驱动 + 异步队列,按 relationship 批处理,绝不每条 LLM |
custom.md 单文件 |
→ persona 级 custom 覆盖层(运营可改、模板升级不覆盖) |
| 阶段好感表(固定脚本) | → persona 模板字段 + 与你 用户分级 T-01~T-10 联动的策略,而非硬编码阶段 |
MetaPact 对你的价值 = 架构思想样本 + 3 个轻模块(主动触达 / custom 覆盖层 / 上下文门控加载),且反向印证了你"隔离优先、绝不每条 LLM、按上下文决定加载"几条核心设计是对的。但它的存储、召回、单租户模型在你百万×万多对多场景下全部需要升级替换——按上表补齐即可。它不是底座,是参照系。