memory已上线

Andrew / Talk to Ji

让AI真正"记住"用户的个性化助手

探索 AI 长期记忆机制,构建真正了解用户的个性化对话助手

Next.jsDashScope/QwenSupabase流式对话

Andrew / Talk to Ji

项目背景

2024 年以来,主流 AI 助手(ChatGPT、Claude、Gemini)在对话能力上快速进化,但在"记住用户"这件事上仍然存在明显缺陷:

  • ChatGPT Memory:支持自动记忆,但用户无法精细控制哪些被记住、哪些应遗忘,记忆管理黑箱化。
  • Claude Projects:依赖用户手动上传文档作为上下文,没有自动提取和持久化记忆的能力。
  • Gemini:依赖 Google 生态数据(日历、邮件等),而非从对话本身学习用户偏好。

这意味着一个产品空白:没有一个 AI 助手能在对话中自动学习用户、持久化记忆、并让用户完全掌控自己的记忆数据。

Andrew 就是为了填补这个空白而生的产品:一个真正"记住你"的 AI 助手。

需求洞察

通过对用户与 AI 助手交互场景的分析,提炼出三个核心需求:

  1. 不想重复自我介绍:用户希望 AI 记住自己的背景、偏好、过往对话中的关键信息,而不是每次都从零开始。
  2. 期待个性化建议:基于对用户的了解,AI 应该能给出更贴合个人情况的回答,而非通用模板式回复。
  3. 掌控被记住的内容:用户需要清晰地知道 AI 记住了什么,并拥有查看、编辑、删除记忆的完整权限。

方案设计

围绕上述需求,设计了四个核心模块:

  • 记忆提取(Memory Extraction):对话结束后,LLM 自动从对话中提取值得记忆的信息(偏好、事实、习惯等)。
  • 记忆注入(Memory Injection):每次对话开始时,将已有记忆注入 system prompt,让 AI 在回答时"带着记忆思考"。
  • 记忆管理(Memory Management):用户可在记忆面板中查看所有记忆条目,支持逐条删除、全局开关。
  • 人格系统(Persona System):通过 soul.md 文件定义 AI 的性格、语气和回应风格,实现可插拔的人格切换。

双模式设计:Andrew × Ji

项目包含两个模式,共享同一套技术基础设施,仅通过 soul.md 切换人格:

Andrew 模式(通用助手):定位为一个友好、有记忆的通用 AI 助手。soul.md 定义了其温和、专业、有同理心的语气风格。适用于日常对话、问答、建议等场景。

Talk to Ji 模式(真人人格):基于真实微博语料分析,还原一个真实人物的表达风格和思维方式。soul.md 从微博内容中提炼出语气、用词习惯、价值观等特征。展示了人格系统的灵活性——同一架构可以承载完全不同的"灵魂"。

两个模式的关键设计在于:底层的记忆系统、对话引擎、流式响应完全复用,只有 soul.md 不同。这验证了人格系统的可插拔性。

技术架构

前端:Next.js App Router + Tailwind CSS + Streaming UI + localStorage 本地状态管理。

后端:API Routes 处理请求、Persona Router 路由人格、Memory Extract 提取记忆 → Memory Inject 注入记忆、soul.md Loader 加载人格定义。

基础设施:Qwen3-Plus(通过 DashScope API)作为 LLM、Supabase Postgres 持久化存储、Vercel Edge 部署、JSON Fallback 作为降级方案。

数据流:用户消息 → Persona 路由 → 记忆注入 → LLM 生成 → 流式响应 → 后台记忆提取。

记忆系统设计细节

记忆系统的四个关键设计决策:

提取策略:采用 LLM 自动提取方案。备选方案包括规则匹配提取和用户手动确认。选择理由:规则匹配覆盖面有限,手动确认打断对话流,LLM 提取能理解语义且对用户透明。

注入策略:当记忆条目 ≤20 条时采用全量注入。备选方案为 Top-K 向量检索。选择理由:早期记忆数量有限,全量注入实现简单且不丢失信息;当记忆规模增长后再迁移到向量检索方案。

去重机制:采用基于 Key 的槽位更新(如"职业"只保留最新值)。备选方案包括内容相似度去重和不做去重。选择理由:Key-based 方案语义明确、可控性强,避免记忆膨胀。

隐私设计:记忆开关 + 所有记忆可见可删除。备选方案包括静默记忆(用户不可见)和仅管理员可见。选择理由:用户对 AI 记忆的信任建立在透明和控制权之上,这是产品的核心价值主张。

PM 复盘

个性化的隐私边界在哪里?

个性化和隐私是天然的张力关系。Andrew 的设计原则是:记忆默认开启,但用户拥有完全的可见性和控制权。每条记忆都可查看、可删除,记忆功能可一键关闭。这不是技术问题,是信任设计问题——用户需要感受到"我掌控着 AI 对我的了解"。

最被低估的难点是什么?

不是"记住",而是"遗忘"和"更新"。用户的偏好会变化,旧信息会过时,矛盾的记忆需要被识别和处理。记忆系统的核心挑战不在于写入,而在于维护记忆的时效性和一致性。Key-based 槽位更新是第一步,但更复杂的场景(如观点演变、临时偏好 vs 长期偏好)还需要更精细的机制。

如果规模扩大,架构如何演进?

三个方向:一是 Top-K 检索替代全量注入,支持大规模记忆;二是多用户认证体系,隔离不同用户的记忆空间;三是动态人格学习,让 soul.md 不再是静态文件,而是根据交互数据持续演化。

版本更新

vv0.1最新2026-02

Chat Foundation

基于 Next.js + Tailwind 搭建流式对话 UI,接入 DashScope/Qwen API,实现基础流式响应与错误处理。

  • ·Next.js + Tailwind 搭建流式对话 UI
  • ·接入 DashScope/Qwen API
  • ·基础流式响应实现
  • ·错误处理机制