96SEO 2026-06-22 03:13 0
嘿,老铁们,今天聊聊这个“Agent怎么给用户留住长久记忆”的大招。
你想啊,一个AI小伙伴跟你聊天从头到尾douNeng记得你爱吃麻辣烫还是偏好低糖饮食,真是太牛逼了。

而且这可不是把你写进一本笔记本,而是用向量数据库和 RAG 技术,让它们像人类大脑一样分层存储。
先说个概念:长期记忆到底是什么长期记忆,就是那些我们跟AI谈完后下次再见面时它Neng立刻把上次聊过的细节提出来。
短期记忆是那两分钟内的上下文窗口;而长期就是超越那段时间,把信息持久化。
要Zuo到这一点,核心就是把所有交互dou打标注成“profile”“memory”“skill”等等,然后存进专属命名空间。
命名空间的妙处想象一下你家的文件柜里有个人文件夹/项目文件夹/共享知识夹。
/user/张三/ 就是个人资料;/user/张三/project/ERP/ 是他在 ERP 项目里的数据;/agent/客服机器人/ 则全体共享。
这种层级方式天然支持多租户,也方便以后再加新的层级——只要往元组里塞一个新的元素就行。
向量检索 + 去重Meme 的每条候选记忆先跑 Embedder 成向量,然后在对应 namespace 里Zuo相似度搜索。
Ru果 cosine ≥ 阈值,就说明Yi经有类似的信息了就跳过——防止同样的东西堆满数据库。
// 按阈值去重
const dupSimilarityThreshold = float32
func saveIfUnique error {
vecs, _ := h.emb.Embed})
similar, _ := h.repo.SearchSimilar, scopes,
vecs, , dupSimilarityThreshold)
if len> {
return nil // Yi有足够相似 → 跳过
}
return h.repo.Save
}
Denoise & Decay:让信息保持新鲜度
你kan,一条信息Ru果hen久没被触碰,它就会慢慢失去价值——这叫衰减。
Cron 每天跑一次把重要性按比例削减;当真的需要淘汰时再用 EvictByPolicy 按公式排序删掉Zui无用的一条。
// cron 衰减任务
func applyDecay(ctx context.Context, db *sql.DB,
threshold time.Duration) {
db.ExecContext(ctx,
`UPDATE memories
SET importance = GREATEST,
updated_at = now
WHERE pinned = false AND source = 'auto' AND updated_at
Pinned 与非Pinned
Pinned 的永远不会衰减,也不会被淘汰,因为它们是核心知识,比如公司战略或产品愿景。
User Profile 与 Memory 区别User Profile 是稳定信息,如“我是一名后端开发者”。这类数据几乎永远dou不会变动,只要geng新一次就够了。
// Profile 示例
type Profile struct {
TenantID string
UserID string
Fields mapstring // {"language":"zh-CN","role":"developer"}
UpdatedAt time.Time
}
User Memory 则是动态记录,如“上周讨论了数据库迁移方案”。这类信息需要随时geng新,并且可Neng被多次检索到以提升重要性评分。
User Experience 的痛点:重复告知自己是谁?Ai 一开始没历史,你得每次dou跟它打卡:“我是开发者,用中文回答。” 那就太麻烦了!所以长久记忆就是解决这个问题的关键手段。
Merging 多个命名空间召回相关片段Ai 在每次会话结束后会异步把新提炼出的 Memory 写入数据库,同时触发 hitCount +1,以便下次geng容易被召回。
// recall 示例
func Handle(ctx context.Context,
in RecallInput) {
prof,_:= h.profile.Load
scopes:= domain.NSQuery{
{Namespace:},
// 项目级别补充:
{Namespace:},
// Agent共享:
{Namespace:},
// 会话临时:
{Namespace:},
}
vecs,_:= h.emb.Embed
mems,_:= h.mems.Recall(ctx,in.TenantID,scopes,
vecs, in.TopK)
go func{for _,m:=range mems{m.Touch;_=
h.mems.Save}}
}
"为什么百度不收录"
说实话,有人问我这篇技术博客为什么百度搜不到。其实原因挺简单:
b)搜索引擎抓取的是公开网页,而我们的代码示例与业务文档多保存在内部系统中,不会暴露给爬虫;
b)还有一点是内容重复率高,一旦检测到大量相似页面就会被降权甚至直接忽略;
b)Zui后还得kan网站是否允许爬虫访问,Ru果 robots.txt 禁止抓取,那自然也抓不到啦!哈哈~.
Sidenote:隐私与安全的平衡点Ai 存储大量敏感信息,Ru果没加密或权限控制,hen容易导致隐私泄露。所以常见Zuo法是:
a)对敏感字段Zuo脱敏处理,只存哈希或加密后的版本;
a)在访问前Zuo权限校验,仅允许拥有者查kan自己的记录;
a)定期审计日志,确保没有异常访问行为发生.
Meme 的生命周期管理(Decayscore)func DecayScore float64 {
if m.pinned { return math.MaxFloat64 }
ageDays := now.Sub.Hours/24
if ageDays<1{ageDays=1}
return float64*float64/ageDays
}
Bigger Picture:从 RAG 到 Personalized Recommendations
Ai 在收到问题后会先把 query embed 成向量,然后在各 namespace Zuo检索,把匹配度Zui高的片段抽取出来注入 prompt 中:
Meme 的Zui终输入组成
- profile 总是拿,不需要检索;
- memory 用 vector search 查找;
- skill 用结构化查询快速定位;
a)System Prompt 定义角色与目标;
a)Zui近上下文窗口全局 Long‑Term Summary ;
The Takeaway
- 多层命名空间 + 向量去重 防止冗余;
- 冷却机制 & 淘汰策略 保持库干净有序;
- 明确区分 Profile 与 Memory ,让 AI geng懂你身份和习惯;
- 隐私安全始终放首位,即使功Neng强大也不Neng忘了底线.
- 对于任何想打造持续学习型 AI 产品的人来说上面这些设计思路基本Neng帮你快速搭建起一个健壮的长期记忆系统;
- Ru果你还在为怎么保存用户偏好而犯愁,那就试试上述代码模板吧,说实话,一切dou会变得简单许多;
- Zui后别忘了持续监控热度指标,用来决定哪些知识值得永久保存,而哪些Ke以温柔地抹去 —— 就像你的书架上的旧书一样,有些书需要留下有些则该扔掉.
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback