1 技术背景

当下多数 AI Agent 的能力已经趋同:接入模型、调用工具、操作本地环境、支持 skill / mcp 扩展。这些能力本身并不是全新发明。可能在某个时间点上,大模型成熟了,工具生态完善了,成本降低了,于是一个产品突然爆发。

Openclaw 做的事情,更像是把这些能力系统性地整合到一起,并且打磨到可日常使用的程度。从创新角度看,它与很多 agent 的差异,不一定在“会不会用工具”,而更可能在记忆的设计方式:分层抽象、可回溯、可编辑,并且以 markdown 明文形式存储在本地。

不少 agent 的长期记忆依赖向量库存储或隐式 embedding,对用户来说相对黑箱;而 openclaw 将部分长期特征外置为结构化文本,这是一个方向性的差异。

1.1 人格建模:从权重到配置

我原来以为,如果要训练一个“数字人”,必须训练一个模型、调参、微调权重。现在看,至少有一部分稳定特征,是可以抽取为文字的。更准确地说,并不是“非参数化建模取代了参数模型”,而是:一部分人格特征被显式化为可编辑的结构化文本。

原来是:不可解释、难控制、成本高。现在是:可解释、可编辑、可更新、可组合。

人格不再完全藏在“黑箱权重”里,而是部分迁移到“配置文件层”。虽然可以抽取你的“骨架”,但未必能完整复现你的“活性”。但在对外互动上,这种抽取往往已经足够。

如果每隔一段时间重新蒸馏、修订、进化,就不是一次性建模,而更像一个持续自我认知的工具。

1.2 记忆是否必要

多数日常信息,并不需要长期结构化保存:查完就走,是大脑的正常工作方式;日常聊天,本来也不是为了被检索;很多阅读,本质上是体验消费。openclaw 的存在,某种程度上是在提醒我们:把真正有价值的行为模式与认知轨迹提炼出来,并没有想象中那么难。

2 用户记忆

核心机制:长期记忆蒸馏与维护。

2.1 原理

与不少 agent 不同,openclaw 强调“对单一用户的持续理解”。像雇了一个固定小时工。以前家政公司每次派不同的人,每次都要重新解释一遍。现在固定一个人,他熟悉你的环境与偏好。但一个靠谱的小时工,不会因为熟悉就把你家翻个底朝天。他只会在工作过程中记录遇到的重要事项。

因此它更像是事件驱动的更新机制,而不是无差别扫描。记忆大致可分为三层:

  • 当前对话上下文(活跃工作区)

  • 每日短期记忆(抽取重要事件)

  • 长期记忆(偏好与行为模式的蒸馏)

这是一个从原始记录到可复用心智模型的过程。

2.2 如何操作记忆

  • 不手动操作,系统会定期触发蒸馏(例如 runMemoryFlushIfNeeded)

  • 显式指定:“请记住,我在北京,做后端开发,技术栈 Go 和 Python”

  • 批量抽取:让它分析历史对话,生成或更新 MEMORY.md

3 数据存储

3.1 配置文件

项目配置主要涉及两个文件:

  • 源码目录中的 .env 文件,用于设置系统运行的环境变量。

  • 根据用户配置生成的 /home/node/.openclaw/openclaw.json 文件。


3.2 用户相关数据

$HOME/.openclaw
├── agents/
│   ├── main # 主 agent
│   │   └── sessions/*.jsonl # 原始对话
└── workspace/
    ├── memory/           # 每日日志(Memory)
    │   ├── 2026-02-10.md
    │   ├── 2026-02-11.md
    │   └── 2026-02-12.md
    └── MEMORY.md         # 长期核心记忆(介于 Memory 与 Learning 之间)

以上内容均为明文的 json 与 markdown 文件。

通过这些文件,可以看到系统生成的结构化记录、执行过程,以及它如何从对话中抽取并形成用户画像。*


3.3 日常对话数据

之前版本似乎保存在 sqlite 数据库中,用户不可直接访问,只能通过 WebUI 的 sessions 查看(仅能看到对话内容,无法看到完整过程)。

当前版本观察到,对话保存在:

$HOME/.openclaw/agents/main/sessions/*.jsonl

通过 id 与数据库内容关联。我的理解是:每个 session 对应一个 jsonl 文件(新 session 可通过右下角按钮创建)。这种方式使对话记录更透明,用户可以直接查看完整的会话数据。


3.4 抽出的数据

workspace 目录下保存的是用户相关的分层抽象数据,以 markdown 明文形式存在。

源码中的 /docs/zh-CN/reference/templates/ 目录提供了数据模板,用户可以通过编辑这些模板,定义使用者与机器人的结构信息。

层级 核心文件 内容与作用 特点
静态档案层 USER.md 你的基础身份信息:位置、时区、职业等。 结构固定,需主动告知或首次触发更新。
动态记忆层 MEMORY*.md 偏好、决策与重要事实。AI 自动判断并记录。 格式固定,内容动态生成与覆盖。
会话日志层 memory/[日期].md 每日具体的对话与任务记录。 按日期记录,用于追溯历史。

4 相关资料

注意:openclaw 迭代较快,目前仅基于 26 年 2 月初的版本进行分析,后续可能发生变化。

官方文档(记忆部分)

### 🔄 Memory Maintenance (During Heartbeats)


Periodically (every few days), use a heartbeat to:


1. Read through recent `memory/YYYY-MM-DD.md` files
2. Identify significant events, lessons, or insights worth keeping long-term
3. Update `MEMORY.md` with distilled learnings
4. Remove outdated info from MEMORY.md that's no longer relevant

关键字

summarize,update,memory,MEMORY.md

相关代码

  • src/memory/manager.ts

  • src/auto-reply/reply/memory-flush.ts

重点接口

  • runMemoryFlushIfNeeded()

技术文档

  • docs/concepts/memory.md

5 使用体验

我其实并没有使用 Openclaw 很长时间,让它慢慢总结我的喜好。而是把之前和其它模型的对话喂给了它。过去和其它大模型有不少我很喜欢的对话,我都保存了下来。于是我把这些记录交给 openclaw,让它基于这些内容为我生成一份 MEMORY.md。那些对话不仅有工具性的,比如改代码、分析股票;也包括我对很多事情的判断和态度。大概二十多个 session,几万字。生成结果让我有点意外——它好像比我还了解我自己。

在界面回复里,它只提到了一些关键点;但当我打开系统里的 MEMORY.md 时,看到的是更完整的抽象层。某些偏好、某些倾向,它识别到了,却没有在对话中直接说出来,而是写进了长期记忆里——看破不说破。

更重要的是,这一切都是明文的。我能看到它如何抽取、如何组织、如何归纳。反思,之前我们和大模型聊天,它大概也会形成某种“印象”,只是存在云端。那种感觉有点失衡——它们早已经了解你,但你看不到它如何理解,也不知道画像到底是什么样。

而在 openclaw 里,这个“画像”变成了可以审视、可以修改、可以迁移的东西。如果换模型,只要把 MEMORY.md 提供给新的模型,它就能在一定程度上继承这种理解。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