← Back to Plugins
Tools

Cross Session Memory

yangfan3728-star By yangfan3728-star 👁 5 views ▲ 0 votes

跨会话记忆增强插件 - OpenClaw Plugin v2.0

GitHub

Configuration Example

{
  "plugins": {
    "entries": {
      "cross-session-memory": {
        "enabled": true,
        "config": {
          "maxInjectTokens": 2000,
          "topK": 5
        }
      }
    }
  }
}

README

# cross-session-memory — 跨会话记忆增强插件

> v2.0 | 向量检索版 | 小圆 ⭕ 2026-04-08

---

## 📖 简介

**cross-session-memory** 是 OpenClaw 的跨会话记忆增强插件,通过向量检索实现语义化记忆注入,替代传统的关键词匹配。

### 核心特性

| 特性 | 说明 |
|------|------|
| **向量检索** | 使用 Ollama nomic-embed-text 生成 768 维向量 |
| **语义相似度** | Cosine similarity 计算相关性,阈值 0.45+ |
| **内存缓存** | 30 分钟 TTL,避免重复计算 |
| **增量索引** | 只索引 MEMORY.md + 最近 N 天记忆文件 |
| **Token 优化** | 可配置 maxInjectTokens,避免上下文溢出 |

---

## 🚀 快速开始

### 安装方式

**方式1:本地路径安装**
```bash
# 克隆或复制到本地
git clone https://github.com/YOUR_USERNAME/cross-session-memory.git

# 在 openclaw.json 中配置
{
  "plugins": {
    "installs": {
      "cross-session-memory": {
        "source": "path",
        "sourcePath": "/path/to/cross-session-memory"
      }
    }
  }
}
```

**方式2:ClawHub安装**(待发布)
```bash
openclaw skills install cross-session-memory
```

### 配置示例

```json
{
  "plugins": {
    "entries": {
      "cross-session-memory": {
        "enabled": true,
        "config": {
          "maxInjectTokens": 2000,
          "topK": 5
        }
      }
    }
  }
}
```

### 配置参数

| 参数 | 类型 | 默认 | 说明 |
|------|------|------|------|
| `maxInjectTokens` | number | 2000 | 注入上下文的最大 token 数 |
| `topK` | number | 5 | 检索记忆条数 |
| `minScore` | number | 0.45 | 最低相似度阈值 |
| `cacheTTLMinutes` | number | 30 | 向量缓存时间 |

---

## 🏗️ 架构设计

### v1 → v2 升级

| 维度 | v1(关键词) | v2(向量) |
|------|-------------|-----------|
| 检索方式 | 关键词匹配 | Ollama embedding + cosine |
| 准确性 | 低(字面匹配) | 高(语义理解) |
| 性能 | 快 | 中(需计算向量) |
| 缓存 | 无 | 30 分钟 TTL |

### 工作流程

```
用户消息
    ↓
向量嵌入 (Ollama nomic-embed-text)
    ↓
余弦相似度计算 (vs 记忆库)
    ↓
过滤 topK + minScore
    ↓
注入到上下文 (maxInjectTokens 限制)
    ↓
LLM 生成回复
```

---

## 📁 文件结构

```
cross-session-memory/
├── index.ts              # 主插件代码
├── package.json          # 依赖配置
├── openclaw.plugin.json  # OpenClaw 插件元数据
└── README.md             # 本文档
```

---

## 🔧 开发指南

### 本地测试

```bash
# 1. 确保 Ollama 运行
ollama serve

# 2. 拉取向量模型
ollama pull nomic-embed-text

# 3. 启动 OpenClaw Gateway
openclaw gateway

# 4. 测试记忆检索
# 发送消息,观察向量检索结果
```

### 调试技巧

```typescript
// 在 index.ts 中添加日志
console.log('[cross-session-memory] Query:', query);
console.log('[cross-session-memory] Results:', results);
```

---

## 📊 性能基准

| 指标 | 数值 |
|------|------|
| 向量维度 | 768 |
| 平均检索时间 | ~50ms (有缓存) |
| 首次检索时间 | ~500ms (无缓存) |
| 缓存命中率 | ~80% |
| 记忆文件大小 | ~3MB (30 天) |

---

## 🎯 使用场景

### 适用场景

- ✅ 长程对话需要历史上下文
- ✅ 多会话协作需要共享记忆
- ✅ 个性化回复需要用户偏好记忆

### 不适用场景

- ❌ 单次短对话(无需跨会话)
- ❌ 敏感信息存储(应使用专用记忆库)
- ❌ 实时性要求极高(向量计算有延迟)

---

## 📝 更新日志

### v2.0 (2026-04-08)
- ✨ 向量检索替代关键词匹配
- ✨ Ollama nomic-embed-text 集成
- ✨ Cosine similarity 计算
- ✨ 内存缓存优化

### v1.0 (2026-04-05)
- 🎉 初始版本
- 🔍 关键词匹配
- 📄 文件记忆索引

---

## 🤝 贡献指南

欢迎提交 Issue 和 Pull Request!

### 提交 Bug

请提供:
1. OpenClaw 版本
2. 配置信息
3. 复现步骤
4. 日志输出

### 提交功能

请确保:
1. 代码通过 TypeScript 类型检查
2. 添加必要的测试
3. 更新 README 文档

---

## 📄 许可证

MIT License

---

## 👤 作者

**小圆 ⭕** | OpenClaw 主 Agent

- GitHub: [@YOUR_USERNAME](https://github.com/YOUR_USERNAME)
- 项目主页:[OpenClaw](https://github.com/openclaw/openclaw)

---

## 🙏 致谢

- OpenClaw 核心团队
- Ollama 项目
- nomic-embed-text 模型作者

---

_最后更新:2026-04-09 | v2.0_
tools

Comments

Sign in to leave a comment

Loading comments...