TEN-framework X OceanBase PowerMem 打造个性化智能体语音助手
本教程介绍如何通过 OceanBase PowerMem 结合 TEN-framework 打造一款带记忆的智能体语音助手。在集成了 TEN 强大的“实时多模态”能力基础上,还展现了“个性化”对话体验与长期记忆感知的独特优势。
有关 OceanBase PowerMem 的详细信息,可参考 GitHub - oceanbase/powermem。
为什么需要记忆?
Agent 需要记忆能力,是因为记忆是实现个性化、连续性互动和深度共情的核心基础。没有记忆,这些 Agent 就像“金鱼记忆”一样,每次交互都从零开始,无法建立真正有意义的关系或提供高效服务。
维持对话的连贯性和上下文理解
问题:如果 Agent 不记得用户之前说过什么,每次对话都会显得割裂、重复甚至令人沮丧。 例子:
- 用户:“我最近压力很大,工作快撑不住了。”
- 几天后再次说:“还是 老样子,项目没结束。”
- 如果 Agent 记得之前的对话,可以说:“上次你说项目压力大,现在还在持续吗?有没有好一点?”
- 如果没有记忆,Agent 可能会问:“你最近有什么压力?”——显得冷漠且重复。
记忆让对话有延续感,像是“真正关心你的人”。
建立情感连接与信任
情感陪伴的本质是“被理解”和“被记住”。人类在关系中重视“对方记得我的事”。
心理学研究表明:被记住细节(如喜好、经历、情绪)会显著增强亲密感和信任。 例子:
- “你上次说你喜欢喝抹茶拿铁,今天要不要来点轻松的话题放松一下?”
- 这种细节回忆会让用户感到被关注,提升情感价值。
记忆 = 被重视的信号 → 增强用户依恋和使用黏性。
实现个性化服务与预测需求
助手类 Agent 需要根据用户习惯主动提供帮助。 例子:
- 用户每周五晚上都会问:“明天天气怎么样?”
- 有记忆的 Agent 可以主动提醒:“周五快到了,需要我帮你查周末天气吗?”
- 或者记住用户讨厌会议太多,自动建议:“下周日程太满,要我帮你调整吗?”
记忆让 Agent 从“被动响应”升级为“主动关怀”。
避免重复提问,提升用户体验
没有记忆的 Agent 会反复问相同问题(如“你叫什么名字?”“你住哪里?”),让人烦躁。 有长期记忆的 Agent 可以:
- 记住用户的姓名、偏好、重要事件(生日、纪念日)
- 在合适时机表达关心:“明天是你生日,准备怎么庆祝?”
减少认知负担,让用户感觉更自然、更人性化。
支持长期目标追踪与成长陪伴
情感陪伴或健康类助手常涉及长期目标(如减压、戒烟、学习)。 记忆能力可用来:
- 跟踪进展:“这周你记录了3次情绪低落,比上周少了2次,有进步!”
- 提供鼓励:“你说过想坚持写日记,今天写了吗?”
形成“成长伙伴”角色,而非一次性工具。
集成 OceanBase PowerMem:我们做了什么?
用户画像记忆模块(User Memory Module)
在 OceanBase PowerMem v0.2.0 版本中,我们全新推出了 用户画像记忆模块(User Memory Module),迈出构建更智能、更个性化的智能体助手的关键一步。用户画像记忆模块能够自动分析用户对话内容,提取并持久化用户画像(User Profile)。
**用户画像:**描述用户的当前状态与特征,包括使用偏好、角色身份、操作习惯、业务需求等关键属性,支持动态更新与长期存储,实现“记住你是谁”。
能力价值
通过引入用户画像记忆,Agent 实现了从“无状态响应”到“有记忆服务”的跃迁,具备以下能力升级:
- 上下文感知的智能理解:结合历史画像与行为轨迹,更准确识别用户真实意图;
- 个性化推荐与主动服务:基于用户习惯,智能推荐常用命令、优化建议或高频功能入口;
- 跨会话连续性体验:打破“每次对话从零开始”的局限,实现多轮次、跨时间的连贯交互;
- 支撑高阶智能场景:为后续的智能运维、自助诊断、个性化 SQL 优化等高级功能提供数据基础,助力打造真正懂用户的数据库助手。
智能记忆保存策略
为保障性能与一致性,我们设计了高效协调的记忆持久化机制:
| 策略 | 规则 | 可配置项 |
|---|---|---|
| 基于对话轮次 | 每 N 轮对话后自动触发保存 | memory_save_interval_turns(默认 5) |
| 基于空闲超时 | 连续 N 秒无交互后自动保存 | memory_idle_timeout_seconds(默认 30) |
两种策略协同工作,通过去重判断避免重复写入;同时采用计数器同步机制,防止并发更新导致的竞态条件,确保数据一致性与系统稳定性。
个性化问候生成
为了让用户感受到“被记住”的温暖体验,我们在首次加入时引入了 个性化欢迎问候 功能,让每一次接入都更有温度。
工作流程
- 获取记忆摘要:从 PowerMem 中检索用户的历史对话概要;
- 生成定制问候:将记忆信息填入提示词模板,调用 LLM 生成 2–3 句自然语言问候语;
- 多语言适配:根据用户地区信息自动选择对应语言(如中文、英文等);
- 语音输出:生成完成后推送至 TTS 引擎进行播报。
技术亮点
- 异步非阻塞:全程异步处理,不影响用户正常接入流程。
- 10 秒超时保护:防止 LLM 响应延迟影响整体体验。
- 状态隔离机制:使用独立标志位,避免与常规对话混淆。
- 优雅降级:当无历史记忆或生成失败时,自动回退至通用欢迎语,保障可用性。
快速上手
准备工作
-
登录 https://console.agora.io/ 创建 project 获取
App ID和Primary Certificate。提示agora 会提供一定免费额度,超过用量可能产生费用,请在继续前,访问其官网或查阅相关文档,确认并接受其收费标准。如不同意,请勿继续操作。
-
准备好 openai 兼容的模型服务 API KEY。
提示openai 兼容的模型服务 API KEY 需要您跳转至第三方平台完成。此操作将遵循第三方平台的收费规则,并可能产生相应费用。请在继续前,访问其官网或查阅相关文档,确认并接受其收费标准。如不同意,请勿继续操作。
-
安装 seekdb 服务器模式,有关 seekdb 服务器模式的部署,请参见 通过 yum install 部署 seekdb。
-
已安装完成 Docker。
-
Docker build 可能会超时,请提前配置好 Docker 国内镜像或者代理。