乐于分享
好东西不私藏

AI应用短期记忆设计:OpenClaw和Hermes给了PawSignal什么启示?

AI应用短期记忆设计:OpenClaw和Hermes给了PawSignal什么启示?

目前一个共识:去年的时候大家还说不是模型不够聪明,就是感觉AI太健忘了,但是今年AI应用的记忆力越来越好

去年用AI的感觉是:你刚告诉它”我家豆豆对鸡肉过敏”,下一轮对话它就开始推荐鸡肉味狗粮。这种”金鱼式记忆”有时会让人崩溃。

这一切都是如何发生转变的呢?

AI的记忆不是简单地把对话存下来就行。存什么?存多久?怎么让AI在需要的时候想起来?这些才是短期记忆设计的核心挑战。

今天这篇文章,我想以AI应用实践者的视角,先聊聊短期记忆设计思想,以及我们PawSignal项目是怎么借鉴和落地的。

一、为什么短期记忆比长期记忆更难做?

很多人以为AI记忆就是”存对话”。但你仔细想想:

  • 长期记忆好比写进笔记本的重要事项——数量少、精挑细选、翻出来就能用

  • 短期记忆好比你脑子里正在想的事情——数量多、杂乱、但正是这些碎片让AI理解”此刻”

短期记忆的难点在于:你不能什么都存,也不能什么都不存。

  • 存少了 → AI忘记上下文,对话断裂

  • 存多了 → 系统提示爆炸,成本飙升,AI被噪声淹没

  • 存错了 → AI记住了用户随口一说,当成了真理

所以,短期记忆的本质问题不是”存储”,而是”筛选”和”价值判断”。

二、OpenClaw:用进废退的信号哲学

OpenClaw是我见过最优雅的短期记忆设计之一。它的核心思想很简单:记忆的价值,取决于它被”使用”的频率。

被动触发:不追、不扫、不主动

传统做法是定时扫描所有对话,判断哪些重要。OpenClaw反其道而行:它只在记忆被搜索召回的时候,才记录信号。

用户搜索”豆豆的饮食” → 召回相关记忆片段 → 记录一次”recall信号” 

这种”被动触发”设计极其精妙:

  • 零额外开销:不需要定时任务扫全量数据

  • 真实使用反馈:被搜索的才是用户关心的

  • 自然去噪:没人搜的内容,自动淡出

三种信号源:不只是”搜过”

OpenClaw的短期记忆信号库记录了三种信号:

信号类型

触发场景

设计意图

Recall

用户搜索触发记忆召回

高频使用的更有价值

Daily

定时扫描近期会话

补充被动触发的盲区

Grounded

从对话中提取高相关片段

捕获隐式价值

最妙的是它的去重机制:同一天同一查询只计一次。防止用户反复搜索刷分,确保信号反映真实使用频率。

六维评分:给记忆打一张”价值成绩单”

当运行memory promote时,OpenClaw给每条记忆打六维分数:

价值分 = 使用频率×0.24 + 相关度×0.30 + 多样性×0.15 + 时效性×0.15 + 巩固度×0.10 + 概念密度×0.06

这里有几个特别值得品味的权重设计:

  • 相关度权重最高(0.30):不是用得多就重要,而是用得准才重要

  • 多样性(0.15):被不同场景搜到的记忆,比反复搜同一个词更有价值

  • 时效性衰减:14天半衰期的指数衰减,旧记忆自然淡出但不立即清零

一句话总结OpenClaw的短期记忆哲学:不追热点,只记”被需要”的。

三、Hermes:工程化的双轨记忆

如果说OpenClaw是”哲学家”,那Hermes就是”工程师”。它解决的是另一个问题:短期记忆怎么在工程上跑得稳、跑得省?

双轨制:内置记忆 + 外部插件

Hermes的短期记忆不走单一路线,而是双轨并行

内置记忆是”精选集”:模型通过工具显式写入,不是自动全量同步。这保证了注入系统提示的记忆都是高价值的。

外部插件是”深度语义”:Honcho做用户建模、Supermemory做语义容器、Mem0做开源记忆层——一次只激活一个,避免冲突。

冻结快照:一个省钱的精妙设计

Hermes有个让我拍案叫绝的设计:系统提示中的记忆在会话开始时固定,中途不再更新。

什么意思?假设你在和AI聊天,AI在第三轮对话中通过工具写入了一条新记忆。但这条新记忆不会立刻注入到当前会话的系统提示中,而是等到下一会话才生效。

为什么这么做? 因为LLM API有”前缀缓存”机制——如果系统提示不变,后续轮次的token成本会大幅降低。如果每轮都更新系统提示,缓存失效,成本直线上升。

这个设计牺牲了”即时性”,换取了”经济性”。对于高频对话场景,这个权衡非常聪明。

预算控制:给记忆戴上”紧箍咒”

Hermes给内置记忆设置了硬上限:

  • MEMORY.md:最多2200字符

  • USER.md:最多1375字符

为什么需要预算?因为系统提示越长,LLM的注意力越分散。一条预算上限,强制团队做减法——只有真正重要的内容才配进系统提示。

一句话总结Hermes的短期记忆哲学:不是记得越多越好,而是记得越精越好。

四、PawSignal(自研宠物系统):我是怎么落地的?

聊了别人家的设计,说说我们自研的宠爱信号 PawSignal小程序是怎么设计的。

宠爱信号 PawSignal<有兴趣可以体验一下>

我们的场景有什么不一样?

