必须区分短期与长期记忆并禁用自动合并:短期记忆设为4轮滑动窗口,仅保留user_intent、selected_option、confirmed_constraint;长期记忆绑定数据库或脚本写入,提示词中显式声明记忆层级并约束回写。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在扣子(Coze)中让智能体记住用户偏好、历史选择和当前对话流程,同时避免因上下文过长导致模型发散或token超限,必须把短期记忆的实时性与长期记忆的稳定性结合起来使用。
启用并区分两种记忆类型
进入智能体「设置」→「记忆」页签,确认已开启「短期记忆」与「长期记忆」两个开关。短期记忆默认基于会话ID缓存最近5轮交互,不依赖外部存储;长期记忆则需绑定Redis或平台内置数据库,用于跨会话复用关键信息如用户身份、设备类型、历史订单ID。
【必须关闭“自动合并短期与长期记忆”选项】否则系统会把所有历史无差别拼入Prompt,极易触发token截断或语义混淆。
配置短期记忆:控制滑动窗口与关键字段提取
在「短期记忆」设置区,将「携带上下文轮数」设为4,勾选「前缀缓存」加快系统提示加载速度。
点击「高级设置」→「字段白名单」,只允许以下三类内容进入短期记忆:user_intent(用户当前意图)、selected_option(用户刚点选的按钮值)、confirmed_constraint(用户明确确认过的限制条件)。其余如问候语、语气词、重复确认句全部过滤。
这一步能砍掉60%以上的噪声输入。若放任所有消息进入,模型会在第三轮开始反复纠结“你好呀”是不是新意图。
部署长期记忆:定义可写入的实体槽位
方法一:通过「数据源」绑定结构化数据库
在「数据源」中添加一条「用户画像表」,字段包含user_id(主键)、last_city、preferred_language、order_history_ids。在「长期记忆」设置中,将user_id映射为会话变量session.user_id,确保每次请求都能自动拉取对应记录。
方法二:用「脚本节点」手动写入关键事实
当用户说出“我常住深圳”时,在响应后接一个脚本节点,执行:db.upsert("user_profile", { user_id: context.session_id, last_city: "深圳" })
注意:该操作不可逆,写入即覆盖,务必先用db.get读取原值做比对。
融合调用:在提示词中显式声明记忆层级
第一步:在系统提示词开头插入状态标记
[SESSION]当前会话ID:{{session.id}}|[MEMORY_LEVEL]短期:已载入4轮|长期:已加载用户画像|
第二步:在每个Agent节点的提示词末尾追加记忆调用指令
“请优先参考短期记忆中最近一轮的selected_option值;若该值为空,则查询长期记忆中的last_city作为默认城市。禁止自行猜测未出现过的城市名。”
第三步:对输出做记忆回写约束
“若本轮用户确认了新地址,请立即将其写入长期记忆last_city字段,并同步更新短期记忆变量confirmed_constraint为‘地址已锁定’。”











