OpenClaw 应用

OpenClaw Agent 复用成本实验:用 14 项证据验证 Memory、Skills 与 Hooks

下载固定任务和验收表,用同一模型完成基线、Memory、Skill 与 session-memory 四轮实验,实测重复提示、修正轮次、上下文开销和触发证据。

进阶 预计 75 分钟 更新 2026/9/10 核验 2026/9/10
本页目录
官方文档核验 · 尚未运行实测查看验证范围

2026-09-10 依据 OpenClaw 当前 Memory、Skills、Hooks 与 Bundled Hooks 官方文档重写;固定任务、计量方法和 R01–R14 验收表由本站设计,未在读者的模型、Gateway 或工作区运行,因此所有实测栏默认未验证。

完成结果

学完后你会留下什么

一份 R01–R14 验收表、四轮运行记录、Memory 与 Skill diff、Hook 触发产物、成本对照和明确的保留或回滚决定。

适合谁
已经跑通 OpenClaw 实际任务,想减少重复提示和修正成本,但不愿用主观感受代替运行证据的个人或团队
开始前确认
  • OpenClaw 已完成 onboarding 且能进行普通对话
  • 可以访问一个非生产测试 Agent 的 workspace
  • 能查看 Markdown 文件和命令输出
  • 实验期间固定模型、任务输入和验收规则

“把提示词写进 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 文件预算时,磁盘文件保留,但注入上下文的副本会被截断。复用的第一条门禁因此不是“写进去”,而是“写对位置且能被正确取用”。

你要记录的不是一个“省钱”数字

每轮都记录以下七项:

  1. 模型与 provider 是否完全相同;
  2. 新会话中人工重复粘贴的字符数;
  3. provider 或会话状态显示的 input / output token;没有就写“不可用”;
  4. 从提交到可验收结果的耗时;
  5. 为通过验收追加的修正轮次;
  6. 五项内容验收通过数;
  7. 本轮新增的文件、上下文和自动触发风险。

字符数只能表示人工重复输入,不等于模型的完整 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.mdMEMORY.mdmemory/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 detailopenclaw doctor 查看实际注入和截断状态。

通过条件:三条稳定规则均可追溯到预期文件,且没有从旧会话猜出本轮事件事实。若 Agent 能说出 REUSE-LAB-826 或当前负责人,说明四轮发生污染,应更换干净的测试 Agent 或恢复基线后重做。

R07:运行 Memory 轮 M1

新开会话,只提交任务卡中的“当次输入”,仍明确请求事件报告,但不再重复语言、时区、P1 审批和禁止编造规则。保存回答并执行同一组五项验收。

M1 的目标是验证稳定规则能否减少人工重复输入,同时保持质量。它不证明总 token 一定下降:USER.mdMEMORY.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:newcommand:resetsession: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 MemoryS2 SkillH3 Hook 连续性
五项通过数实际值实际值实际值实际值
人工重复字符实际值实际值实际值实际值
input / output token实际值或不可用实际值或不可用实际值或不可用不直接横比
修正轮次实际值实际值实际值实际值
耗时实际值实际值实际值实际值
新增维护面两个记忆文件Skill 与目录开销Gateway 可信代码和 daily 文件
主要风险重复粘贴过期/截断误触发/目录膨胀会话混入/敏感落盘

结论要分别写。Memory 可能值得保留,Skill 可能不值得;Hook 也可能只适合某个隔离 Agent。不要用一个总分掩盖权限和敏感数据问题。

R14:按硬门禁保留、修改或回滚

满足以下条件才保留对应资产:

  • B0 有成功基线,后续轮次使用同一模型和同一任务;
  • 五项验收没有下降,缺失字段负例没有被编造;
  • 每条稳定信息都放在正确寿命层,当前事实没有污染长期 Memory;
  • Skill 能被明确解析且减少重复或修正,价值大于目录提示开销;
  • Hook 的准确事件和真实文件副作用都已验证,没有敏感信息越界;
  • 运行卡包含 diff、路径、哈希、usage 口径和回滚结果。

未通过时,按实验前备份恢复 USER.mdMEMORY.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 项后,你得到的不是一句“理论上更省”,而是一份能说明哪里减少了重复、哪里增加了上下文、哪里必须保留人工治理的实验记录。

官方资料

版本和参数,以这些来源为准

本文按实际任务重写,快速变化的信息仍应在操作前回到官方页面核对。

常见问题

继续操作前,先确认这些边界

把长提示词移进 Memory 就一定省 token 吗?

不一定。USER.md 和 MEMORY.md 会进入新会话上下文,过长内容仍会占预算,MEMORY.md 超过 bootstrap 预算还会被截断。必须比较模型实际 usage 或同一口径的字符数、修正轮次和通过率。

session-memory 能代替长期 Memory 吗?

不能。它在 /new、/reset 或自动重置事件上保存近期会话片段,产物属于 daily memory 工作层;稳定偏好和长期决策仍需筛选后进入 USER.md 或 MEMORY.md。

为什么 Skill 不是越多越好?

可用 Skill 会形成紧凑目录并进入提示词,其开销随名称、描述和位置增长。只有边界清楚、高频复用且能减少修正的流程才值得保留。

hooks check 通过是否代表 Hook 已工作?

不是。官方文档说明 ready、eligible 和 loadable 不证明 Gateway 已导入处理器或事件已经触发;还要执行准确事件并检查 Hook 专属日志或文件副作用。

继续学习

按当前任务继续推进