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>
15 KiB
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_id与ai_mind_user_id/persona_id的绑定。- external token 的服务端保存、加密、轮换和禁用。
- scopes 控制,例如
profile_read、life_stream_write、persona_chat。 - 每次调用的超时、重试、熔断和 fail-open。
- 数据投递前的摘要、脱敏和隐私分级。
- 审计日志:谁、何时、把什么摘要投给了 AI Mind,聊天注入了什么画像。
- 缓存 AI Mind profile,避免每条消息都实时请求。
5. 身份映射设计
身份映射是最大风险点。Memind 与 AI Mind 不应共享数据库表,也不应直接复用彼此的主键。
建议使用独立绑定关系:
memind_ai_mind_bindings
建议字段:
idmemind_user_idai_mind_user_iddefault_persona_idpersona_external_tokenexternal_user_idenabledscopescreated_atupdated_atlast_profile_sync_atlast_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_chatscope。
普通 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 开始基于摘要事件生成画像。
动作:
- 只对内部测试用户启用。
- 只投递摘要,不投递完整原文。
- 事件必须带
source、event_type、privacy_class、external_user_id。 - 失败只记录,不影响主链路。
验收:
- 投递不会阻塞 H5/服务号。
- AI Mind 能生成可解释 profile evidence。
- 可以按用户关闭投递。
- 可以追踪每条投递来源。
阶段 2:轻量聊天画像注入
目标:让 AI Mind 轻微影响聊天风格和上下文理解。
动作:
- 仅内部灰度。
- 每次聊天最多注入 300 到 800 字 Profile Context。
- 注入内容只包含偏好、风格、长期目标、注意事项。
- 不允许包含工具指令、权限指令、发布指令。
- 每次注入写审计记录。
验收:
- 回复质量提升可感知。
- 不影响工具权限和生产边界。
- AI Mind 失败时自动降级。
- 可以按用户、按入口关闭。
阶段 3:Persona 模式
目标:提供独立的人格/数字分身体验。
动作:
- 新增独立入口或显式模式。
- 调用 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
}
灰度顺序:
- 本地开发环境。
- 内部测试用户。
- 103 内部账号。
- 少量真实用户 opt-in。
- 正式用户分批启用。
任何阶段都必须能一键关闭 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. 推荐下一步
在不写代码前,建议先完成这些设计决策:
- 明确 AI Mind 的第一阶段只做 profile read,还是同时做 life_stream write。
- 明确默认 persona 是“用户数字分身”还是“陪伴型助手人格”。
- 明确哪些事件可以投递 AI Mind,哪些永远不投递。
- 明确用户是否需要显式授权。
- 明确 Profile Context 的最大长度和字段。
- 明确审计日志中记录哪些信息。
- 明确 103 灰度账号和回滚开关。
- 明确 AI Mind 故障时的 UI 表现。
建议第一版实施只做:
AI Mind profile read + 内部测试用户绑定 + 画像摘要展示
确认画像质量和身份绑定可靠后,再进入:
摘要级 life_stream 投递 + 轻量聊天画像注入
这条路线最稳:既能让 AI Mind 开始产生价值,又不会撬动 Memind 现有生产功能体系。