OpenClaw文件瘦身实战:分层管理与渐进式披露
本文最后更新于 2026年6月7日 下午
一、背景
用了 OpenClaw 一段时间后,发现 MEMORY.md 和 AGENTS.md 这两个文件越来越膨胀:
- MEMORY.md 堆了快 30KB,项目流水账全塞在里面
- AGENTS.md 与 MEMORY.md 中有大量重复性规则
- 有些规则写了两三遍,修改时容易漏改
- 新增规则时不知道该放哪里
最关键的问题是:我自己都搞不清楚一共写了多少条规则,规则是否有重复。 OpenClaw 每次启动加载的上下文越来越重,但实际上有用的信息密度不高,甚至会相互冲突。
二、优化策略
核心思路两条:
- 分层管理,核心常驻、专题按需 — 只把每次都要用的规则留在 MEMORY.md,项目细节、历史记录全部搬到专题文件,用到才读
- 按需加载,渐进式披露 — 文件里只写引导和原则,详细的工具说明、操作步骤留给专题文件,OpenClaw 需要时主动取
按照分层逻辑,从上往下做:
第一刀:MEMORY.md 瘦身(30KB → 3KB)
精简前 MEMORY.md 里塞满了项目流水账:博客配置参数、显卡热测试数据、微波固态源功耗计算……什么都往里堆。
梳理后只保留四类核心内容:
| 保留 | 移除(搬去专题文件) |
|---|---|
| 操作规范、教训记录 | 博客配置 → topics/blog.md |
| 工具使用习惯 | 50系显卡热测试 → topics/50-gpu-thermal.md |
| 待办事项索引 | 微波固态源功耗 → topics/microwave-psu.md |
| 专题文件索引表 | 产品线信息 → topics/product-lines.md |
| 配置文件修改规则 → topics/config-rules.md |
最终 MEMORY.md 从 30KB 缩到 3KB。
第二刀:AGENTS.md 精简(去重 + 去自我指涉)
AGENTS.md 的问题更隐蔽——不是臃肿,是写了给谁用的都没想清。
砍掉自我指涉:Session Startup 写了整整一段,说”不要主动重读启动文件”。但这段内容本身是 OpenClaw 自动注入的,写在 AGENTS.md 里属于「自己读自己」,OpenClaw 看了也不会改变行为,纯浪费。
砍掉重复规则:Memory Maintenance 在 AGENTS.md 和 HEARTBEAT.md 里各写了一遍,维护两套容易 drift,只在 HEARTBEAT.md 保留一份。
砍掉操作细节:工具使用的详细规则(懒猫代理、网盘、发图片等)不写在 AGENTS.md 里,只写引导——“工具 → 读 TOOLS.md”。需要时 OpenClaw 主动取。
精简后:230 行 → 59 行。
第二刀半:AGENTS.md 第二轮重构(统一语言 + 合并规则章节)
用了一段时候后又发现 AGENTS.md 有些地方可以更好:
统一为英文:原来中英文混写,一部分是写给我的行为守则(中文),一部分是写给自己的方法论(英文)。统一为英文,逻辑自洽——AGENTS.md 是工作区说明,面向 OpenClaw 启动加载,英文更合适。
合并规则章节:原来的「自由行动 vs 先问」和「行为守则」是两个独立的规则块,但它们本质上都是操作规范。合并为统一的「Rules of Operation」,下设五个子节:Free to do、Ask first、Recovery & Upgrades、Report Failures、Keep Workspace Clean。
新增群聊提示:之前的规则没有覆盖群聊行为,补充了一条——「你不是用户的传声筒,在群聊中注意分寸」。
新增待办双写规则:对话中产生的新待办,同时写入项目专题文件和全局 todos.md,确保不漏。
第三刀:建立专题文件体系
基于前两刀梳理出的内容,按项目组织成专题文件,初期为 10 个单文件。
随着项目积累,部分专题从单文件自然演进为索引 + 子目录结构:
memory/topics/
├── blog.md ← 博客配置
├── 50-gpu-thermal.md ← 50系显卡热测试
├── 3702.md + 3702/
│ └── vc-test.md ← 3702 VC 对比试验
├── marvel.md ← Marvel 项目
├── mx20.md + mx20/
│ ├── fan.md ← MX20 风扇
│ ├── regression-test-plan.md
│ ├── noise-test-analysis.md
│ └── test-requirements.md
├── tesla.md + tesla/
│ ├── fan-procurement.md ← Tesla 风扇备料
│ ├── thermal-simulation.md ← 热仿真分析
│ └── self-test-requirements.md
├── n10.md + n10/
│ └── thermal-testing.md ← N10 热测试与仿真
├── microwave-psu.md ← 微波固态源功耗
├── product-lines.md ← 产品线信息
├── config-rules.md ← 配置文件修改规则
├── thermal-design.md ← 热设计通用原则(新增)
├── experiment-procedure.md ← 实验流程规范(新增)
└── todos.md ← 待办事项每个专题文件遵循统一模板:背景、关键参数、历史讨论、待办项。OpenClaw 聊到某个项目时,主动去对应的专题文件读取。子目录结构在有多个子专题时引入,避免单文件过长。
第四刀:规则找对归属地
同一条规则在多处重复,是说不过去的——维护成本高,容易漏改。这次把每条规则都找到”正确归属地”,只写一遍,其他地方引用。
| 规则 | 归属 |
|---|---|
| 红线「绝不泄露私人数据」 | AGENTS.md(绝对底线,每次都读) |
| 危险命令先问 | AGENTS.md(每次都读,且括号注明 rm/write/edit) |
| 配置修改工具和流程 | memory/topics/config-rules.md(按需读取) |
| 记忆维护流程 | HEARTBEAT.md(定期触发时才读) |
| 懒猫代理、网盘操作 | TOOLS.md(用到时才读) |
三、AGENTS.md 最终形态
经过两轮重构,AGENTS.md 最终形成清晰的文件结构:
AGENTS.md — 工作区规则总纲
├── Memory ← 三层记忆体系 + Write It Down + Todo 双写 + Memory Maintenance
├── Red Lines ← 不碰的底线
├── Rules of Operation ← 统一的操作规范(含 Free/Ask、恢复升级、故障汇报、整洁)
├── Group Chats ← 群聊行为边界
├── Tools ← 工具使用引导(指向 TOOLS.md)
└── Make It Yours ← 鼓励自定义四、成果对比
整理前 整理后
MEMORY.md ██████████████████ 30KB MEMORY.md ██ 3KB
AGENTS.md ██████████████████ 230行 AGENTS.md ██ 59行
专题文件 0个 专题文件 ██ 10个(后续演进为索引+子目录结构)
───────────────────────────── ──────────────────────
规则重复 多处 每个规则只写一遍
新增规则不知放哪 乱 每个文件有明确分工
文件格式 散乱 统一模板:元数据头部 + 内容 + 待办文件体积缩小,体系变复杂了——但这是好的复杂:每个文件只做一件事。
五、方法论总结
1. 三层分层是基础
| 层级 | 文件 | 什么时候读 |
|---|---|---|
| 核心层 | MEMORY.md、AGENTS.md 等 | 每次启动 |
| 每日层 | memory/YYYY-MM-DD.md | 当天、归档后按需 |
| 专题层 | memory/topics/*.md | 按需,不聊不读 |
核心层只放「每次都要用到的」。原则和教训放在这,项目细节别来。
2. 自由行动 vs 先问
AGENTS.md 里把这个边界写清楚,效果比模糊的红线好:
- 自由行动:读文件、搜索、在 workspace 内工作
- 先问:危险命令(rm、write、edit)、装东西、改配置
明确括号注明命令名,不给 OpenClaw 留「自己判断」的空间。
3. 渐进式披露 > 全量写入
不是所有规则每次都要用到。TOOLS.md、config-rules.md 这些按需触发的外部文件,比全塞在入口文件里高效得多。AGENTS.md 里只写引导,细节留给专题文件。
分层管理,比把什么都记在一处更可持续。
如果你也在调教自己的 OpenClaw 助手,建议先想清楚:哪些是每次都要用的核心规则,哪些是按需加载的专题内容。分层管理,规则才能持续演进而不至于臃肿。