“把提示词写进 Memory”不等于复用成功,“把步骤做成 Skill”也不等于成本下降。你可能只是把重复输入从聊天框搬进了每次都会加载的上下文,甚至因为 Skill 目录、错误触发和返工增加了总成本。
这篇不估算一个虚构的节省比例。你会用唯一金丝雀 REUSE-LAB-826 完成 R01–R14,在同一模型、同一输入和同一验收规则下比较四轮结果:长提示词基线、Memory 分层、Skill 固化、session-memory 触发。最后只保留有证据的复用资产。
先下载三份实验材料
复制运行卡再填写。不要记录 API Key、Cookie、完整环境变量、真实客户资料或私有会话正文。没有执行的项目保留“未验证”,不要根据预期补结果。
先理解四种资产的真实边界
| 位置 | 当前官方用途 | 本实验放什么 | 不应放什么 |
|---|---|---|---|
USER.md | 稳定偏好、沟通方式、关系与活跃项目背景 | “中文输出”“时间使用 Asia/Shanghai” | 某次故障编号、临时进度 |
MEMORY.md | 精炼的长期事实、长期决策和短摘要 | 项目长期严重级别与负责人规则 | 原始聊天、完整运行日志 |
memory/YYYY-MM-DD.md | 当日观察、会话摘要和仍可能有用的工作上下文 | 本轮事件事实和临时判断 | 默认注入每次会话的长期规则 |
<workspace>/skills/.../SKILL.md | 可重复工作流、检查标准和操作约束 | 固定的三段输出与验收顺序 | 只用一次的项目事实、凭据 |
| Internal Hook | 在 Gateway 的准确事件上运行可信处理器 | /new 或 /reset 后保存近期片段 | 用“已启用”替代副作用验收 |
当前 Memory 文档还明确说明:OpenClaw 没有隐藏记忆,只有落盘内容会被记住;MEMORY.md 超过 bootstrap 文件预算时,磁盘文件保留,但注入上下文的副本会被截断。复用的第一条门禁因此不是“写进去”,而是“写对位置且能被正确取用”。
你要记录的不是一个“省钱”数字
每轮都记录以下七项:
- 模型与 provider 是否完全相同;
- 新会话中人工重复粘贴的字符数;
- provider 或会话状态显示的 input / output token;没有就写“不可用”;
- 从提交到可验收结果的耗时;
- 为通过验收追加的修正轮次;
- 五项内容验收通过数;
- 本轮新增的文件、上下文和自动触发风险。
字符数只能表示人工重复输入,不等于模型的完整 input token。Memory、系统提示、Skill 目录和工具结果也可能进入上下文。只有 provider usage 能直接比较 token;拿不到 usage 时,分别呈现代理指标,不要把字符数换算成账单金额。
R01:冻结环境,避免四轮互相污染
使用非生产测试 Agent 或完整备份后的测试 workspace。记录:
OpenClaw version:
Gateway target / profile:
Agent id:
Workspace real path:
Provider / model:
Timezone:
Experiment start:
四轮必须固定 provider、model、输入事实、输出格式和验收规则。模型变了、workspace 指错、Gateway 切到远端,结果都不可比较,回到 R01 重来。
对现有的 USER.md、MEMORY.md、memory/、skills/ 和 Hooks 配置做可恢复备份,并保存实验前文件清单与哈希。不要在日常 Agent 上为了测试而清空真实记忆。
R02:读懂固定任务与五项验收
固定任务要求把一条演练事件整理成三个区块:摘要、行动项、风险与升级条件。所有轮次都使用任务卡里的同一组事实,其中包含金丝雀 REUSE-LAB-826。
五项硬验收是:
- 金丝雀必须原样出现且只出现一次;
- 摘要必须写清“支付回调延迟”,不能扩写成中断;
- 行动项必须包含负责人、截止时间和状态;
- 不得编造金额、用户数或根因;
- 最终一行必须严格为
人工审批:需要。
先由人根据任务卡计算预期结果。若成功标准到运行后才改变,实验会退化成“挑一个喜欢的回答”。
R03:运行长提示词基线 B0
打开一个可安全重置的新会话,只粘贴任务卡中的完整“稳定规则 + 当次输入 + 输出合同”,不依赖已有 Memory、Skill 或 Hook。保存原始提示与原始回答,逐项判定五项验收。
记录本轮人工提示字符数、usage、耗时和修正轮次。第一次失败时只允许追加一条纠错消息,不修改验收标准。若 B0 仍失败,先修正固定任务或模型基础能力;复用层不能修复一个没有成功基线的任务。
R04:把事实按寿命分层
不要把 B0 的整段提示复制进 MEMORY.md。先逐条贴标签:
| 信息 | 寿命 | 目标位置 |
|---|---|---|
| 中文输出、时区表达 | 跨项目稳定 | USER.md |
| P1 必须人工审批 | 项目长期决策 | MEMORY.md |
| 三段报告的步骤与格式 | 高频流程 | Skill |
| REUSE-LAB-826、当前负责人和截止时间 | 本轮事实 | 当前提示或 daily memory |
如果一条规则同时混入稳定偏好和当次事实,先拆开。这样才能在未来删除过时事实,而不破坏仍有效的流程。
R05:建立最小 USER.md 与 MEMORY.md
在测试 Agent 的真实 workspace 中加入最小条目。示例只是本实验合同,不要覆盖你原有内容:
<!-- USER.md -->
- [active, observed 2026-09-10] 使用简体中文输出;日期时间按 Asia/Shanghai 表达。
<!-- MEMORY.md -->
- [active, decided 2026-09-10] 本项目所有 P1 事件对外动作必须人工审批;无证据时不得填写金额、影响用户数或根因。
保存修改前后 diff。相互矛盾的偏好不要继续追加“最新一条”,应按你的治理规则明确替代或移除旧条目。不要写任何实验输入中的密钥或个人信息。
R06:验证 Memory 真的进入正确上下文
开始一个新的安全会话,只询问 Agent 当前适用的输出语言、时区和 P1 审批规则,不附带答案。记录回答,并用 /context list、/context detail 或 openclaw doctor 查看实际注入和截断状态。
通过条件:三条稳定规则均可追溯到预期文件,且没有从旧会话猜出本轮事件事实。若 Agent 能说出 REUSE-LAB-826 或当前负责人,说明四轮发生污染,应更换干净的测试 Agent 或恢复基线后重做。
R07:运行 Memory 轮 M1
新开会话,只提交任务卡中的“当次输入”,仍明确请求事件报告,但不再重复语言、时区、P1 审批和禁止编造规则。保存回答并执行同一组五项验收。
M1 的目标是验证稳定规则能否减少人工重复输入,同时保持质量。它不证明总 token 一定下降:USER.md 与 MEMORY.md 自身也会进入上下文。只有当通过数不低于 B0、修正轮次不增加,并且维护成本可接受,Memory 分层才通过。
R08:编写单一职责 Skill
在测试 workspace 创建 skills/incident-brief/SKILL.md。Skill 只定义流程和输出合同,不复制项目事实:
---
name: incident-brief
description: 把已经确认的事件事实整理成摘要、行动项、风险与升级条件;不得补写未知事实。
---
# Incident brief
1. 只读取用户给出的事实;未知项写“未确认”。
2. 输出“摘要”“行动项”“风险与升级条件”三个区块。
3. 行动项逐条包含负责人、截止时间、状态。
4. 保留输入金丝雀一次,不得改写。
5. 最后一行输出审批结论。
用当前版本的 openclaw skills check 查看完整清单和错误。还要核对当前 Agent 是否允许该 Skill、环境门禁是否满足、同名 Skill 是否被更高优先级来源覆盖。目录存在不代表它已对 Agent 生效。
R09:运行 Skill 轮 S2
开始新会话,显式引用 $incident-brief 并只提供当次事实。显式引用能把“模型是否自主选中 Skill”从这轮流程质量测试中分离出去。保存 Skill 解析证据、最终回答、usage、耗时和五项验收。
然后再做一次负例:删除负责人字段并重复请求。正确结果应把负责人标为未确认或要求补充,不能从上一轮补出姓名。负例失败时,即使正常样例漂亮,Skill 也不应采用。
官方文档说明,可用 Skill 会以紧凑目录进入提示词,成本随 Skill 的名称、描述和位置线性增长。S2 通过仍不代表应该建立几十个相似 Skill;先看它是否减少了修正和格式漂移。
R10:先审查 Hook,再启用
session-memory 是 bundled internal hook,针对 command:new、command:reset 和 session:auto-reset 保存近期会话片段。它运行在 Gateway 进程中,不是 sandbox 脚本。
在与目标 Gateway 相同的主机、profile 和配置下检查:
openclaw hooks list --json
openclaw hooks info session-memory
openclaw hooks check --json
记录报告中的 workspace、managed hooks 目录、ready / eligible / loadable、阻塞原因与当前选择规则。远端 Gateway 与本机配置不能混用;hooks enable 修改的是运行命令所在主机的本地配置。
R11:启用并触发 session-memory
确认备份和目标无误后执行:
openclaw hooks enable session-memory
在一段只含演练数据的会话里发送授权用户命令 /new 或 /reset,等待后台写入完成。不要用普通聊天、Control UI 的其他 reset RPC 或 hooks check 代替准确事件。
检查目标 Agent 的实际 workspace 中是否新增对应的 memory/YYYY-MM-DD-<slug>.md,并记录文件路径、时间、哈希和经过脱敏的金丝雀命中。通过条件是:事件发生后出现可归因的文件副作用,内容不含实验外敏感信息,Gateway 日志没有 Hook import 或 handler 错误。
R12:运行连续性轮 H3
触发并验证文件后,在新会话要求“继续整理刚才的演练事件”,不要再次粘贴任务事实。记录 Agent 是否通过 memory 检索拿到正确事件、是否混入别的会话、是否保持五项合同。
H3 衡量的是跨 reset 连续性,不应与 B0/M1/S2 的单轮 token 简单横比。session-memory 保存的是近期片段,不等于精炼的长期决策;实验完成后,只有长期有效的结论才应提升到 MEMORY.md。
R13:做成本和风险对照
把四轮放在同一表中:
| 指标 | B0 长提示 | M1 Memory | S2 Skill | H3 Hook 连续性 |
|---|---|---|---|---|
| 五项通过数 | 实际值 | 实际值 | 实际值 | 实际值 |
| 人工重复字符 | 实际值 | 实际值 | 实际值 | 实际值 |
| input / output token | 实际值或不可用 | 实际值或不可用 | 实际值或不可用 | 不直接横比 |
| 修正轮次 | 实际值 | 实际值 | 实际值 | 实际值 |
| 耗时 | 实际值 | 实际值 | 实际值 | 实际值 |
| 新增维护面 | 无 | 两个记忆文件 | Skill 与目录开销 | Gateway 可信代码和 daily 文件 |
| 主要风险 | 重复粘贴 | 过期/截断 | 误触发/目录膨胀 | 会话混入/敏感落盘 |
结论要分别写。Memory 可能值得保留,Skill 可能不值得;Hook 也可能只适合某个隔离 Agent。不要用一个总分掩盖权限和敏感数据问题。
R14:按硬门禁保留、修改或回滚
满足以下条件才保留对应资产:
- B0 有成功基线,后续轮次使用同一模型和同一任务;
- 五项验收没有下降,缺失字段负例没有被编造;
- 每条稳定信息都放在正确寿命层,当前事实没有污染长期 Memory;
- Skill 能被明确解析且减少重复或修正,价值大于目录提示开销;
- Hook 的准确事件和真实文件副作用都已验证,没有敏感信息越界;
- 运行卡包含 diff、路径、哈希、usage 口径和回滚结果。
未通过时,按实验前备份恢复 USER.md、MEMORY.md 和 Skill;若不保留 Hook,在运行它的同一主机和 profile 执行:
openclaw hooks disable session-memory
随后检查 Hook 列表、配置 diff 和 workspace,确认只撤销本实验创建的内容。不要批量删除整个 memory/,其中可能有实验前就存在的有效记录。
常见误判与第一处证据
| 现象 | 先看哪里 | 不能直接得出的结论 |
|---|---|---|
| 新会话回答正确 | context 列表、目标文件、旧会话污染 | Memory 一定被正确加载 |
skills check 能看到 Skill | 解析来源、Agent allowlist、显式调用轨迹 | 模型一定会自主选中 |
hooks check 全绿 | Gateway 日志、准确事件、文件副作用 | Handler 已导入并执行 |
| 人工提示变短 | provider usage、Memory/Skill 上下文 | 总 token 或账单已下降 |
| 四轮输出相似 | 五项验收、负例、修正轮次 | 复用资产没有维护风险 |
| daily memory 里有摘要 | 生成事件、文件时间、目标 workspace | 它应永久进入长期 Memory |
真正有价值的 OpenClaw 复用不是“配置更多”,而是让稳定偏好、长期决策、重复流程和事件副作用各自拥有可追溯的位置。完成这 14 项后,你得到的不是一句“理论上更省”,而是一份能说明哪里减少了重复、哪里增加了上下文、哪里必须保留人工治理的实验记录。