Files
memind/docs/ai-mind-memind-integration-architecture.md
T
john 32fb2cdeaf feat: chat uploads, vision turn isolation, and MindSpace agent improvements
Add chat file/image upload UX, attachment proxying, vision thumbnails, and per-turn image scoping so agents only use the current upload. Extend MindSpace asset context, billing token state, OA/scenario verify scripts, and related runtime config.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-11 00:23:01 +08:00

15 KiB
Raw Blame History

AI Mind 与 Memind 整合架构分析文档

日期:2026-07-10
状态:架构分析与实施方案;未改代码、未碰生产、未读写用户数据
适用范围:Memind H5、服务号聊天、MindSpace、Memory V2、AI Mind 画像与 persona 能力

1. 核心结论

建议把 AI Mind 接成 Memind 的“画像与人格洞察旁路服务”,而不是接成新的聊天主链路、主记忆体或生产执行系统。

推荐边界:

  • Memind 继续负责入口、账号、权限、会话、H5、服务号、MindSpace、页面发布、工具执行、计费和生产链路。
  • Memory V2 继续负责 Memind 当前记忆入口,保持 pgvector resolve、legacy fallback 等现有体系。
  • AI Mind 负责用户画像、性格分析、沟通偏好、长期目标、life_stream 分析、persona profile 和轻量上下文建议。
  • Bridge Layer 负责身份映射、授权、限流、缓存、降级、审计和数据分级。

一句话方案:

AI Mind 做“懂用户的人格画像脑”,Memind 继续做“入口、权限、会话、工具和生产执行系统”。

2. 当前担心与设计目标

当前主要担心是:AI Mind 一旦接入,会不会影响 Memind 已经稳定运行的 H5、服务号、MindSpace、Memory V2、pgvector、legacy 记忆和 goosed 会话体系。

因此设计目标不是“深度替换”,而是“可关闭的旁路增强”:

  • 不替换现有聊天回复链路。
  • 不替换现有 Memory V2 主链路。
  • 不让 AI Mind 直接触发工具、写文件、发布页面或修改用户数据。
  • 不让 AI Mind 成为 H5、服务号、MindSpace 的强依赖。
  • AI Mind 不可用时,Memind 原功能必须正常。
  • 所有接入能力必须用户级可开关、可灰度、可审计、可回滚。

3. 推荐总体架构

用户
  |
  v
Memind H5 / 服务号 / MindSpace
  |
  | 现有主链路
  v
Memind Chat / Session / Goose / Memory V2
  |-- pgvector: 聊天语义召回
  |-- legacy conversation-memory: 写入与回退
  |-- mem0/letta/neo4j 等: 可用但不应默认接管主链路
  |
  v
正常回复、页面生成、工具执行、发布


旁路增强链路

Memind 重要摘要事件
  |
  v
AI Mind Bridge Layer
  |-- 身份映射
  |-- Token 管理
  |-- 数据分级
  |-- 调用限流
  |-- 超时降级
  |-- 审计日志
  |
  v
AI Mind
  |-- user profile
  |-- persona profile
  |-- life_stream
  |-- personality / preference analysis
  |-- lightweight persona context
  |
  v
Memind 只读取摘要级画像上下文

4. 能力分层

4.1 Memind 保留的能力

Memind 不应让渡以下能力:

  • 用户登录、权限、用户空间归属。
  • H5 和服务号消息入口。
  • goosed / agent session 创建、恢复、路由和工具策略。
  • MindSpace 页面生成、保存、发布、公开链接。
  • 生产数据写入和生产发布流程。
  • 当前 Memory V2 的主配置和回退路径。
  • 计费、额度、服务隔离和审计。

4.2 AI Mind 提供的能力

AI Mind 适合提供:

  • 用户画像:长期偏好、沟通风格、兴趣、常见目标。
  • 性格分析:表达方式、决策风格、风险偏好。
  • 轻量 persona context:给 Memind 聊天提供简短、可审计的上下文提示。
  • life_stream 分析:对重要摘要事件做长期沉淀。
  • profile evidence:为画像结论保留证据来源。
  • 可选 persona chat:只在用户主动进入人格/数字分身模式时使用。

