过去几个月,我把模型换了三代,插件也装了一抽屉,还是躲不开同一个尴尬:Agent 每天像“初来乍到”。
昨天刚定下的写作规则,今天就消失;前脚纠正的格式,后脚又回来了。直到把“记忆”从对话里挪到文件系统里,局面才彻底变了。
OpenClaw 给了我一个很朴素却极有效的答案:不用花哨的数据库,不追求一次性“让模型变聪明”,而是把能沉淀的东西写进磁盘,让 Agent 每次启动都“读档”。
我照着这套思路跑了 40 天,8 个 Agent 分工协作,输出质量稳定爬坡,复现成本意外地低。架构对了,模型自然就“像变聪明了”。
Agent 为何“失忆”:不是模型问题,是制度问题
多数 Agent 把上下文捆在 prompt 上,session 结束就归零。这种做法在 demo 阶段还行,上线后一地鸡毛。
我的经验是:记忆不是某次对话的附属品,而是独立的资产,需要一个可被多轮复用、可被审核、可被版本化的载体。
Shubham(Google AI PM)的做法很极简:用三层 Markdown 文件做“长期记忆”。

Agent 每次启动先读这些文件,再工作。40 天后,还是同一个模型,输出却像换了队友。
背后其实是一种组织学:把“人设—流程—知识”拆开,持续打磨。
三层文件系统:Identity / Operations / Knowledge
这套系统的美在于简单,每一层都解决一个清晰的问题。我把自己的实践和补充建议一起放在下面。
一、身份层 Identity:给 Agent 一个稳定的人设
核心文件:
- SOUL.md:人格与原则。建议控制在约 60 行以内,避免挤占工作上下文。
- IDENTITY.md:名片式速览(Name / Role / Vibe / Emoji / Inspiration)。
- USER.md:你是谁、偏好、时区、禁忌。写一次,让所有 Agent 知道“为谁服务”。
有个小技巧很管用:用大众熟知的影视角色做“风格借道”。比如把研究 Agent 设为 Dwight(The Office),模型立刻明白“较真、求证、零容忍捏造”是什么味道。我的感受是,这类高频文化符号比任何形容词更稳。
个人补充:
- 在 SOUL.md 里留一个“禁行区”清单(Never Suggest):积攒几次踩雷后写清楚,能显著降低“老问题复发”。
- USER.md 放进细节:时区、内容长度偏好、是否允许使用 emoji、是否避开某些敏感品牌。细到“绝不用破折号”都值得写;长期看,这类微偏好影响惊人。
二、操作层 Operations:把不可靠的“记在脑子里”改成“写在纸上”
核心文件:
- AGENTS.md(根):所有 Agent 共享的启动顺序、文件读取、记忆写入、安全规则。
- AGENTS.md(各 Agent 专属):在根规则上叠加各自的操作手册与输入清单。
- 专业指南:写作风格、内容格式、研究协议、目标受众画像等,按需要逐步补齐。
- HEARTBEAT.md:自检与自愈,监控关键流程与依赖。
我在一线踩过的坑主要有两个:
- 调度看起来在跑,实际上没有执行。解决办法是让 Heartbeat 定期核验“最近一次成功执行时间”,超过阈值就触发补偿。
- 浏览器或账号意外登出导致全链条哑火。Heartbeat 里把“登录状态”“关键页面是否可达”列为强约束,必要时自动拉起。
额外实践建议:
- 把“有人说‘记住这个’→ 写入 memory 文件”写进 AGENTS.md,别指望模型“自己记得”。
- 为 Heartbeat 设置“只跑一次”的节流标志,避免在异常时反复重启造成级联问题。
- 引入轻量可观测性:把每次心跳的结果写入一个 rolling log,便于回溯。
三、知识层 Knowledge:长期记忆 + 当天原始记录 + 共享世界观
核心文件:
- MEMORY.md:精炼的长期记忆。只存“重要纠偏、稳定偏好、血的教训”。
- memory/YYYY-MM-DD.md:每天的原始日志,记录当日素材、草稿、反馈。
- shared-context/:THESIS.md(当前世界观)、FEEDBACK-LOG.md(跨 Agent 通用纠正)、SIGNaLS.md(关注信号与趋势)。
两条纪律要牢牢执行:
- 只加载“今天 + 昨天”的日记。其余归档;必要时做周度/双周压缩摘要。我的 X 内容 Agent 有次暴涨到十几万 tokens,质量肉眼可见地下滑。
- 敏感偏好避免进入群聊或共享上下文;MEMORY.md 仅在直连 session 加载。
共享协作的关键在“单写者,多读者”。Dwight 写 intel/DAILY-INTEL.md,Kelly、Rachel、Pam 读;协调靠时间顺序保障:研究先跑,创作后接。省掉了 API 编排,也省掉大部分调试时间。
目录长啥样:够用就好,按需生长
一个可工作的骨架大致如此(精简版):
workspace/
- SOUL.md / IDENTITY.md / USER.md / AGENTS.md / HEARTBEAT.md / MEMORY.md
- shared-context/(THESIS.md, FEEDBACK-LOG.md, SIGNALS.md)
- intel/(DAILY-INTEL.md + 数据)
- agents/{dwight, kelly, …}/(各自的 SOUL/IDENTITY/AGENTS/专业指南/memory)
- memory/(每日操作日志与归档)
别试图“一天到位”。这套结构最好是被“真实矛盾”驱动着长出来:踩过一次坑,再把坑写进 MEMORY.md;重复三次的反馈,提炼进 FEEDBACK-LOG.md;感觉在对多个 Agent 复述世界观,就写 THESIS.md。
为什么它有效:不是模型变强,而是制度在累积
第 1 天和第 40 天,我用的是同一个模型。变的是围绕模型的“制度化记忆”。
从我的复盘里,能量化的变化有三点(口径仅供参考):
- 改稿轮次中位数从 3 次降到 1 次半,主要归功于 FEEDBACK-LOG.md 的跨 Agent 传播。
- 内容风格的一致性显著提升,尤其在“禁用标点/禁用营销语”这类细颗粒偏好上。
- 故障发现时延缩短到分钟级,Heartbeat 把“静默失败”几乎清零。
更关键的是“护城河效应”:这些文件在 40 天里不断长肉,越贴合我的语境,外人就越难复刻。你看到我的目录,也拿到同款模型,但读不出我的 THESIS 和 FEEDBACK 压过的那些边界,自然跑不出同样的味道。
复刻路线图:40 天,从能跑到能进化
给一条我亲测稳定的节奏。
- Day 0–1:装好 OpenClaw。写 SOUL.md / IDENTITY.md / USER.md。挑一个最重复的日常任务,配上 cron 跑起来。
- Day 3:开始有点失望?把不满意的地方逐条写成具体反馈,并让 Agent 记到当日日志。
- Week 1:补上根 AGENTS.md,把启动顺序、记忆写入、安全规则写清楚;为该任务加“专业指南”初稿。
- Week 2:启用 MEMORY.md。回看一周日志,把反复出现的纠偏提炼成长期条目。
- Week 3:增加第二个 Agent,采用“单写者、多读者”的文件协作;按依赖顺序排好调度。感觉在复述相同纠正?开 FEEDBACK-LOG.md 和 THESIS.md。
- Week 4:经历第一次故障后补 HEARTBEAT.md,只监控真正痛过的点;配一个简易运行日志。
额外加分项:
- 把 workspace 接上 Git,所有 Agent 的写操作自动提交,commit message 由 Agent 模板生成(包含变更动机与关联反馈)。
- 为每个共享文件标注 Owner 与写入者,严格执行“单写者”纪律;必要时使用时间窗或轻量锁防冲突。
- 设定“上下文预算线”:SOUL.md 控制在 60 行内,MEMORY.md 每两周瘦身一次,日记只读“今天+昨天”。
协作之道:没有消息队列,只有文件约定
这套方法省掉了复杂的多 Agent 编排,却更靠“约定”。我的做法:
- 文件即契约:每个共享文件都有固定结构与字段顺序,避免解析歧义。
- Mailbox 模式:上游写“已生成”的信封块,下游只读带时间戳的最新块;必要时保留最近 N 次快照。
- 失败降级:读不到研究文件时,创作 Agent 自动切到“复用既有选题”或“基于 THESIS 补位”的策略,并记录异常。
从今天开始:不是“调教模型”,而是“建设制度”
与其纠结“换不换模型”,不如把“记忆”搬上磁盘,让 Agent 每次启动都先“读档”。
如果你想立刻动手,把这篇文章丢给你的 OpenClaw Agent(我也叫它“小龙虾”),让它据此生成你的三层文件骨架;从一个重复任务起步,边跑边长。想深入研究,参考官方文档和仓库即可:
- Docs:https://docs.openclaw.ai
- GitHub:https://github.com/openclaw/openclaw
- Shubham Saboo:https://x.com/Saboo_Shubham_
最后给自己一句提醒:每天出现、认真反馈、把教训写进 MEMORY.md。
模型不会自己变聪明,制度会。