Persistent Memory 是一个用于代码仓库的持久记忆技能,定位为该仓库唯一的记忆系统。它通过命令行脚本管理记忆的存储与检索,适合在需要跨任务保留稳定信息的场景中使用。
用途 该技能用于处理工作区中的持久记忆,包括任务开始时的记忆召回、用户明确要求“记住”的指令,以及存储持久偏好、长期事实、稳定工作流和重复约束。它不用于存储嘈杂的一次性临时细节,除非用户明确要求。
主要能力 支持以下命令:init(初始化)、sync(仅数据库健康检查)、cleanup-legacy(清理旧版导入行)、backfill-embeddings --batch 500(为已有笔记生成向量)、prune --source "<label>" [--older-than <days>](按来源和天数修剪)、search "<query>" --limit 8(搜索)、add "<memory text>" --tags "<comma,tags>" --source "assistant"(添加记忆)、recent --limit 10(最近记忆)、stats(统计)。
检索采用混合方式:词法检索加语义检索。语义检索优先尝试 sqlite-vec,必要时自动回退到 Python 余弦相似度。搜索会自动强化被召回的条目,更新 hits 和 last_seen_at;hits 用于分析目的,不作为直接排名提升。
使用方式 支持两种命令风格: python3 .agents/skills/persistent-memory/scripts/memory.py <command> .agents/skills/persistent-memory/scripts/pmem <command>
必需工作流:
- 在新工作区初始化记忆:pmem init
- 在开始重要任务时:pmem sync(仅数据库健康检查),然后 pmem search "<topic keywords>" --limit 8
- 当用户明确说“记住”或了解到持久偏好/事实时:pmem add "<memory text>" --tags "<tags>" --source "assistant"
- 在完成对记忆敏感的工作前,验证召回状态:pmem stats
一次性迁移(如果从旧设置升级):
- 移除旧版导入行:pmem cleanup-legacy
- 为已有笔记生成向量:pmem backfill-embeddings
存储规则 存储持久偏好、长期事实、稳定工作流和重复约束。保持条目简洁具体。优先使用能提升检索质量的标签(如 preferences、calendar、comms、product)。
检索规则 使用有针对性的搜索查询,而不是宽泛术语。除非需要更深入的召回,否则保持默认 --limit 较低。
引导与恢复 如果 .memory/ 缺失,运行 pmem init。pmem sync 是轻量的仅数据库检查(不进行 markdown 导入/导出)。如果语义模式降级,运行 pmem stats 检查 semantic_backend 和 embedding_coverage。命令示例和快速故障排除可阅读 references/usage.md。
适用场景 适用于需要跨会话保留稳定偏好、长期事实、固定工作流和重复约束的代码仓库或工作区。
限制 资料未提供关于收费、价格、平台支持范围、具体效果指标等更多信息。