PawSignal是一个宠物AI小程序,用户和AI的对话全部围绕”宠物”展开。这意味着:

  • 多实体关联:同一用户有多只宠物,AI得知道”豆豆”和”旺财”是两只狗

  • 时间敏感:宠物的健康状况、饮食习惯随时间变化,上周的”拉肚子”和今天的”拉肚子”可能是不同的事

  • 信任门槛高:宠物主人对AI建议的信任度直接影响留存——说错一句话,用户可能就流失了

借鉴OpenClaw:信号追踪 + 量化评分

我们直接借鉴了OpenClaw的”信号追踪”思想,但做了”本土化”改造。

OpenClaw追踪的是”搜索召回”,而我们追踪的是三条信号线:

宠爱信号 PawSignal<短期记忆三层信号体系图>

核心设计:三层信号权重 + 观察池缓冲 + 预算封顶 = 宠物场景(含大健康场景)的最优解

为什么分三层权重?

因为”AI在回复中引用了这条记忆”比”用户在列表里点开了这条记忆”更有说服力。前者说明AI认为这条记忆对解决当前问题有直接帮助,后者只是说明用户好奇

我们也借鉴了OpenClaw的去重机制:同一天同一用户查看同一条记忆,只计一次。防止用户反复点击刷分。

借鉴Hermes:预算控制 + 策展式思维

从Hermes那里,我们学到了”预算控制”“策展式记忆”两个核心思想。

我们给PawSignal的短期记忆设置了明确的生命周期和容量上限:

  • 30天自动过期:短期记忆不是永久存档,30天后自动清理

  • 每轮最多写5条:防止AI在一轮对话中疯狂写入,造成记忆爆炸

  • 核心记忆预算:20条目 / 1500字符(借鉴Hermes的硬上限思路)

策展式思维是什么意思?就是不自动同步所有对话内容到记忆,只让AI显式决定”这条值得记”。 这和Hermes的memory_tool设计一脉相承。

PawSignal的创新:观察池 + 信号分层

在借鉴的基础上,我们做了两个本土创新:

创新一:14天观察池

当一条短期记忆触发”冲突”或”评分模糊”时,我们不立刻决策,而是把它放进14天观察池

短期记忆 (30天)                 ▼ 触发冲突/模糊评分                  观察池 (14天)  ├── R0: 语义兼容 → 新旧共存      ├── R1: 时间衰减 → 保留旧值       ├── R2: 信号强化 → 新值覆盖        ├──  …… 

为什么需要观察池? 因为宠物场景下,很多信息需要时间验证。比如用户说”豆豆最近不爱吃狗粮”,这可能是换牙期、可能是生病、可能只是挑食。观察14天,看后续信号怎么发展,再做决策。

创新二:范畴语义分层

宠物场景有个独特问题:同一条记忆,属于用户还是属于宠物?

  • “我喜欢在APP上预约宠物医院” → 这是用户画像

  • “豆豆在换牙期” → 这是宠物事实

  • “豆豆只让我抱” → 这是交叉关系

我们给每条记忆打上了scope标签:

scope: user→ 纯用户画像                  scope: pet→ 纯宠物事实                  scope: hybrid→ 交叉关系scope: global→ 通用知识(如”南京养犬需要办犬证”)

这样AI在构建上下文时,可以精准召回。问”豆豆怎么样”就召回pethybrid,问”我该怎么养金毛”就召回userglobal

五、三个设计原则:短期记忆的”黄金法则”

对比了三个系统,我提炼出短期记忆设计的三个核心原则:

原则一:用进废退,而非全量存储

不要存所有东西,只存”被使用”的东西。

OpenClaw的被动触发、PawSignal的信号追踪,都指向同一个结论:短期记忆的价值在于”被使用”,而不是”被存储”。那些从没被搜索、从没被引用的记忆,存了也是白存,还会污染召回精度。

原则二:信号分层,而非单一计数

不要只记”被看过几次”,要区分”怎么看”的。

AI引用 > 用户查看 > 检索命中,三层信号权重让评分更有区分度。同样是被”使用”过3次,AI主动引用的3次,比用户无意义点击(我在短期记忆力设计里一个点击投喂)的3次,价值高得多。

原则三:预算封顶,而非无限增长

短期记忆必须有明确的生命周期和容量上限。

Hermes的2200字符上限、PawSignal的30天过期,都是用”硬约束”倒逼”做减法”。没有预算的记忆系统,最终都会膨胀到不可用的地步。

六、写在最后

短期记忆的设计,本质上是一个权衡游戏

  • 存多了 → 成本高、精度低

  • 存少了 → 上下文断裂、体验差

  • 自动存 → 噪声大、信任低

  • 手动存 → 覆盖率低、遗漏多

OpenClaw给出了”用进废退”的算法答案,Hermes给出了”双轨预算”的工程答案,而我们在PawSignal里,尝试把两者融合,再加上宠物场景和健康场景的创新。

短期记忆做得好不好,用户不会夸你,但一旦做得不好,用户一定会骂你。 因为”记不住”是最直观的体验差评。

一句话总结三个系统的短期记忆设计

系统

短期记忆的核心设计

一句话总结

OpenClaw

被动触发 + 六维评分 + 用进废退

“被需要的记忆才有价值”

Hermes

双轨架构 + 冻结快照 + 预算控制

“记得精比记得多更重要”

PawSignal

信号追踪 + 观察池 + 预算封顶

“让AI像铲屎官一样,记得住关键、忘得了噪音”

希望这篇文章对你有启发。下一篇,我们聊聊长期记忆的设计——从”短期”到”长期”,记忆是怎么完成”毕业”的。

参考阅读:openclaw源码、hermes源码、PawSignal自研宠爱信号 PawSignal

如果你也在做AI记忆相关的设计,欢迎交流留言。