Files
karuo-ai/运营中枢/参考资料/OpenClaw记忆功能学习与卡若AI对照.md

8.5 KiB
Raw Permalink Blame History

OpenClaw 记忆功能学习与卡若AI 对照

学习对象OpenClaw 官方 Memory 文档 + codesfly/openclaw-memory-final生产级对照卡若AI 记忆系统,提炼可借鉴点。
更新2026-03-03


一、OpenClaw 官方记忆docs.openclaw.ai

1.1 存储形态

  • 纯 Markdown文件为唯一真相源;模型只「记住」写入磁盘的内容。
  • 两层
    • 长期MEMORY.md(可选),持久事实与决策。
    • 日志memory/YYYY-MM-DD.md,按日追加、会话启动时读「今天+昨天」。

1.2 工具

  • memory_get:按文件/行范围精确读取。
  • memory_search:语义检索(基于索引片段);文件不存在时优雅降级返回空,不抛错。

1.3 何时写入

  • 用户说「记住」→ 必须落盘,不留在内存。
  • 日常笔记、运行上下文 → memory/YYYY-MM-DD.md
  • 决策、偏好、持久事实 → MEMORY.md

1.4 自动 memory flush compaction 前)

  • 会话接近自动压缩时,触发静默 agent 轮,提醒模型在压缩前把该持久化的写入记忆。
  • 可配置:memoryFlush.enabledsoftThresholdTokens、提示词(含 NO_REPLY 避免对用户可见)。

1.5 向量检索

  • 可对 MEMORY.mdmemory/*.md 建小向量索引,支持语义查询。
  • 默认按可用 Key 自动选择Mistral / Voyage / Gemini / OpenAI / local支持 Ollama、sqlite-vec 加速。
  • QMD 后端(实验)memory.backend = "qmd",本地 BM25 + 向量 + 重排Markdown 仍为真相源,检索交给 QMD 侧车。

二、openclaw-memory-final生产级codesfly

2.1 设计目标

  • 可靠性:自愈、避免静默失败。
  • 幂等:同一会话状态不重复写入日记忆块。
  • 成本可控:避免不必要的向量 embed每日 qmd update每周才 qmd embed
  • 可审计:决策与状态可追溯。

2.2 分层 Pipeline

层级 说明
短期工作台 memory/CURRENT_STATE.md当日工作台compaction/重置后首选恢复点;可每轮覆盖(非仅追加)。建议字段:今日目标/进行中/阻塞/下一步≤3。
日记忆日志 memory/YYYY-MM-DD.md,主会话 + 子 Agent 产出经「每日蒸馏」写入,仅追加。
任务结果卡 memory/tasks/YYYY-MM-DD.md仅结果的子 Agent 任务卡;主会话整理,子 Agent 原始过程保留在隔离历史供审计。
每日蒸馏 Daily Sync 23:00 本地时间;近 26h 会话;过滤 <2 条用户消息的会话;写入日日志;幂等游标last user message fingerprint防重。
每周精炼 Weekly Tidy 周日 22:00合并近 7 日日志进长期记忆;约束 MEMORY.md(如 80 行/5KB写周报 memory/weekly/YYYY-MM-DD.md;归档日日志到 memory/archive/YYYY/
Watchdog 每 2h 的 :15检测禁用/陈旧/错误;仅当连续 2 次异常才告警(低噪)。
Retrieval Watchdog 每 30 分钟检索健康检查2-hit 确认异常。
QMD 夜间维护 每日 03:20qmd update;仅当待处理积压超阈值时 qmd embed

2.3 多 Agent 记忆模型

  • 主会话 = 记忆策展人:整合持久结果与决策。
  • 子 Agent只执行原始过程留在隔离会话历史可审计。
  • 共享交接层memory/tasks/YYYY-MM-DD.md,仅结果的任务卡。
  • 检索顺序:先任务卡 → 再语义记忆搜索 → 最后按需钻取原始会话。

2.4 任务卡字段(建议)

  • goal / boundary / acceptance / key actions / artifact paths / final status / next step

2.5 Context Budget + 动态画像

  • memory/context-profiles.json 定义按画像的上下文来源。
  • 注入前硬预算:单文件上限(默认 20000 字符)、总上限(默认 80000 字符)。
  • 按优先级(如 main/ops/btc/quant组 context pack控制 prompt 膨胀与延迟。

2.6 冲突检测

  • 持久化前扫描长期记忆中的路由/规则漂移,避免静默覆盖(memory_conflict_check.pymemory-conflict-report.json)。

2.7 状态文件(摘要)

  • processed-sessions.json:幂等游标。
  • memory-watchdog-state.json:异常计数与 last3 快照。
  • context-budget-state.json:预算检查结果。
  • memory-retrieval-watchdog-state.json:检索健康状态。

三、卡若AI 记忆系统现状(简要)

层级 位置 说明
短期 Cursor 对话上下文 单次对话有效
长期 个人/1、卡若本人/记忆.md 单文件,偏好/规则/人脉/原则
结构化 水溪_整理归档/记忆系统/structured/ 技能索引、Agent 成果、每日摘要、幂等游标、健康、watchdog 报告、周报

自动化collect_chat_daily.py(每日、幂等+脱敏)、collect_daily.py(每日摘要)、weekly_optimize.py(每周 SKILL 审计+经验整理)、memory_watchdog.py(每 2h、连续 2 次异常才告警)。


四、可借鉴点卡若AI 学习清单)

OpenClaw / memory-final 卡若AI 可借鉴
CURRENT_STATE 短期工作台 可选:在 记忆系统/ 或工作台增加「当日工作台」单文件(今日目标/进行中/阻塞/下一步≤3compaction 或新会话时优先读。
任务结果卡(仅结果) 多线程/子任务执行时,将每个子任务的结果写成「任务卡」到 structured/tasks/YYYY-MM-DD.md,检索时先任务卡再其他。
检索顺序 明确:先查任务卡/结构化结果 → 再查长期记忆/经验库 → 最后按需查原始对话归档。
Context budget 若未来做「记忆注入」到 prompt先做单文件与总字符上限避免一次性灌入过多记忆。
Compaction 前 memory flush 若平台支持「压缩前回调」,可在压缩前提醒写入 记忆.md 或当日工作台。
冲突检测 写入长期记忆或规则前,扫描已有规则/路由是否与新内容冲突,生成简单 conflict 报告。
QMD / 向量检索 长期可选:对 记忆.md 或结构化摘要做本地向量索引(如 QMD 或现有嵌入支持语义检索当前卡若AI 以文件与关键词为主,可后续迭代。
周报与归档 已有 weekly_report可明确「周报 + 日日志归档到 archive/YYYY/」的目录规范,与 memory-final 对齐。

五、参考链接