介绍
# Triple Memory System
一种综合的记忆架构,结合了三种互补的系统,以实现跨会话的最大上下文保留。
## 架构概览
``` User Message ↓ [LanceDB auto-recall] → injects relevant conversation memories ↓ Agent responds (using all 3 systems) ↓ [LanceDB auto-capture] → stores preferences/decisions automatically ↓ [Git-Notes] → structured decisions with entity extraction ↓ [File updates] → persistent workspace docs ```
## 三大系统
### 1. LanceDB (对话记忆) - **自动召回:** 在每次响应前注入相关记忆 - **自动捕获:** 自动存储偏好/决策/事实 - **工具:** `memory_recall`, `memory_store`, `memory_forget` - **触发词:** "remember", "prefer", "my X is", "I like/hate/want"
### 2. Git-Notes 记忆 (结构化,本地) - **分支感知:** 每个分支隔离存储记忆 - **实体提取:** 自动提取主题、名称、概念 - **重要性级别:** critical(关键)、high(高)、normal(普通)、low(低) - **无外部 API 调用**
### 3. 文件搜索 (工作区) - **搜索范围:** MEMORY.md, memory/*.md, 任意工作区文件 - **脚本:** `scripts/file-search.sh`
## 设置
### 启用 LanceDB 插件 ```json { "plugins": { "slots": { "memory": "memory-lancedb" }, "entries": { "memory-lancedb": { "enabled": true, "config": { "embedding": { "apiKey": "${OPENAI_API_KEY}", "model": "text-embedding-3-small" }, "autoRecall": true, "autoCapture": true } } } } } ```
### 启用自动记忆刷新 (压缩前) 添加到您的 Clawdbot 配置中,以便在压缩前自动保留上下文: ```json { "agents": { "defaults": { "compaction": { "mode": "safeguard", "memoryFlush": { "enabled": true, "softThresholdTokens": 8000, "systemPrompt": "Session nearing compaction. Preserve context using triple memory system (git-notes, LanceDB, files).", "prompt": "Context is at ~80%. Write session summary to memory/YYYY-MM-DD.md, update MEMORY.md if needed, store key facts to git-notes. Reply NO_REPLY when done." } } } } } ```
这会在上下文达到约 80% 时触发自动记忆转储,防止任何信息因压缩而丢失。
### 安装 Git-Notes 记忆 ```bash clawdhub install git-notes-memory ```
### 创建文件搜索脚本 将 `scripts/file-search.sh` 复制到您的工作区。
## 用法
### 会话开始 (始终) ```bash python3 skills/git-notes-memory/memory.py -p $WORKSPACE sync --start ```
### 存储重要决策 ```bash python3 skills/git-notes-memory/memory.py -p $WORKSPACE remember \ '{"decision": "Use PostgreSQL", "reason": "Team expertise"}' \ -t architecture,database -i h ```
### 搜索工作区文件 ```bash ./scripts/file-search.sh "database config" 5 ```
### 对话记忆 (自动) LanceDB 会自动处理此过程。手动工具: - `memory_recall "query"` - 搜索对话记忆 - `memory_store "text"` - 手动存储内容 - `memory_forget` - 删除记忆 (GDPR)
## 重要性级别
| 标志 | 级别 | 何时使用 | |------|-------|-------------| | `-i c` | Critical | "always remember",明确偏好 | | `-i h` | High | 决策、更正、偏好 | | `-i n` | Normal | 一般信息 | | `-i l` | Low | 临时笔记 |
## 何时使用各系统
| 系统 | 用途 | |--------|---------| | **LanceDB** | 对话上下文,自动检索 | | **Git-Notes** | 结构化决策,可按实体/标签搜索 | | **File Search** | 工作区文档,每日日志,MEMORY.md |
## 文件结构
``` workspace/ ├── MEMORY.md # Long-term curated memory ├── memory/ │ ├── active-context.md # Current session state │ └── YYYY-MM-DD.md # Daily logs ├── scripts/ │ └── file-search.sh # Workspace search └── skills/ └── git-notes-memory/ # Structured memory ```
## 静默操作
切勿向用户宣布记忆操作。直接执行即可: - ❌ "我会记住这一点" - ❌ "正在保存到记忆" - ✅ (静默存储并继续)