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

136 lines
8.5 KiB
Markdown
Raw Permalink Normal View 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.enabled``softThresholdTokens`、提示词(含 `NO_REPLY` 避免对用户可见)。
### 1.5 向量检索
- 可对 `MEMORY.md``memory/*.md` 建小向量索引,支持语义查询。
- 默认按可用 Key 自动选择Mistral / Voyage / Gemini / OpenAI / local支持 Ollama、sqlite-vec 加速。
- **QMD 后端(实验)**`memory.backend = "qmd"`,本地 BM25 + 向量 + 重排Markdown 仍为真相源,检索交给 QMD 侧车。
---
## 二、openclaw-memory-final生产级codesfly
- **仓库**[https://github.com/codesfly/openclaw-memory-final](https://github.com/codesfly/openclaw-memory-final)
- **最新**v0.4.22026-03Node 22+,可选 QMD 索引。
### 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:20`qmd 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.py``memory-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 对齐。 |
---
## 五、参考链接
- OpenClaw Memory 概念:[https://docs.openclaw.ai/concepts/memory](https://docs.openclaw.ai/concepts/memory)
- openclaw-memory-final[https://github.com/codesfly/openclaw-memory-final](https://github.com/codesfly/openclaw-memory-final)
- openclaw-memory-final 架构:[https://github.com/codesfly/openclaw-memory-final/blob/main/docs/architecture.md](https://github.com/codesfly/openclaw-memory-final/blob/main/docs/architecture.md)
- 卡若AI 记忆系统:`02_卡人/水溪_整理归档/记忆系统/README.md`