4.3 Bridge Layer 的职责

Bridge Layer 是风险控制点,不应只是一个 HTTP client。

它需要负责:

  • memind_user_idai_mind_user_id/persona_id 的绑定。
  • external token 的服务端保存、加密、轮换和禁用。
  • scopes 控制,例如 profile_readlife_stream_writepersona_chat
  • 每次调用的超时、重试、熔断和 fail-open。
  • 数据投递前的摘要、脱敏和隐私分级。
  • 审计日志:谁、何时、把什么摘要投给了 AI Mind,聊天注入了什么画像。
  • 缓存 AI Mind profile,避免每条消息都实时请求。

5. 身份映射设计

身份映射是最大风险点。Memind 与 AI Mind 不应共享数据库表,也不应直接复用彼此的主键。

建议使用独立绑定关系:

memind_ai_mind_bindings

建议字段:

  • id
  • memind_user_id
  • ai_mind_user_id
  • default_persona_id
  • persona_external_token
  • external_user_id
  • enabled
  • scopes
  • created_at
  • updated_at
  • last_profile_sync_at
  • last_life_stream_event_at

设计约束:

  • memind_user_id 对应 Memind 的 h5_users.id
  • ai_mind_user_id 对应 AI Mind 用户。
  • default_persona_id 对应 AI Mind 默认 persona。
  • external_user_id 建议使用稳定格式:memind:<h5_user_id>
  • 前端永远不拿 external token。
  • 禁止用邮箱、openid、昵称等非稳定字段做主映射。
  • 所有调用前必须校验 binding 是否启用、scope 是否允许。

6. 数据流设计

6.1 Profile 读取流

目标:Memind 读取 AI Mind 的用户画像摘要,但不影响主聊天。

Memind 用户进入 H5 / 服务号
  -> Bridge 检查用户是否绑定 AI Mind
  -> 若已绑定且 profile_read 允许
  -> 拉取或读取缓存的 AI Mind profile summary
  -> 返回 Memind 内部可用的轻量 Profile Context

建议 Profile Context 结构:

{
  "enabled": true,
  "source": "ai_mind",
  "confidence": 0.82,
  "summary": "用户偏好直接、执行导向的建议,关注生产稳定性和边界控制。",
  "communication_style": "先结论后细节,明确风险与边界",
  "long_term_goals": ["稳定接入记忆系统", "保护现有生产链路"],
  "do_not_assume": ["不要自动发布", "不要修改生产数据"],
  "updated_at": "2026-07-10T00:00:00Z"
}

注入聊天时必须限制长度,例如 300 到 800 字,并且只作为“理解用户偏好”的提示,不允许覆盖系统策略。

6.2 Life Stream 投递流

目标:让 AI Mind 逐步学习用户,但不把所有原始聊天无脑同步过去。

Memind 产生高价值事件
  -> 本地先生成摘要
  -> 标记 source / privacy_class / event_type / user_id / session_id
  -> Bridge 校验 scope 与隐私等级
  -> 异步投递 AI Mind life_stream
  -> 投递失败只记录,不影响用户体验

适合投递的事件:

  • 用户主动保存的重要资料摘要。
  • MindSpace 页面发布摘要。
  • 用户明确表达的长期偏好或目标。
  • 服务号中明显有长期价值的摘要。
  • 用户主动要求“记住”的内容。

不建议投递的内容:

  • 完整原始聊天流水。
  • 临时任务细节。
  • 一次性验证码、密钥、隐私内容。
  • 未经过摘要和分级的服务号原文。
  • 页面生成过程中的内部工具日志。

6.3 轻量聊天介入流

目标:让 AI Mind 影响语气和理解,不影响执行和主记忆。

用户发起聊天
  -> Memind 正常解析用户、会话、权限
  -> Memory V2 正常 resolve 当前记忆
  -> Bridge 获取短 Profile Context
  -> 将 Profile Context 作为低优先级用户画像提示
  -> 正常走 Memind / Goose 回复

硬约束:

  • AI Mind context 不能覆盖系统提示。
  • AI Mind context 不能增加工具权限。
  • AI Mind context 不能改变发布、写文件、生产操作策略。
  • AI Mind 超时或失败时直接跳过。
  • 每次注入内容都应可审计。

