【xy_healthy_assistant:LLM+Mem0 +skills个性化助手开发手记】

1.背景

随着大模型能力的提升,AI 助手已经能够回答问题,但大多数助手仍然存在一个明显问题------ 缺乏长期记忆能力。每次对话结束后,用户的偏好、习惯和历史行为都会丢失,导致 AI 难以真正理解用户,更无法提供持续、个性化的服务。

  • 在健康管理场景中,这一问题尤为突出。用户的饮食习惯、运动情况、睡眠质量、用药记录等信息具有长期积累和持续变化的特点,仅依靠单次对话很难形成全面认知。

  • 为了解决这一问题,开发了家庭健康助手 xy_healthy_assistant。项目基于 Mem0 + LLM + Health Report Skill 构建,通过 Mem0 持续沉淀用户健康记忆,让 AI 不仅能够回答问题,更能够长期了解用户。系统可以结合历史记忆自动生成个性化健康报告,分析生活方式变化趋势、识别潜在健康风险,并提供针对性的改善建议。

  • 相比传统问答式 AI,xy_healthy_assistant 的核心价值在于让 AI 从"回答问题"进化为"理解用户",从而实现更加连续、主动和个性化的健康管理服务。

下面是根据mem0中的对话记忆生成的健康报告:


2.mem0与RAG

(1).功能定位
  • 功能定位
    • Mem0:长期记忆系统
      • 类似于人脑的长期记忆。
      • 记住与用户相关的历史信息和偏好。
      • 支持个性化生成,例如根据用户日常运动、饮食和用药记录生成健康报告。
      • 具有连续性和上下文关联能力。
    • RAG:外部知识检索
      • 类似于背包里的知识库或图书馆。
      • 用户提出问题时,从外部资料中检索相关内容,再结合 LLM 生成答案。
      • 适合处理通用知识和大型文档查询,但对用户个性化信息理解有限。

(2).数据来源与使用方式
特性 Mem0 RAG
数据来源 用户长期输入、交互记录、健康日志 文档库、知识库、外部数据库
信息特性 高度个性化、带上下文 通用性、结构化或半结构化
检索方式 向量记忆 + 相关度匹配 文本匹配 + 向量搜索
生成策略 基于用户历史信息生成个性化建议 基于检索到的外部信息生成答案

(3).数据来源与使用方式
  • Mem0 场景
    • 生成个性化健康报告(如 PDF 示例中用户血压、用药和饮酒习惯分析)。
    • 提醒用户按时服药或调整运动计划。
    • 支持长期跟踪和行为改善建议。
  • RAG 场景
    • 查询健康常识、药物说明书、疾病指南。
    • 生成通用问答或文档摘要。
    • 不依赖用户个人历史信息。

3.Mem0 的核心检索原理------三重检索机制

在传统大模型应用中,用户每次发起新的对话时,模型只能依赖当前上下文窗口进行推理。随着对话结束,用户的历史信息、行为习惯以及健康数据都会逐渐丢失。为了让 AI 真正具备长期记忆能力 ,xy_healthy_assistant 引入了 Mem0 作为长期记忆层。与传统向量检索不同,Mem0 并非简单地执行相似度搜索,而是采用Semantic Retrieval(语义检索)+ BM25 Retrieval(关键词检索)+ Entity Retrieval(实体关系检索) 的三重检索机制,通过多维度召回提升记忆检索的准确性。


3.1 语义检索(Semantic Retrieval)

语义检索是 Mem0 的基础层,它负责理解自然语言的意思,而不仅仅是匹配文字。

原理

  • 将用户问题或对话内容转换为向量表示。
  • 在记忆库中寻找向量最接近的历史记忆。
  • 即使文字不完全一致,也能找到语义相关的记忆。

生活化例子

小明问:"我最近总是没精神,身体状态不好。"

系统会检索到:

  • 日均步数不足2000步
  • 睡眠时间6小时
  • 周末经常熬夜
    尽管小明没有明确提到"睡眠",系统仍然能匹配相关记忆。

优势

  • 能理解自然语言的多样表达
  • 对模糊描述或同义表达有效
  • 保证检索到与问题意思相关的内容

3.2 关键词检索(BM25 Retrieval)

关键词检索用于补充语义检索在专业名词或精确事实上的不足。

