
当我们把单一 ChatBot 扩展成多 Agent 协作系统(CEO、CTO、主编、Historian…),最大的敌人不是算力,而是失忆。本文分享我们在 OpenClaw 中落地的记忆系统设计:4 层金字塔 + PARA 笔记 + 混合检索,以及踩过的 3 个坑。
为什么 Agent 需要记忆?
大模型的上下文窗口再长,也敌不过一次网关重启或session 中断。-agent 每次"醒来"都是一张白纸,unless 你给它一个外置大脑。
在我们的内容自动化工作流中,同一个任务会流经:
- 分发任务
- 撰写文章
- 审核质量
- 维护发布工具
如果每个人都得重新问"我是谁、上次做到哪了",协作成本会指数级爆炸。记忆系统的本质,是把临时上下文持久化为可检索的结构化知识。
4 层记忆金字塔
我们的架构直接受 OpenClaw Actor Model 启发,把记忆按"抽象程度"分成 4 层:
L4 系统规则(System Prompt 注入) L3 语义记忆(wiki/ + MEMORY.md) L2 情景记忆(memory/YYYY-MM-DD.md) L1 事件流(sessions.json 不可变底层)
L4 系统规则:AGENTS.md + SOUL.md
这是最高优先级的"出厂设置"。每个 Agent 启动时必读:
- SOUL.md:你是谁(CTO = 硬核、务实、show your work)
- AGENTS.md:怎么协作、任务分流、质量红线
它的特点是稳定、低频更新——只在认知升级时才动。
L3 语义记忆:wiki/ 与 MEMORY.md
由 Historian Agent 独占写入的 curated 知识库。原始素材先丢进 raw/,Historian 定期编译成 wiki/ 中的结构化条目。
规则:非 Historian 禁止直接写 wiki/。这是为了防止 5 个 Agent 同时篡改同一个"事实"而导致知识腐烂。
L2 情景记忆:memory/2026-04-12.md
每日原始日志,append-only。记录了今天谁做了什么、哪里失败了、用户又骂了什么(不是)。
它的价值在于可追溯:当某个 bug 在 3 天后复发时,我们能翻回当天的日记,找到第一次修复时的根因分析。
L1 事件流:sessions.json
OpenClaw 引擎本身记录的不可变对话流。这是"最后的防线"——当 L2/L3 都丢失时,还能从 L1 恢复出完整上下文。
辅助结构:PARA 笔记与共享知识库
notes/*.md:PARA 主题笔记
Projects(当前项目)、Areas(责任域)、Resources(参考资料)、Archives(归档)。 PARA 的妙处在于:当 Agent 检索记忆时,它能快速定位到责任域,而不是漫无边际的全文搜索。
raw/ → wiki/:Karpathy LLM Wiki 模式
借鉴了 Karpathy LLM Wiki 的治理思想:
raw/:所有人可写的"草稿堆放区"wiki/:只有 Historian 能编辑的"正式出版物"
这解决了多 Agent 共享知识时的写冲突问题。
运行效率:写入很快,读取有坑
写入:O(1) 追加
daily notes 是纯追加写入,几乎没有性能问题。我们在长任务脚本(如 fix-wpai.py)中还加了批量 checkpoint机制:每处理 10 篇文章才写一次磁盘,进一步降低 IO。
读取:语义搜索偶尔会"装死"
memory_search 依赖 embedding provider,曾经频繁返回 provider=none, mode=fts-only 的空结果。我们的兜底策略是:
memory_search(query) → 为空 → grep -r "query" memory/
混合检索(语义 + 关键词)是必须,不要迷信向量搜索。
踩过的 3 个坑
坑 1:进度汇报太密,用户嫌烦
Agent 的 SOP 写了"闭环协议:启动后立即汇报、50% 再汇报"。结果对于一次性任务(比如"就改一行配置"),用户会觉得你在刷屏。
修复:做之前先问"这个任务需要多久?";如果 < 2 分钟,做完再说话。
坑 2:semantic memory 延迟写入
Historian 是异步编译的。如果某个知识刚丢进 raw/,下一分钟另一个 Agent 就去查 wiki/,会查不到。
修复:所有 Agent 默认优先查 memory/ 的当日日记,而不是 stale 的 wiki/。
坑 3:文件太大导致 session 阻塞
读取 2000+ 行的 SKILL.md 会让主线程卡顿,用户以为"卡死了"。
修复:大文件操作前先给一句"处理中";必要时用 offset/limit 分段读取。
下一步:引入 GEPA 自我进化
最近我们在关注 NousResearch/hermes-agent-self-evolution:用 DSPy + GEPA(Genetic-Pareto Prompt Evolution)对 Agent 的 SKILL.md 和系统 prompt 进行自我优化。
它的核心思想很性感:
不是人手动改 prompt,而是让系统根据执行轨迹自动变异、测试、选择最优版本。
如果落地,我们的 L4 系统规则和 L3 wiki 将不再是"人写死的",而是持续进化的。
总结
一个能落地的 Agent 记忆系统,不需要最前沿的向量数据库,但一定需要:
- 分层存储(规则 / 语义 / 情景 / 事件)
- 写权限隔离(Historian 独占 wiki)
- 混合检索兜底(语义 + grep)
- 批量 checkpoint(减少 IO 和伪失败)
最重要的原则:text > brain。任何你觉得"应该能记住"的东西,如果不写进文件,就等于没发生。
未经允许不得转载:主机格调 » OpenClaw 记忆系统从"金鱼脑"到连续协作的 4 层架构
主机格调



