CoPaw Memory 系统详解

CoPaw Memory 系统详解

CoPaw 的 Memory 系统是一个强大的记忆管理机制,让 AI 助手能够在会话之间保持上下文、记住重要信息、积累经验和知识。本文将详细介绍 Memory 系统的原理、配置和使用方法。

Memory 系统概述

什么是 Memory?

Memory 是 CoPaw 的长期记忆系统,类似于人类的大脑记忆。它允许 AI 助手:

  • 跨会话保存和检索信息
  • 记住用户的偏好和习惯
  • 积累工作经验和教训
  • 维护项目上下文和历史记录

Memory 的层级结构

Memory 系统
├── 工作内存 (Working Memory)
│   └── 当前会话的临时存储
├── 短期记忆 (Short-term Memory)
│   └── 最近几天的快速检索
├── 长期记忆 (Long-term Memory)
│   └── 核心知识和经验
└── 记忆索引 (Memory Index)
    └── 语义搜索和检索

Memory 类型对比

| 类型 | 保存期限 | 用途 | 访问速度 |
|------|---------|------|---------|
| 工作内存 | 当前会话 | 临时变量、中间结果 | 最快 |
| 短期记忆 | 7 天 | 最近对话、待办事项 | 快 |
| 长期记忆 | 永久 | 核心知识、经验教训 | 中等 |
| 每日笔记 | 按日期 | 事件记录、原始日志 | 慢 |

Memory 配置

基本配置

编辑配置文件:

{
  "memory": {
    "enabled": true,
    "storage_path": ".copaw/memory",
    "working_memory": {
      "max_size": 1024,
      "cleanup_interval": 300
    },
    "short_term": {
      "retention_days": 7,
      "max_entries": 1000
    },
    "long_term": {
      "storage_file": "MEMORY.md",
      "max_size": 5242880,
      "backup_enabled": true
    },
    "daily_notes": {
      "enabled": true,
      "path": ".copaw/memory/daily",
      "auto_create": true
    },
    "index": {
      "enabled": true,
      "embedding_model": "text-embedding-ada-002",
      "chunk_size": 512,
      "chunk_overlap": 50
    }
  }
}

通过控制台配置

# 启用 Memory 系统
/config set memory.enabled true

# 设置存储路径
/config set memory.storage_path .copaw/memory

# 启用每日笔记
/config set memory.daily_notes.enabled true
/config set memory.daily_notes.auto_create true

# 启用语义索引
/config set memory.index.enabled true

# 保存配置
/config save

工作内存

工作内存特性

  • 仅在当前会话中有效
  • 最快的访问速度
  • 会话结束自动清理
  • 用于存储临时变量和中间结果

工作内存操作

# 保存到工作内存
/memory set temp_key "临时数据"

# 从工作内存读取
/memory get temp_key

# 删除工作内存项
/memory delete temp_key

# 列出所有工作内存项
/memory list working

工作内存示例

用户: 计算斐波那契数列前 10 项

CoPaw: 我来计算斐波那契数列...

# 工作内存中保存中间结果
memory.set("fib_cache", {1:1, 2:1})

