
为什么需要Agent Memory?今天的大语言模型(LLM)在单次会话中已经足够聪明,但面临一个根本性挑战:没法把昨天学到的东西,以一种可靠、可更新、可追责的方式带到今天。
Agent Memory保存的是可跨时延续并影响未来决策的结构化历史——所谓"结构化",指的是带来源、作用域、时间权重和可修正性的历史对象,而不是"把聊天记录再存一份"。

Memory vs State
Memory vs Policy
Memory vs Profile
很多人把"蒸馏"和"记忆"混用,这是不对的。摘要、reflection、session summary——这些都是memory pipeline里管理环节的一个操作,而不是memory本身。
蒸馏的局限:
核心区别:
面向工程实现,记忆的建模对象可以分成四类:
意图不是被单独存储的——它是这四层模型长期耦合后浮现出来的上层能力,就像一个跟了你三年的助理,他"懂你"不是因为背了一本偏好手册,而是因为他同时理解你的脾气、你的项目进度、你的组织环境和他自己的能力边界。
命题A:Memory不是"存储",而是可被决策利用的外部状态
如果把Agent看成一个从输入到输出的函数,仅仅"存了很多历史"并不构成能力。能力来自:在当前状态下,历史能否以某种形式影响决策分布。Memory负责从历史中提取当前可用的信息,并把它提供给推理层,共同产生决策。
命题B:Memory的最小闭包不是"文档块",而是
Raw Ledger像"账本/黑匣子";views像"缓存+索引+物化视图";policy像"调度器/控制回路"。
命题C:Memory的基本单位应当是event序列,但"直接用event流"不等于可用系统
event序列是"真相来源",但它太底层。真正把历史变成能力的是views(对event的重组织/压缩/索引/时序化/技能化)和policy(决定什么时候触发哪些view、怎么更新view)。
System 1:General Agent(快速回路)
System 2:Agentic Memory(慢速回路)
为什么需要System 2?
记忆系统不是一个容器,而是三条链路的闭环:
写入本质是一次decision under budget。这里的预算不只是存储空间,还包括:
在这些约束下,写入要做的是决定:哪些信息值得获得对未来决策的影响力。
这意味着写入不能只看"这条信息有没有价值",而要看它相对于已有记忆的边际价值。
关键原则:
管理链路决定了记忆系统是长成资产还是长成垃圾堆,它至少处理五件事:
传统RAG式语义相似度召回有一个根本局限:它默认相关性由表层语义决定,而实际决策中最有价值的记忆往往与此并不一致。
所以读取应该从语义相似召回,升级为任务约束驱动的检索-推断耦合。
如果记忆不是一句摘要,那它到底是什么?若把记忆做成可计算对象,至少需要六个维度:
这条记忆说了什么。例如:"用户在性能和开发体验之间倾向选择性能。"
至少区分五种:
Agent对这条记忆有多确信。主要适用于belief和commitment。
这条记忆从哪来:
它在什么上下文下成立。"偏好性能优先"在后端架构决策中成立,在前端原型阶段未必。
什么时候产生的,上次被确认或引用是什么时候,衰减权重是多少。
问题:时序不是metadata,而是Memory OS的结构维度
为什么必须把时序提升到架构骨架层?
解决方案:
问题:RAG擅长把"信息片段"检索回来,却很难直接检索并复用"推理过程/操作流程/可执行技能"
解决方案:将成功的交互历史形式化为可执行技能单元
ProcMEM的三元结构:
skill = {trigger: "在什么情况下触发", execution: "具体的执行步骤", termination: "何时结束" } ProcMEM的三个阶段:
核心思想:让Agent在交互中自动提炼技能,将复杂任务成功率最高相对提升
进化闭环:
对话 → 经验提取 → 语义聚类 → 技能涌现 → 检索应用 → 更好的对话 → ... 技能特性:
针对多模态信息的处理难题,EverOS推出了mRAG(Multimodal Retrieval-Augmented Generation)检索策略:
在数据摄入端(Ingestion):
在检索端:
OpenClaw的核心设计原则是:一切持久状态都是磁盘上的Markdown文件。
文件 | 用途 | 加载时机 |
|---|---|---|
AGENTS.md | 工作区规则、安全边界、红线指令 | 每次会话(最高优先级) |
SOUL.md | Agent个性、价值观、沟通风格 | 每次会话 |
IDENTITY.md | Agent身份元数据(名字、角色、头像) | 每次会话 |
USER.md | 用户档案(名字、昵称、时区、个人背景) | 每次会话 |
TOOLS.md | 环境配置(设备信息、SSH主机、TTS偏好) | 每次会话 |
MEMORY.md | 长期记忆(已验证事实、决策、持久学习) | 仅DM主会话 |
memory/YYYY-MM-DD.md | 日记忆(当天观察、临时笔记) | 当天+昨天自动加载 |
DREAMS.md | 梦境日记(Dreaming系统输出,仅供人类审查) | 不自动注入 |
路径1:Agent主动写入(LLM决策)
路径2:Memory Flush自动写入(LLM决策)
Light Sleep(浅睡眠)——摄取与去重
REM Sleep(快速眼动睡眠)——反射与候选真理
confidence = avgScore × 0.45 + recallStrength × 0.25 + consolidation × 0.20 + conceptual × 0.10 Deep Sleep(深度睡眠)——六维评分与晋升
信号 | 权重 | 计算方式 | 含义 |
|---|---|---|---|
频率 | 0.24 | min(1, ln(signalCount + 1) / ln(11)) | 被回忆的总次数 |
相关性 | 0.30 | totalScore/max(1, signalCount) | 每次被检索时的平均质量分 |
多样性 | 0.15 | min(1,max(uniqueQueries, recallDays) / 5) | 不同查询/日期上下文的覆盖宽度 |
时效性 | 0.15 | exp(-λ × ageDays),λ = ln(2)/14 | 指数衰减,半衰期14天 |
巩固度 | 0.10 | max(0.55×spacing+0.45×span, groundedCount/3) | 多日重现或grounded信号强度 |
概念丰富度 | 0.06 | min(1,conceptTags.length / 6) | Concept标签密度 |
晋升门控:
score ≥ 0.80totalSignalCount ≥ 3max(uniqueQueries, recallDays.length) ≥ 3RDSClaw记忆插件在LoCoMo10长对话记忆基准中的表现:
Category | 类型 | OpenClaw原生 | RDSClaw插件 | 准确率差值 |
|---|---|---|---|---|
Category1 | 事实查询 | 34.04% | 62.54% | +28.50% |
Category2 | 时间相关 | 57.01% | 67.07% | +10.06% |
Category3 | 推理性 | 43.75% | 65.35% | +21.60% |
Category4 | 描述性 | 68.37% | 78.18% | +9.81% |
总体 | 全部类别汇总 | 58.18% | 72.08% | +13.90% |
关键洞察:
基于QWEN3.5 397B和27B模型,测试OpenClaw的任务执行成功率:
核心发现:
回看整条链路,每一步的核心问题都是同一个词:
这四个动作,没有一个是容量问题,全都是治理问题——谁被允许持续影响未来。
"记忆会进化"这句话需要讲实:
深层洞察:僵化的不是经验本身,而是失去了持续更新与校正机制的经验。Few-shot示例、摘要、fine-tuned preference profile——它们真正的问题是,一旦脱离了持续校正闭环,就从资产变成了惯性。
17世纪英国哲学家约翰・洛克在探讨"人格同一性"(Personal Identity)时曾提出一个著名的观点:正是意识(特别是记忆)的连续性,构成了"我"之所以为"我"的核心。
如果没有记忆,昨天的我和今天的我就没有任何关联。
当前的大模型,本质上是一把无比锋利、功能齐全的"瑞士军刀"。它什么都能切,什么都能做,但它永远是一把冰冷的工具。你每次拔出它,它都不记得上次为你削过什么苹果。
而赋予AI以持续一致、个性化、可进化的记忆,就是在为这把瑞士军刀注入"数字灵魂"。
当Agent能够:
它就不再是一个随时可以被替换的API端点,而是一个与你共同经历岁月、拥有默契暗号、真正懂你的数字伙伴。
不再"查什么用什么",而是"缺什么生什么"。
把"写/删/改"做成Agent可调用的Tool,让LLM自己管自己。
从"人工拍阈值"到"策略网络端到端优化"。
视频、音频、传感器流统一进Embedding空间。
角色-权限-隐私三权分立,防止"集体幻觉"。
从"缓存帧"到"可查询状态模拟器"。
差分隐私、可验证遗忘、审计日志、用户级GDPR擦除。