Appearance
OpenClaw Agent记忆系统:四种记忆类型让AI真正记住你
OpenClaw所以能在处理复杂任务时表现更好,很大程度上是因为它把记忆这件事设计得更完整。四种记忆各司其职:短期记忆是"工作桌面",长期记忆是"文件存档",语义记忆是"天生知识",程序记忆是"做事方法"。
你有没有遇到过这种情况:跟ChatGPT聊了一个小时,把你的项目背景全解释了一遍。第二天打开新对话,它什么都不记得了,你得重新解释一遍。或者在同一个对话里聊太久,它开始"遗忘"——你五十条消息前说过的事,它后来表现得好像从来没听过。
这不是bug,是AI记忆系统的工作方式决定的。
Agent的四种记忆
| 类型 | 本质 | 特点 |
|---|---|---|
| 短期记忆 | Context Window | 当前对话内容,对话结束就消失 |
| 长期记忆 | 外部文件/数据库 | 主动存到本地,下次可读回 |
| 语义记忆 | 模型训练权重 | 训练时学会的知识,永远在 |
| 程序记忆 | Skill/SKILL.md | 固化的做事方法,调用时始终读取 |
01 短期记忆:AI的"工作桌面"
想象你在桌上做事。桌面上摊着的东西,就是你现在能看到和处理的内容。桌面有大小限制,摆不下的只能收起来或者扔掉。
AI的Context Window就是这张桌面。你说的每一句话、它的每一条回复、每次工具调用的结果,都摆在这张桌面上。它"思考"时,看的就是桌面上的东西。
两个关键限制:
| 限制 | 说明 |
|---|---|
| 对话结束就清空 | 明天开新对话,今天说过的一切全部消失,AI对你一无所知 |
| 装满了会压缩旧内容 | 同一个对话聊太久,早期内容被摘要掉,细节消失 |
ChatGPT基本只有这一种记忆。这就是为什么它"健忘"——它只能在当前对话里记住事情,而且对话一长,连当前的事也开始遗忘。
02 长期记忆:写到文件里,下次再读回来
AI本身没有持久记忆——它不会"记住"你,除非有人帮它把信息存起来。
OpenClaw的做法是:用filesystem Skill把重要内容写到本地文件。下次对话开始时,自动把这个文件读进Context Window。这样Agent就"记得"上次做到哪里了。
第一次对话:你告诉OpenClaw「我是做AI工具的,关注Agent方向」
→ 任务完成后,写入memory.md
→ 对话结束,文件保留在本地
第二次对话:对话开始,自动读取memory.md载入背景信息
→ 你直接说「帮我继续上次的任务」
→ 它知道你是谁、上次做了什么、偏好是什么memory.md示例:
markdown
# 用户背景
- 方向:AI 工具,重点关注 Agent 方向
- 偏好:简洁直接,不要废话
- 常用语言:Python / TypeScript
# 上次任务进度
- 正在搭建每日简报系统,已完成 S1 S2
- S3(Claude 筛选)还没写 Prompt
- 下次从 prompts/filter.md 开始这就是OpenClaw比普通ChatGPT更有"连续性"的原因——它有地方存东西,也有机制把存的东西读回来。
03 语义记忆:天生就会的知识
你从来没告诉过OpenClaw"Python是一门编程语言""HTTP是什么协议"——但它知道。
这就是语义记忆:训练时学进去的知识,固化在模型参数里,永远在,不会消失。
| 语义记忆(永久) | 短期记忆(临时) |
|---|---|
| Python语法 | 你刚才说的需求 |
| HTTP协议原理 | 本次任务的进度 |
| 世界各国首都 | ❌ 上次对话的内容 |
| 数学公式 | ❌ 你是谁 |
一个重要限制:语义记忆有知识截止日期。模型训练完之后发生的事,它不知道。
这就是为什么你问OpenClaw"最新的AI新闻",它会去调用rss-reader Skill抓实时信息,而不是靠自己"记忆"——它知道自己的语义记忆有时效限制。
04 程序记忆:Skill就是固化的"做事方法"
这是四种记忆里最有OpenClaw特色的一种,也是最容易被忽视的。
举个例子:你让厨师每天帮你做早餐。有两种方式:
| 方式 | 效果 |
|---|---|
| ❌ 没有程序记忆 | 每天早上重新告诉他:"先煮水,放鸡蛋,煮8分钟,再做吐司" |
| ✅ 有程序记忆 | 把食谱写下来给他,以后只说"按食谱做" |
OpenClaw的Skill就是那份食谱。SKILL.md写清楚"这个任务怎么做",每次调用都照着执行,不需要占用对话空间,也不会因为Context压缩而消失。
你:「帮我抓取今天的 GitHub Trending」
↓
读取程序记忆(SKILL.md)
「抓取 GitHub Trending 的方法:访问 github.com/trending,过滤 AI 相关仓库,返回 Top 10...」
↓
直接按 Skill 里的方法执行,不需要你再解释一遍关键作用:约束写在对话里(短期记忆),容易被压缩丢失。写进SKILL.md(程序记忆),每次调用都读,永远生效。
四种记忆在一次任务里如何协作
用一个具体例子串起来:你让OpenClaw"帮我整理今天的AI简报"。
| 记忆类型 | 作用 |
|---|---|
| 短期记忆 | "整理今天的AI简报"这条指令进入Context Window,抓取结果、筛选过程全部摆在当前工作桌面 |
| 长期记忆 | 对话开始时读取memory.md:知道你关注Agent方向、偏好简洁风格、不要商业新闻 |
| 语义记忆 | 知道AI、Agent、LLM这些概念是什么,能判断哪些内容跟你方向相关 |
| 程序记忆 | rss-reader Skill里写好了"抓哪些来源、怎么过滤、输出什么格式",直接照着跑 |
四张表说清楚
| 类型 | 在OpenClaw里是什么 | 会消失吗 |
|---|---|---|
| 🗂️ 短期记忆 | 当前对话的Context Window | 对话结束消失 |
| 💾 长期记忆 | filesystem写入的本地文件 | 永久保留 |
| 🧠 语义记忆 | 模型训练时学到的知识 | 永久存在 |
| ⚙️ 程序记忆 | Skill里的SKILL.md | 调用时始终读取 |
普通AI聊天工具,只有短期记忆和语义记忆。你的项目背景要反复解释,任务一长开始遗忘,对话关掉什么都没留下。
OpenClaw加上了长期记忆和程序记忆,让Agent在复杂、长周期的任务里真正能用起来——它记得你是谁,记得做到哪了,记得怎么做事。