# 继续计算
结果: [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

# 会话结束后,工作内存自动清理

短期记忆

短期记忆特性

  • 保存 7 天(可配置)
  • 快速检索
  • 用于存储最近对话
  • 记录待办事项和提醒

短期记忆操作

# 添加到短期记忆
/memory add "今天讨论了 AI 项目规划"

# 搜索短期记忆
/memory search "AI 项目"

# 查看最近记忆
/memory recent

# 查看特定日期的记忆
/memory show 2024-01-15

# 清理过期记忆
/memory cleanup

短期记忆用途

场景 1: 跨会话对话
----------------------------------------
会话 1:
用户: 讨论了 API 设计方案
CoPaw: 已记录到短期记忆

会话 2 (第二天):
用户: 继续昨天的讨论
CoPaw: 找到关于 API 设计的记忆...

场景 2: 待办事项
----------------------------------------
用户: 记得提醒我明天提交代码
CoPaw: 已添加到短期记忆,明天会提醒

长期记忆

长期记忆特性

  • 永久保存
  • 自动备份
  • 核心知识和经验
  • 用户偏好和习惯

MEMORY.md 结构

# MEMORY.md - 长期记忆

## 用户资料

- **名字**: 张三
- **偏好**: 喜欢 Python,不喜欢 Java
- **工作方式**: 上午专注编程,下午处理会议

## 工具设置

- **SSH**: user@server.com
- **数据库**: localhost:5432
- **API Key**: sk-xxxxx

## 项目上下文

### 项目 A
- 状态: 开发中
- 技术栈: Python + FastAPI
- 待办: 完成认证模块

## 重要决策

- 2024-01-15: 决定使用 PostgreSQL 替代 MySQL
- 2024-01-20: 架构采用微服务设计

## 经验教训

- ❌ 不要在周五发布
- ✅ 代码审查很重要
- ⚠️ 文档要和代码同步更新

长期记忆操作

# 添加到长期记忆
/memory add long "用户偏好使用 Python"

# 搜索长期记忆
/memory search "Python" --type long

# 查看长期记忆文件
/memory view long

# 编辑长期记忆
/memory edit long

# 备份长期记忆
/memory backup

主动记录机制

CoPaw 会主动记录以下信息到长期记忆:

# 启用主动记录
/config set memory.auto_record.enabled true

# 记录用户信息
/config set memory.auto_record.user_profile true

# 记录重要决策
/config set memory.auto_record.decisions true

# 记录教训
/config set memory.auto_record.lessons true

# 保存配置
/config save

长期记忆示例

# MEMORY.md

## 用户资料

- **名字**: 李四
- **称呼**: 大哥
- **时区**: Asia/Shanghai
- **偏好**:
  - 博客代码块使用深灰色背景 (#2d2d2d)
  - 喜欢详细的教程
  - 使用 HTML 表格格式

## 工具设置

- **博客 URL**: https://www.cnbugs.com
- **博客用户**: cnbugsai
- **主要分类**: AI人工智能 (ID: 520)

## 重要决策

- 2024-01-20: 博客采用 WordPress 平台
- 2024-01-25: 教程风格参考 OpenClaw

## 经验教训

- ❌ 发布前要检查代码块格式
- ✅ 使用 white-space:pre 保留换行
- ⚠️ 表格必须使用 HTML 格式

每日笔记

每日笔记特性

  • 按日期保存文件
  • 原始事件记录
  • 自动创建文件
  • 格式: memory/YYYY-MM-DD.md

每日笔记示例

# 2024-01-15

## 事件

- 10:00 讨论了项目架构
- 14:00 完成了 API 设计
- 16:00 修复了 Bug #123

## 对话

- 用户提到偏好使用 FastAPI
- 讨论了数据库选型

## 待办

- [ ] 完成认证模块
- [ ] 编写测试用例

每日笔记操作

# 查看今日笔记
/memory note today

# 查看特定日期笔记
/memory note 2024-01-15

# 添加到今日笔记
/memory note add "完成了 API 设计"

# 列出所有笔记
/memory note list

# 搜索笔记
/memory note search "API"

语义搜索

索引工作原理

文本 → 分块 → 嵌入 → 向量数据库
     ↓
    语义搜索 → 相关性排序 → 返回结果

索引配置

{
  "memory": {
    "index": {
      "enabled": true,
      "embedding_model": "text-embedding-ada-002",
      "chunk_size": 512,
      "chunk_overlap": 50,
      "vector_store": {
        "type": "faiss",
        "path": ".copaw/vector_index"
      }
    }
  }
}

语义搜索操作

# 重建索引
/memory index rebuild

# 搜索相关记忆
/memory search "如何配置 API"

# 带过滤条件的搜索
/memory search "API" --type long --limit 5

# 搜索并显示片段
/memory search "项目架构" --show-fragments

# 查看索引状态
/memory index status

语义搜索示例

# 搜索关于 "数据库配置" 的记忆
> /memory search "数据库配置"

找到 3 个相关记忆:

1. [长期记忆] 工具设置
   相关度: 0.95
   片段: 数据库: localhost:5432

2. [每日笔记] 2024-01-10
   相关度: 0.87
   片段: 14:00 配置了 PostgreSQL 连接

3. [短期记忆] 2024-01-12
   相关度: 0.78
   片段: 讨论了数据库性能优化

Memory 管理命令

查看命令

# 列出所有记忆类型
/memory types

# 查看特定类型的记忆
/memory list <type>

# 查看记忆统计
/memory stats

编辑命令

# 编辑记忆
/memory edit <type>

# 批量编辑
/memory batch edit --type daily --days 7

# 合并记忆
/memory merge <source> <target>

清理命令

# 清理过期记忆
/memory cleanup

# 清理特定类型
/memory cleanup --type short-term --days 7

# 清理所有记忆
/memory purge

备份和恢复

# 备份记忆
/memory backup --output backups/memory_backup.zip

# 恢复记忆
/memory restore --input backups/memory_backup.zip

# 同步记忆到云端
/memory sync --backup

Memory 最佳实践

1. 记住重要信息

不要依赖"脑子记",要写到文件里:

- 用户的名字和偏好 → 用户资料
- 重要决策和结论 → 长期记忆
- 每日事件和对话 → 每日笔记
- 工具配置和凭据 → 工具设置

2. 使用语义标签

# 添加带标签的记忆
/memory add "重要决策: 使用 PostgreSQL" --tags "decision,database"

# 搜索带标签的记忆
/memory search --tags decision

3. 定期整理记忆

# 设置定期整理任务
/cron add "整理记忆" --schedule "0 0 * * 0" --command "/memory organize"

# 整理长期记忆
/memory organize --type long

4. 建立记忆分类

# MEMORY.md

## 分类

### 工作
- 项目进度
- 技术决策
- 会议记录

### 个人
- 偏好设置
- 待办事项
- 提醒事项

### 学习
- 技术笔记
- 资源链接
- 经验教训

5. 保护敏感信息

# 启用敏感信息过滤
/config set memory.privacy.filter_enabled true

# 设置敏感关键词
/config set memory.privacy.keywords ["password", "token", "secret"]

# 加密记忆
/memory encrypt --key <password>

Memory 和 AGENTS.md

AGENTS.md 的作用

AGENTS.md 是 Agent 的灵魂文件,定义了:

  • 核心行为准则
  • 工作方式
  • 技能定义
  • 偏好设置

AGENTS.md 示例

# AGENTS.md

## 核心准则

**真心帮忙,别演。** 跳过客套话,直接行动。

**有自己的观点。** 可以不同意、有偏好、觉得有趣或无聊。

## 工作方式

- 优先使用 Skills
- 先自己想办法,卡住了再问
- 内部操作大胆点,外部操作小心点

## 技能定义

- **blog_publish**: 发布博客文章
- **code_review**: 代码审查
- **documentation**: 文档生成

## 偏好设置

- 博客代码块: 深灰色背景 (#2d2d2d)
- 发布状态: 直接发布
- 教程风格: 详细,包含示例

Memory 和 AGENTS.md 的区别

| 特性 | Memory | AGENTS.md |
|------|--------|-----------|
| 用途 | 存储信息 | 定义行为 |
| 更新频率 | 频繁 | 较少 |
| 访问方式 | 搜索/查询 | 读取/遵循 |
| 内容 | 事实、事件、知识 | 规则、准则、偏好 |

常见问题

Q1: Memory 占用空间太大?

# 查看空间占用
/memory stats --size

# 清理旧记忆
/memory cleanup --days 30

# 压缩记忆
/memory compress

Q2: 搜索结果不准确?

# 重建索引
/memory index rebuild

# 调整分块大小
/config set memory.index.chunk_size 256

# 调整重叠大小
/config set memory.index.chunk_overlap 32

# 保存并重建
/config save
/memory index rebuild

Q3: 如何避免重复记录?

# 启用去重
/config set memory.deduplicate.enabled true

# 设置去重阈值
/config set memory.deduplicate.similarity_threshold 0.9

# 保存配置
/config save

Q4: 记忆丢失了怎么办?

# 检查备份
/memory backup --list

# 恢复最近的备份
/memory restore --input backups/memory_backup.zip

# 检查配置
/config get memory

Q5: 如何在多设备间同步 Memory?

# 配置云端同步
/config set memory.sync.enabled true
/config set memory.sync.provider "s3"
/config set memory.sync.bucket "my-copaw-backup"

# 手动同步
/memory sync

# 自动同步
/config set memory.sync.auto_sync true
/config save

高级用法

1. 记忆钩子 (Memory Hooks)

# 在 AGENTS.md 中定义记忆钩子

当用户说"记住这个"时:
1. 识别重要信息
2. 分类记忆类型
3. 保存到合适的 Memory

当完成任务时:
1. 记录任务结果
2. 提取经验教训
3. 更新长期记忆

2. 记忆模板

# 创建记忆模板
/memory template create "project_decisions" --fields "日期,决策内容,影响,备注"

# 使用模板记录
/memory add --template project_decisions --values "2024-01-15,使用 PostgreSQL,提高性能,需要迁移现有数据"

3. 记忆关联

# 关联记忆
/memory link --source "记忆 ID 1" --target "记忆 ID 2" --relation "相关"

# 查看关联记忆
/memory show --id <id> --with-related

4. 记忆版本控制

# 启用版本控制
/config set memory.version_control.enabled true

# 查看记忆历史
/memory history --id <id>

# 恢复历史版本
/memory restore --id <id> --version 2

总结

通过本教程,你应该已经掌握了:

  • ✅ Memory 系统的层级结构
  • ✅ 各种 Memory 类型的使用方法
  • ✅ 语义搜索和索引配置
  • ✅ 主动记录机制
  • ✅ Memory 最佳实践
  • ✅ 高级用法和技巧

下一章

在下一章中,我们将学习 CoPaw Cron 定时任务系统,了解如何配置和管理自动化任务。

相关资源

发表回复

后才能评论