6.4 Persona Chat 可选流

persona chat 不应默认替代普通聊天。

只在以下情况下使用:

  • 用户进入“数字分身”或“人格陪伴”入口。
  • 用户明确选择某个 persona。
  • 内部灰度账号启用。
  • 管理后台明确打开 persona_chat scope。

普通 H5 和服务号默认仍走 Memind 当前聊天链路。

7. 与 Memory V2 的关系

当前建议不是把 AI Mind 接到 Memory V2 主 backend。

推荐关系:

legacy conversation-memory
  -> 稳定记录和回退

pgvector
  -> 当前聊天语义召回

mem0
  -> 可作为候选记忆提取/压缩能力,但不负责 resolve

AI Mind
  -> 用户画像、性格、人生流、persona profile
  -> 通过 Bridge 产出轻量 Profile Context

AI Mind 的 Profile Context 可以作为聊天上下文的一小段附加信息,但不应直接替代:

  • memoryV2.resolve(...)
  • conversationMemoryService
  • pgvector 检索
  • legacy 写入与 compact

这样可以避免三类问题:

  • 记忆来源混乱。
  • 召回结果不可解释。
  • 回滚时不知道关闭哪个系统。

8. 分阶段实施方案

阶段 0:只读画像验证

目标:验证 AI Mind 画像质量,不影响任何用户回复。

动作:

  • 定义 AI Mind Profile Context 数据格式。
  • 定义绑定关系和 scope 语义。
  • 对内部测试用户建立绑定。
  • Memind 后台只读拉取 AI Mind profile。
  • 不注入聊天,不投递生产用户数据。

验收:

  • 能正确绑定用户。
  • 能拉取画像摘要。
  • 画像不会串用户。
  • AI Mind 不可用时 Memind 无感。

阶段 1:异步 life_stream 旁路

目标:让 AI Mind 开始基于摘要事件生成画像。

动作:

  • 只对内部测试用户启用。
  • 只投递摘要,不投递完整原文。
  • 事件必须带 sourceevent_typeprivacy_classexternal_user_id
  • 失败只记录,不影响主链路。

验收:

  • 投递不会阻塞 H5/服务号。
  • AI Mind 能生成可解释 profile evidence。
  • 可以按用户关闭投递。
  • 可以追踪每条投递来源。

阶段 2:轻量聊天画像注入

目标:让 AI Mind 轻微影响聊天风格和上下文理解。

动作:

  • 仅内部灰度。
  • 每次聊天最多注入 300 到 800 字 Profile Context。
  • 注入内容只包含偏好、风格、长期目标、注意事项。
  • 不允许包含工具指令、权限指令、发布指令。
  • 每次注入写审计记录。

验收:

  • 回复质量提升可感知。
  • 不影响工具权限和生产边界。
  • AI Mind 失败时自动降级。
  • 可以按用户、按入口关闭。

阶段 3Persona 模式

目标:提供独立的人格/数字分身体验。

动作:

  • 新增独立入口或显式模式。
  • 调用 AI Mind persona external chat。
  • 与普通聊天明确区分。
  • 不默认接管服务号和 H5 普通聊天。

验收:

  • persona 回复与普通 Memind 回复边界清楚。
  • 用户知道自己进入了人格模式。
  • 可以退出 persona 模式回到普通聊天。
  • persona 不触发 Memind 工具执行。

阶段 4:更深融合前评审

只有当前三阶段稳定后,才讨论更深融合。

评审内容:

  • 是否允许 AI Mind 画像进入 Memory V2 的某个只读 backend。
  • 是否允许 AI Mind profile 参与 chat intent router。
  • 是否允许 MindSpace 页面摘要成为 AI Mind knowledge。
  • 是否需要用户可视化管理“AI Mind 记住了什么”。
  • 是否需要数据删除、纠错、导出流程。

9. 开关与灰度建议

建议所有能力都具备独立开关。

AI_MIND_ENABLED=0/1
AI_MIND_PROFILE_READ_ENABLED=0/1
AI_MIND_CHAT_INJECTION_ENABLED=0/1
AI_MIND_LIFE_STREAM_WRITE_ENABLED=0/1
AI_MIND_PERSONA_CHAT_ENABLED=0/1
AI_MIND_FAIL_OPEN=1
AI_MIND_TIMEOUT_MS=1500
AI_MIND_MAX_CONTEXT_CHARS=800

