必须将用户偏好写入持久化记忆层并主动注入系统提示词:通过规则触发器识别关键词抽取结构化偏好,用Mem0 SDK或OpenViking文件系统存储,每次对话前按user_id检索并限制3条以内、每条≤32字符注入system prompt顶部。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在长对话中让火山引擎应用持续记住用户偏好,必须绕过默认的会话级上下文隔离机制,把关键偏好信息从临时对话流中抽离出来,写入可跨轮次、跨设备调用的持久化记忆层。
识别并提取用户偏好语义
在用户首次表达偏好时(例如“我只看Python教程”“会议提醒提前15分钟”),不能依赖模型自动归纳。需在应用层配置规则触发器:当检测到含“只”“不看”“偏好”“习惯”“默认”等关键词,且后接明确实体或数值时,立即启动偏好抽取流程。
这一步必须人工定义抽取模板,否则Mem0或OpenViking无法区分“今天不想开会”(临时状态)和“我从不参加晨会”(长期偏好)。模板示例:【必须匹配“主语+否定/限定词+行为/对象”结构,否则丢弃】
将偏好写入结构化记忆库
方法一:通过Mem0 SDK直接写入
调用mem0.write()接口,传入type="preference"、user_id(必须与飞书open_id对齐)、content字段为清洗后的纯文本(如“语言偏好:Python”),并显式设置ttl=null(禁用自动过期)。
方法二:用OpenViking文件系统落地
在ov tui界面中新建preference_20261020.md,手动录入格式化条目:- 语言偏好:Python(来源:2026-10-19 14:22 第3轮)。注意:文件名中的日期必须是当天,否则OpenViking不会在检索时加载该文件。
在后续对话中主动注入偏好上下文
第一步:每次收到新用户输入前,先执行检索
用Mem0的query接口,以当前user_id为条件,filter={"type": "preference"},获取全部偏好条目;若返回为空,则跳过注入步骤。
第二步:将检索结果拼入system prompt顶部
格式必须为:“你已知用户长期偏好如下:{content}。后续所有回答必须严格遵循上述偏好,不得询问、质疑或忽略。”【此处不可用user role插入,否则会被视为历史对话而非系统指令】
第三步:限制注入长度
单次最多注入3条偏好,按last_modified倒序取;超长内容截断至每条≤32字符,避免挤占有效token空间。











