为什么你的 AI 助手聊了 100 轮,还是像第一天认识你:用 n8n 搭一套真正有用的 Agent 记忆层
为什么你的 AI 助手聊了 100 轮,还是像第一天认识你:用 n8n 搭一套真正有用的 Agent 记忆层
你可能也遇到过这种情况:
昨天刚告诉 AI:“以后写产品分析,先给结论,再展开,少一点营销味。”
今天它又一本正经地输出一篇“全面赋能、行业领先、颠覆体验”的稿子。
你继续纠正,下一轮它似乎记住了;再过几轮,又忘了。
很多人会把这个问题归结为:模型不够强,或者上下文窗口不够大。
但真相往往更简单,也更扎心——你给 AI 的只是聊天记录,不是可复用的“记忆”。
会记住你说过什么,不稀奇;会记住你真正偏好什么,才是 Agent 开始变得有用的分水岭。
这篇文章想讲清一件事:Agent 的记忆层,不是“把历史对话全存起来”,而是把用户偏好、任务状态、规则约束结构化注入工作流。
而这件事,用 n8n + 分层 Prompt 就能做出来。
---
为什么很多人把 Agent 记忆层理解错了?
现在不少关于 Agent 的教程,一谈“记忆”,就是两种做法:
- 把历史消息全塞进 Prompt
- 把聊天记录存进数据库,调用时再检索回来
这当然不是错,但它只解决了最浅的一层:延续上下文。
问题在于,延续上下文,不等于理解用户。
比如同样是“帮我写一篇科技产品测评”,用户真正稳定关心的,可能是这些:
- 风格要理性、克制
- 标题控制在 18 字内
- 先结论后分析
- 少空泛形容词,多成本、体验、适用人群
- 不要臆测没有依据的市场趋势
这些内容,并不需要每次都从几百轮对话里重新“猜”。
它应该被提炼成结构化偏好,在每次任务开始前自动注入。
这里有一个特别容易被拆错的认知:
“对话记录存储”和“用户偏好感知”不是两个独立选题,而是同一主题的两层能力。- 对话记录,解决“刚刚发生了什么”
- 用户偏好,解决“这个人通常想要什么”
如果只做前者,Agent 会显得“有记性但不稳定”;
如果加上后者,它才开始像一个长期协作的助理。
从成本上看,差别也很明显。全量塞历史记录,token 消耗会越来越高,而且噪声越来越多。很多经验型测试里,历史消息超过 20~30 轮后,模型输出稳定性往往不升反降,因为无关信息太多。相反,结构化偏好通常只需要几十到几百字,却能持续发挥作用。
---
记忆层到底该记什么?一套适合 n8n 的分层设计
真正可用的记忆,不该“全存”,而该“分层”。
下面这张分层图,建议你直接作为设计 Agent 的认知锚点。
记忆层分层图
用户输入
│
├─ 短期记忆(Session Memory)
│ 当前会话上下文、刚提到的信息、最近追问
│
├─ 长期记忆(Preference Memory)
│ 用户偏好、口吻习惯、输出格式、关注重点
│
├─ 任务记忆(Task State Memory)
│ 当前任务状态、已完成步骤、待确认信息、执行进度
│
└─ 规则记忆(Rule Memory)
业务规则、合规要求、禁区、风控限制
│
↓
Prompt 组装后调用模型
1. 短期记忆:解决“当前聊到哪了”
这是最常见的一层。
它通常包括:
- 当前会话里的关键信息
- 最近几轮问答
- 临时补充说明
适合存放在:
- n8n 执行上下文
- Redis
- 会话级数据库表
它的特点是:更新频繁、生命周期短。
2. 长期偏好记忆:解决“这个用户通常喜欢怎样的结果”
这是最有价值、也最容易被忽略的一层。
适合保存:
- 语气偏好:专业、克制、简洁
- 格式偏好:先结论后展开、分点、不写长段落
- 内容偏好:更关注成本、原理、落地性
- 反感模式:少营销词、少夸张判断、少空泛描述
这部分非常适合存结构化 JSON,而不是原始文本堆叠。
{
"user_id": "u123",
"tone_preference": "专业、克制、少营销感",
"output_format": "先结论后展开,使用小标题,避免长段落",
"content_focus": ["技术原理", "实际成本", "可执行建议"],
"disliked_patterns": ["空泛形容词", "过度夸张", "无依据预测"],
"last_updated": "2025-02-15T10:30:00Z"
}
3. 任务状态记忆:解决“这件事做到哪一步了”
如果你的 Agent 不只是聊天,而是要完成任务,这层就很关键。
比如写一篇文章时,任务状态可能包含:
- 选题是否已确认
- 大纲是否生成
- 是否拿到参考资料
- 初稿是否已输出
- 用户是否要求二次改写
这类记忆决定了 Agent 不会每次都从头问一遍。
4. 规则记忆:解决“哪些事不能做、必须怎么做”
这一层更像系统护栏。
比如:
- 客服不能承诺退款结果
- 内容助手不能编造数据来源
- 销售 Agent 不能泄露底价规则
- 涉及隐私和敏感信息默认不存储
它通常来自业务方,而不是用户本人,所以和“用户偏好”必须分开。
---
用 n8n 实现“用户偏好感知”工作流:从 Prompt 到节点编排
说方法论不难,真正难的是:怎么放进工作流里跑。
这里我用一个最容易理解的场景来演示:AI 内容助手。
目标是让它长期服务同一个创作者,自动记住其写作偏好。
工作流总流程
用户输入
↓
检索用户偏好(DB / Sheet / Notion / Redis)
↓
读取任务状态
↓
拼装系统 Prompt
↓
调用模型
↓
输出结果
↓
判断是否出现“新偏好”
↓
满足条件则更新偏好库
如果你在 n8n 里搭,通常会用到这些节点:
Webhook或聊天入口节点- 数据库查询节点:按
user_id拉取偏好 Function/Code节点:清洗与合并变量- 模型调用节点
IF条件节点:判断是否更新偏好- 数据库写入节点:更新长期记忆
第一步:先取偏好,再问模型
很多人把偏好写进系统提示词里,但没有先做检索。
结果就是:所有用户用一个 Prompt,当然不可能“更懂你”。
在 n8n 里,正确顺序应该是:
1. 接收用户输入
2. 根据 user_id 查询长期偏好
3. 查询该任务当前状态
4. 再拼装 Prompt
第二步:Prompt 重点不是文案,而是变量槽位
下面这版模板,你可以直接用:
你是一个为特定用户提供持续服务的 AI 助手。
在回答前,请优先遵守以下用户长期偏好:
{{user_preferences}}
当前任务背景:
{{task_context}}
当前用户输入:
{{user_input}}
请按以下原则输出:
1. 优先符合用户偏好的表达方式
2. 若偏好与任务目标冲突,以任务目标为准
3. 若信息不足,不要臆测,先提出澄清问题
4. 输出格式遵循以下要求:
{{output_rules}}
真正值得学的,不是这几句中文本身,而是它的变量槽位设计:
{{user_preferences}}:长期偏好{{task_context}}:当前任务态{{user_input}}:本轮输入{{output_rules}}:输出规则与约束
也就是说,Prompt 不是一段静态说明书,而是一个动态拼装接口。
第三步:什么时候写入记忆,决定系统会不会越用越歪
很多人做记忆层,最大的问题不是“记不住”,而是“乱记”。
建议你用这几条规则控制写入:
- 用户明确表达偏好时才写入
- 同一偏好多次出现后再提升权重
- 临时要求不要直接覆盖长期偏好
- 敏感信息默认不存
- 和任务无关的情绪化表达,不进入长期记忆
比如用户说:
- “以后都用简洁一点的风格” → 可写入长期偏好
- “这一次写得活泼点” → 更适合写入临时任务态
- “我今天心情不好” → 不建议进入偏好库
n8n 里可以先用轻量规则判断,再决定是否更新数据库:
return [
{
json: {
user_id: $json.user_id,
extracted_preference: $json.message.includes("以后都用简洁一点的风格")
? { tone_preference: "简洁" }
: null
}
}
];
这段代码不复杂,但很重要:它说明记忆不是“自动全收”,而是选择性沉淀。
---
一个前后对比案例:同样写测评,为什么结果像换了个助手
任务:帮用户生成一篇科技产品测评文章
没有偏好记忆时
模型只能根据当轮指令输出,常见结果是:
- 开头铺垫很多,迟迟不给结论
- 喜欢用“惊艳”“颠覆”“全面升级”这类词
- 结构随机,有时像新闻,有时像广告稿
- 重点不稳定,忽略成本和适用人群
示例输出片段:
这款产品凭借出色的设计理念和强大的功能配置,为用户带来了前所未有的使用体验,在当前市场中展现出极强的竞争力……
看起来没毛病,但没有“用户味”。
有偏好记忆后
假设系统已保存这位用户的长期偏好:
- 先结论后分析
- 理性表达,少营销词
- 标题不超过 18 字
- 重点讲技术原理、实际成本、是否值得买
这时输出会明显不同:
结论:如果你更看重稳定性和长期使用成本,它值得买;如果你只追求参数表上的极致性能,这款并不是最优解。
接下来分三部分看:性能是否过剩、真实使用成本高不高、它适合哪类人。
区别就在这里:
前者像“会写”;后者像“懂你以后再写”。
---
成本、效果和维护:哪种记忆方案更适合长期用?
下面这个表,基本可以概括三种常见方案的优劣。
| 方案 | 输出稳定性 | 个性化程度 | Token 成本 | 维护难度 | |---|---|---:|---:|---:| | 只喂历史聊天记录 | 中 | 低 | 高 | 低 | | 结构化偏好记忆 | 高 | 高 | 中 | 中 | | 全量记忆全塞 Prompt | 低 | 中 | 很高 | 高 |为什么“结构化偏好记忆”最值得做?
- 它比全量历史更省
token - 它比纯上下文更稳定
- 它可被工作流复用,不依赖某一轮聊天
- 它适合和任务状态、规则约束一起协作
如果你在 n8n 里做自动化,这一点尤其关键。因为工作流系统真正追求的不是“偶尔灵感爆发”,而是每次都大差不差地交付对的结果。
---
这套 Prompt 思路为什么值得学?它不只是 n8n 技巧
很多人学 Prompt,只学“怎么问模型”。
但成熟的 Agent 设计,关注的是三件事:
1. 输入前拿到什么信息
2. 模型中遵守什么规则
3. 输出后沉淀什么记忆
一旦你按这个框架理解 Prompt,很多场景都能迁移:
- 销售跟进:记住客户关注价格还是交付周期
- 知识库问答:记住提问者的专业程度和偏好深度
- 内容创作:记住作者风格、栏目结构、禁用表达
- 内部流程自动化:记住审批节点与字段要求
- 跨渠道客服:记住同一用户在不同入口的历史偏好
换句话说,这不是一个 n8n 小技巧,而是一种Agent 设计模式。
---
如果你想自己搭,这样开始最省时间
如果你也想把这套“偏好记忆 + Prompt 拼装 + 工作流自动更新”的思路真正跑起来,建议先别一上来就追求最复杂的架构,而是先跑通最小闭环:
1. 用 n8n 接一个用户输入入口
2. 建一个最简单的偏好表,至少有 user_id、tone_preference、output_format
3. 做一次“读取偏好 → 拼 Prompt → 输出结果”
4. 再补上“识别新偏好 → 条件写回”的逻辑
模型接入层,尽量选稳定、方便实验的方式,这样你可以把精力放在工作流设计本身。
如果你准备自己做这类 Agent 工作流测试,可以用 api.884819.xyz:
- 用户名 + 密码即可注册,不需要邮箱验证
- 注册即送 5 元体验额度
- 国产模型如 Deepseek R1/V3、通义千问 Qwen3、Kimi K2.5、GLM-5 完全免费
- 没有月租、没有订阅,按量付费
- 平台内置 AI 对话功能,注册后直接能用
如果你要在 n8n 里做不同 Prompt 结构和记忆策略的对比实验,这种低门槛环境会省掉很多前期折腾。
---
结尾:未来 Agent 的分水岭,不只是模型强不强
接下来一两年,大家还会继续讨论模型参数、上下文长度、RAG 效果。
这些都重要,但真正会拉开差距的,可能是另一件更“朴素”的事:
你的 Agent,能不能长期稳定地理解一个具体用户,并把这种理解持续用在流程里。模型再强,如果每次都像第一次认识你,它就始终停留在“会回复”。
只有当它开始稳定调用你的偏好、约束、任务习惯,它才进入“会做事”的阶段。
会记住你说过什么,不稀奇;会记住你真正偏好什么,才是 Agent 开始变得有用的分水岭。即日起新注册用户系统自动送50万token,想要更多可以通过工单联系客服申请,再手动赠送200万token。
下一篇我们接着讲:Agent 有了记忆还不够,怎么让它“记得住、用得对、不会乱改”?我们会拆一套适合 n8n 的记忆更新策略,重点解决“错误偏好被写进长期记忆”这个最常见的坑。
本文由8848AI原创,转载请注明出处。关注8848AI,带你从零开始学AI。#AI教程 #n8n #Agent #Prompt技巧 #工作流自动化 #8848AI #人工智能 #AI应用