跨平台 Agent 长记忆系统,分层上下文供给 + 温度模型 + 经验记忆 + 结构化存储 + 自动归档。三层存储:Markdown(人可读、QMD 搜索)+ JSON(结构化)+ SQLite/FTS5(全文搜索)。纯 Node.js,零依赖。
Smart Agent Memory 🧠 v2.1是一项面向实际任务的技能,主要用于跨平台 Agent 长期记忆系统 — 分层上下文供给 + Skill经验记忆 + 温度模型 + 自动归档;⚡ 核心原则:分层加载,按需供给;
记忆使用流程(每次需要记忆时);Skill 经验记忆流程(工具调用后);CLI Reference;Setup / Confi。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
跨平台 Agent 长期记忆系统 — 分层上下文供给 + Skill经验记忆 + 温度模型 + 自动归档。
绝对不要全量加载记忆! 先读索引,再按需钻取。这是省 token 的关键。
1. index → 读取精简索引(总览,<500 tokens) 2. 判断 → 根据当前任务决定需要哪部分记忆 3. context → 按 tag/skill/时间 加载具体上下文 4. 行动 → 基于加载的上下文执行任务
工具调用成功/踩坑 → remember "经验总结" --skill下次调用该工具前 → skill-mem 加载经验
CLI=~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js # ★ 分层上下文(核心,优先使用) node $CLI index # 精简记忆索引(先读这个!) node $CLI context --tag# 按标签加载上下文 node $CLI context --skill # 按 Skill 加载经验+相关事实 node $CLI context --days 7 # 最近 N 天的记忆 node $CLI context --entity-type person # 按实体类型加载 # ★ Skill 经验记忆 node $CLI remember "该API时间参数必须用ISO格式" --skill api-tool node $CLI skill-mem # 读取某 Skill 的经验 node $CLI skill-list # 列出所有有经验记忆的 Skill # 基础记忆操作 node $CLI remember [--tags t1,t2] [--skill name] [--source conversation] node $CLI recall [--limit 10] node $CLI forget node $CLI facts [--tags t1] [--limit 50] # 教训与实体 node $CLI learn --action "..." --context "..." --outcome positive --insight "..." node $CLI lessons [--context topic] node $CLI entity "Alex" person --attr role=CTO node $CLI entities [--type person] # ★ 会话生命周期(模拟 mem9 自动钩子) node $CLI session-start # 对话开场:加载记忆概览+最近上下文(一个命令搞定) node $CLI session-end "本次讨论了XX,决定了YY" # 对话结束:存会话摘要 # 维护 node $CLI gc [--days 30] # 归档冷数据 node $CLI reflect # 夜间反思 node $CLI stats # 记忆健康 node $CLI search # 全文搜索 .md(优先qmd,兜底内置) node $CLI temperature # 温度报告 node $CLI extract --skill-name x # 提炼 Skill
node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js setup
自动发现 ~/.openclaw/workspace* 下所有工作区,逐个注入 BOOTSTRAP.md。
node~/.openclaw/workspace/memory/node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js session-start node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js session-end "本次做了什么"
安装技能后运行一次:
node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js setup
自动发现 ~/.openclaw/workspace* 下所有工作区,逐个注入 BOOTSTRAP.md 记忆启动指令。
幂等,新增工作区后再跑一次即可。
所有 agent 通过 memory_search(OpenClaw 内置 mandatory recall)自动搜索 memory/*.md。
双层存储确保每次写入都同步生成 Markdown,所以 memory_search / qmd 天然能搜到所有结构化数据。
无需额外操作,无需 workspace 配置,跨 agent 通用。
需要深入某方向时,用 CLI 钻取:
node $CLI context --tag# 按标签 node $CLI context --skill # 按 Skill 经验 node $CLI context --days 7 # 按时间
node $CLI remember "关键信息" --tags tag1,tag2 # 事实 node $CLI learn --action "..." --context "..." --outcome positive --insight "..." # 教训 node $CLI session-end "本次讨论了XX,决定了YY" # 会话摘要
⚠️ 不要攒到最后! 有内容就写,中途断了也不丢。 每晚 cron 兜底检查,确保不遗漏。
index,看概览,再决定加载哪部分remember "经验" --skill 沉淀经验skill-mem 检查有没有历史经验search 命令优先走 qmd(语义搜索),qmd 不可用时自动降级为内置 TF 搜索facts --limit 999 全量加载index 直接 recall(除非你确切知道要搜什么)当 spawn 子 agent 成功/失败时,立即记录经验:
node $CLI remember "spawn 子 agent 用 runtime=subagent 成功,不能带 streamTo" --skill multi-agent-dispatch --tags spawn,subagent
关键经验已沉淀:
runtime="subagent" 模式禁止带 streamTo 参数(会直接报错)runtime="acp" 模式可带 streamTo="parent"(仅限 openclaw.json 中配置了 runtime.type: "acp" 的 agent)~/.openclaw/workspace/memory/ ├── YYYY-MM-DD.md ← 每日日志 ├── skills/ ← ★ Skill 经验记忆(新增) │ ├── api-tool.md │ └── deploy.md ├── lessons/ ← 教训 Markdown ├── decisions/ ← 决策 Markdown ├── people/ ← 人物档案 ├── reflections/ ← 反思记录 ├── .data/ ← JSON 结构化数据 ├── .archive/ ← 归档冷数据 └── .index.json ← 温度索引 + 统计
安装后建议通过 OpenClaw cron 工具添加以下定时任务:
{
"name": "memory-reflect",
"schedule": { "kind": "cron", "expr": "45 23 * * *", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "运行记忆反思:node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js reflect,然后总结今天的记忆变化。"
},
"sessionTarget": "isolated",
"delivery": { "mode": "none" }
}
{
"name": "memory-gc",
"schedule": { "kind": "cron", "expr": "0 2 * * 0", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "运行记忆GC:node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js gc --days 30,报告归档了多少条记忆。"
},
"sessionTarget": "isolated",
"delivery": { "mode": "none" }
}
{
"name": "memory-session-check",
"schedule": { "kind": "cron", "expr": "0 22 * * *", "tz": "Asia/Shanghai" },
"payload": {
"kind": "agentTurn",
"message": "检查今天的记忆情况:运行 node ~/.openclaw/skills/smart-agent-memory/scripts/memory-cli.js stats,如果今天有对话但 facts 没增长,回顾今天的对话并用 session-end 补存摘要。"
},
"sessionTarget": "isolated",
"delivery": { "mode": "none" }
}
Agent 可用
cron工具的addaction 直接添加以上任务,JSON 作为job参数传入。