用户级 scope 建议:

{
  "profile_read": true,
  "profile_inject": false,
  "life_stream_write": false,
  "persona_chat": false
}

灰度顺序:

  1. 本地开发环境。
  2. 内部测试用户。
  3. 103 内部账号。
  4. 少量真实用户 opt-in。
  5. 正式用户分批启用。

任何阶段都必须能一键关闭 AI Mind,不影响 Memind 主功能。

10. 风险清单

10.1 用户串号

风险:错误绑定导致 A 用户画像注入 B 用户聊天。

缓解:

  • 独立绑定表。
  • 所有调用带 external_user_id=memind:<h5_user_id>
  • 调用前校验登录用户与 binding。
  • 审计 profile 来源。

10.2 记忆污染

风险:临时信息、错误信息、敏感内容进入 AI Mind 长期画像。

缓解:

  • 先摘要,再投递。
  • 明确 privacy_class。
  • 只投递高价值事件。
  • 支持用户删除、纠错、关闭。

10.3 主链路被拖慢

风险:AI Mind 响应慢导致 H5 或服务号回复变慢。

缓解:

  • 画像缓存。
  • 短超时。
  • fail-open。
  • life_stream 异步投递。

10.4 权限污染

风险:AI Mind 输出被误当成系统指令,影响工具或生产操作。

缓解:

  • Profile Context 只作为低优先级用户画像。
  • 禁止 AI Mind 返回工具权限。
  • 禁止 AI Mind context 覆盖系统提示。
  • 明确上下文模板边界。

10.5 隐私与合规

风险:用户不知道哪些内容被用于画像。

缓解:

  • 用户授权开关。
  • 可查看、可删除、可纠错。
  • 敏感内容默认不投递。
  • 审计记录可追踪。

11. 验收指标

技术指标:

  • AI Mind 故障时 Memind 主链路正常。
  • profile 拉取 P95 小于目标阈值,超时自动跳过。
  • life_stream 投递失败不影响用户请求。
  • 注入上下文长度受控。
  • 所有调用可按用户追踪。

产品指标:

  • 用户感觉回复更懂自己。
  • 沟通风格更稳定。
  • 不出现明显串号、幻觉画像、过度推断。
  • 服务号和 H5 的普通使用不受影响。

安全指标:

  • external token 不出现在前端。
  • 生产操作权限不受 AI Mind 影响。
  • 用户可以关闭 AI Mind 增强。
  • 删除/纠错路径明确。

12. 不建议方案

不建议:

  • 直接合并 Memind 和 AI Mind 项目。
  • 直接共享数据库表。
  • 直接把 AI Mind 接成 Memory V2 主 backend。
  • 直接替换 pgvector 或 legacy conversation-memory。
  • 默认让 AI Mind 接管 H5/服务号普通聊天。
  • 每条服务号消息都同步完整原文。
  • 让 AI Mind 直接触发工具、发布页面或写生产数据。
  • 没有审计和用户级开关就面向全量生产用户启用。

13. 推荐下一步

在不写代码前,建议先完成这些设计决策:

  1. 明确 AI Mind 的第一阶段只做 profile read,还是同时做 life_stream write。
  2. 明确默认 persona 是“用户数字分身”还是“陪伴型助手人格”。
  3. 明确哪些事件可以投递 AI Mind,哪些永远不投递。
  4. 明确用户是否需要显式授权。
  5. 明确 Profile Context 的最大长度和字段。
  6. 明确审计日志中记录哪些信息。
  7. 明确 103 灰度账号和回滚开关。
  8. 明确 AI Mind 故障时的 UI 表现。

建议第一版实施只做:

AI Mind profile read + 内部测试用户绑定 + 画像摘要展示

确认画像质量和身份绑定可靠后,再进入:

摘要级 life_stream 投递 + 轻量聊天画像注入

这条路线最稳:既能让 AI Mind 开始产生价值,又不会撬动 Memind 现有生产功能体系。