原理

  • 对用户输入进行词形还原(将"跑步"与"running"统一到基本形式"run")。
  • 使用 BM25 算法匹配记忆库中含有相同关键词的记忆。
  • 对专业词、药品名、数值指标尤为有效。

生活化例子

小明问:"我服用非布司他需要注意什么?"

系统会检索到记忆:

  • "服用非布司他控制尿酸"
  • "非布司他需遵医嘱服用"
    即使这些句子语义距离可能不大,关键词检索确保了精确命中。

优势

  • 精确召回关键事实
  • 对专有名词、药品、检查项目效果显著
  • 弥补语义检索可能遗漏的低频但重要信息

3.3 实体关系检索(Entity Retrieval)

实体关系检索是 Mem0 最独特的一层,它关注记忆之间的关联,而不仅仅是单条匹配。

原理

  • 系统识别用户输入中的实体,例如药物、疾病、习惯。
  • 构建实体网络,将相关实体之间的关系加权。
  • 检索时对与查询实体相关的记忆进行加分,提升关联性。

生活化例子

小明问:"为什么我的血压一直控制不好?"

系统检索到的实体关系:

  • 高血压
  • 服用厄贝沙坦和氨氯地平
  • 周末饮酒
    通过实体网络发现饮酒可能抵消降压药效果,从而生成针对性的回答。

优势

  • 找出潜在因果关系,而不仅仅是相关事实
  • 支持多实体、多维度问题
  • 更接近人类联想记忆方式

3.4 三重检索的协同作用

三层检索不是孤立的,而是通过 混合评分融合(Score Fusion) 协同工作:

  1. 语义检索决定记忆是否相关
  2. BM25 提升精确关键词召回能力
  3. 实体关系检索强化关联性和推理能力

生活化总结

可以把它想象成:

  • 语义检索:理解问题的大意
  • 关键词检索:抓住核心事实
  • 实体关系检索:理解事实之间的联系

三者结合,Mem0 能从海量历史对话中精准召回用户相关的健康记忆,形成可供 LLM 生成个性化报告的高质量上下文。


3.5 在健康报告中的应用

在生成健康报告时,系统会针对多维度主题(饮食、运动、睡眠、用药、检查指标)分别执行三重检索,然后融合排序,最终生成:

  • 个性化饮食建议
  • 运动计划提醒
  • 用药与检查注意事项
  • 生活方式改进建议

通过这种方式,Mem0 不仅记住用户说过的事情,还理解哪些事情重要、哪些事情相关,从而实现真正"记得住、找得准、说得对"的智能健康助手。


4.Health Report Skill 与人物画像

Mem0 如何通过三重检索机制,从海量记忆中找回与用户最相关的信息。然而,仅靠记忆检索还无法直接生成个性化健康报告。为了让健康报告更加精准和个性化,xy_healthy_assistant 引入了 人物画像(User Persona)Health Report Skill 的结合使用。 人物画像的核心作用是对用户的长期健康特征、行为习惯和健康风险进行结构化整理,为生成健康报告提供清晰的输入。

4.1 人物画像的概念

人物画像可以理解为:

当前用户的综合健康特征和行为偏好集合

它不仅包括用户的生理特征和疾病史,还包括生活习惯、用药信息、运动习惯、饮食偏好等。通过人物画像,系统能够将零散的记忆整合成一个整体视图,使 Health Report Skill 可以在此基础上进行专业分析和报告生成。

举例:

  • 年龄:55岁
  • BMI:28.5
  • 高血压病史:4年
  • 用药情况:长期服用降压药
  • 生活习惯:周末饮酒,早餐不规律
  • 运动习惯:日均步数不足2000步
  • 睡眠习惯:平均睡眠时间不足6小时

这些信息构成了完整的人物画像,用于指导健康报告的生成。


4.2 人物画像的构建流程

xy_healthy_assistant 中,人物画像主要由三类信息组成:

  • 基础画像
    • 年龄、性别
    • 身高、体重、BMI
    • 疾病史、慢性病状况
    • 长期用药信息

这部分信息变化较慢,是健康分析的基础。

  • 行为画像
    • 饮食习惯(高脂、高盐等)
    • 饮酒情况
    • 运动频率和强度
    • 睡眠时间和质量

行为画像变化频繁,是健康风险评估的重要依据。

  • 风险画像
    • 血压波动异常
    • 心血管疾病风险
    • 高尿酸风险
    • 运动不足导致的肥胖风险

风险画像用于指导 Health Report Skill 生成个性化健康建议。


4.3 Health Report Skill 的作用

人物画像构建完成后,Health Report Skill 会消费这些结构化信息,并进行健康分析与报告生成。其主要功能包括:

  1. 健康现状分析

    根据基础画像与行为画像,判断用户当前健康指标和生活习惯的合理性。

  2. 风险识别

    结合风险画像,发现潜在健康隐患,例如用药与生活习惯的冲突。

  3. 个性化建议生成

    提供可执行的健康管理建议,例如控制饮酒、增加运动、改善睡眠。

  4. 报告输出

    生成结构化、易读的健康报告,包括:

    • 健康概况
    • 风险分析
    • 行为评估
    • 改善建议
    • 下周行动计划

4.4 Mem0 与人物画像的协同

整个流程中,三者的关系可以总结为:

text 复制代码
用户长期健康记忆
         ↓
     Mem0三重检索
         ↓
     人物画像构建
         ↓
   Health Report Skill分析
         ↓
  个性化健康报告生成

5.部署与配置概述

本项目推荐运行于配备 NVIDIA GPU 的 Linux 环境,核心组件通过 Docker 容器化部署以确保稳定性。

  • 硬件要求:建议至少 8GB 内存及支持 CUDA 的显卡(本地推理);若仅使用云端 API,常规 Linux 服务器即可。
  • 记忆引擎:使用 Docker 部署 Mem0 服务,通过挂载宿主机绝对路径确保数据持久化。
  • 模型配置:项目支持通过 config.yaml 灵活切换推理模式:
    • Ollama:适合本地轻量测试。
    • vLLM:适合高并发、生产环境,提供兼容 OpenAI 的 API 接口。
    • API:直接对接主流云端大模型,无需配置本地算力。

5. 架构的横向扩展与更多应用场景

当前的 LLM + Mem0 + Skill 架构具有极高的解耦性。只需替换检索策略(Queries)、输出模板与绑定的执行接口,即可快速将本系统扩展至其他垂直领域:

  • 研发辅助 Copilot
    • 记忆沉淀:记录你的偏好技术栈(如只用 FastAPI、习惯用 uv 管理环境)、代码格式规范以及历史踩坑记录。
    • Skill 联动:在审查代码或生成脚手架时,自动拉取历史规约进行 Code Review,输出完全符合你个人风格的工程代码。
  • 个人知识库 (第二大脑)
    • 记忆沉淀:在日常对话中,自动提取并存储你的碎片化灵感、阅读偏好及核心关注的行业赛道。
    • Skill 联动:对接 Notion 或 Obsidian API,将平时零散的聊天记录,按周自动整理归类,生成结构化的知识网络或深度阅读简报。
  • 日程与效率管家
    • 记忆沉淀:记住你的通勤时间、差旅偏好、会议习惯以及当前高优推进的核心项目。
    • Skill 联动:打通日历、天气与邮件系统,在每天早晨主动为你生成一份排版精美的"晨间智能简报",并在关键日程前自动触发提醒。

6.项目视频展示

视频链接: 录制中

相关推荐
蒟蒻的贤1 小时前
为什么加入 ReLU 后,神经网络可以学习线性可分的特征?
人工智能·神经网络·学习
csdn_aspnet1 小时前
Python 霍尔分区算法(Hoare‘s Partition Algorithm)
开发语言·python·算法
计算机科研狗@OUC1 小时前
(icml26) Degradation-Aware Metric Prompting for Hyperspectral Image Restoration
人工智能·计算机视觉·图像修复
aigc201204081 小时前
PS 怎么去水印?4 种实操方案解决 AI 生成图右下角水印问题
人工智能
competes1 小时前
数据查询方式最左匹配原则
java·大数据·前端·人工智能·windows
❀͜͡傀儡师1 小时前
告别脚手架:用 JBang 打通 Java、Kotlin、Python 的脚本化开发
java·python·kotlin·jbang
踏着七彩祥云的小丑1 小时前
AI学习——Docker 打包与部署
人工智能·学习·docker·ai
nashane1 小时前
HarmonyOS 6学习:应用无响应(AppFreeze)故障排查与性能优化指南
人工智能·pytorch·python
Rain5091 小时前
GitLab-Runner + AI 代码审查服务 + 远程大模型 全套部署运维实战
linux·运维·人工智能·python·ci/cd·gitlab·ai编程