openmemory-plus 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,64 @@
1
+ # 衰减分析
2
+
3
+ 分析记忆的时间衰减状态。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 调用 `list_memories_openmemory` 获取所有记忆
8
+ 2. 计算每条记忆的衰减分数
9
+ 3. 按状态分组展示
10
+ 4. 提供清理建议
11
+
12
+ ## 衰减算法
13
+
14
+ 基于时间的衰减公式:
15
+
16
+ ```
17
+ score = baseScore * (1 - decayRate * daysSinceCreation)
18
+ + accessBonus * recentAccessCount
19
+ + importanceWeight
20
+ ```
21
+
22
+ ## 衰减状态
23
+
24
+ | 状态 | 分数范围 | 含义 | 建议操作 |
25
+ |------|----------|------|----------|
26
+ | 🟢 Active | 0.7 - 1.0 | 活跃,经常使用 | 保留 |
27
+ | 🟡 Aging | 0.3 - 0.7 | 老化,需要关注 | 考虑更新 |
28
+ | 🔴 Stale | 0.1 - 0.3 | 陈旧,考虑清理 | 建议清理 |
29
+ | ⚫ Cleanup | 0 - 0.1 | 待清理 | 强烈建议删除 |
30
+
31
+ ## 输出格式
32
+
33
+ ```
34
+ ⏰ 记忆衰减分析
35
+
36
+ 📊 总览: 15 条记忆
37
+
38
+ 🟢 Active (12条) ████████████░░░ 80%
39
+ ├── 用户偏好中文对话 [1.00]
40
+ ├── 熟悉 TypeScript [0.95]
41
+ ├── 项目使用 Vitest 测试 [0.88]
42
+ └── ... 更多 (输入 "展开 active" 查看全部)
43
+
44
+ 🟡 Aging (2条) ██░░░░░░░░░░░░░ 13%
45
+ ├── 旧项目使用 Webpack [0.45]
46
+ └── 偏好 Vim 编辑器 [0.38]
47
+
48
+ 🔴 Stale (1条) █░░░░░░░░░░░░░░ 7%
49
+ └── 使用 jQuery [0.12]
50
+
51
+ 💡 建议:
52
+ - 清理 1 条 Stale 记忆
53
+ - 关注 2 条 Aging 记忆,考虑是否仍然相关
54
+ ```
55
+
56
+ ## 后续操作
57
+
58
+ - "清理 stale" → 删除所有 Stale 状态记忆
59
+ - "刷新第 N 条" → 更新访问时间,重置衰减
60
+ - "展开 active" → 显示所有 Active 记忆详情
61
+
62
+ ## 返回菜单
63
+
64
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,75 @@
1
+ # 知识图谱
2
+
3
+ 查看记忆中的实体关系图谱。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 读取 `.memory/graph.yaml` (如果存在)
8
+ 2. 从项目信息和记忆中提取实体
9
+ 3. 分析实体之间的关系
10
+ 4. 可视化展示
11
+
12
+ ## 实体类型
13
+
14
+ | 类型 | 示例 |
15
+ |------|------|
16
+ | project | openmemory-plus |
17
+ | service | API, CLI, Web |
18
+ | database | Qdrant, PostgreSQL |
19
+ | api | REST API, GraphQL |
20
+ | config | tsconfig.json, package.json |
21
+ | person | 用户名, 团队成员 |
22
+ | technology | TypeScript, React |
23
+ | decision | 技术选型, 架构决策 |
24
+ | preference | 用户偏好 |
25
+
26
+ ## 关系类型
27
+
28
+ | 关系 | 含义 |
29
+ |------|------|
30
+ | uses | A 使用 B |
31
+ | depends_on | A 依赖 B |
32
+ | configured_by | A 由 B 配置 |
33
+ | created_by | A 由 B 创建 |
34
+ | related_to | A 与 B 相关 |
35
+ | stores_in | A 存储在 B |
36
+ | prefers | 用户偏好 A |
37
+
38
+ ## 输出格式
39
+
40
+ ```
41
+ 🔗 知识图谱
42
+
43
+ 项目: openmemory-plus
44
+
45
+ 实体关系:
46
+ ┌─────────────────────────────────────────┐
47
+ │ │
48
+ │ [CLI] ──uses──> [TypeScript] │
49
+ │ │ │
50
+ │ ├──depends_on──> [Commander.js] │
51
+ │ │ │
52
+ │ └──configured_by──> [tsconfig.json] │
53
+ │ │
54
+ │ [openmemory] ──uses──> [Qdrant] │
55
+ │ │ │
56
+ │ └──uses──> [BGE-M3] │
57
+ │ │
58
+ │ [User] ──prefers──> [中文] │
59
+ │ │ │
60
+ │ └──prefers──> [TypeScript] │
61
+ │ │
62
+ └─────────────────────────────────────────┘
63
+
64
+ 统计: 8 个实体, 7 个关系
65
+ ```
66
+
67
+ ## 后续操作
68
+
69
+ - "添加关系" → 手动添加实体关系
70
+ - "查看 [实体名]" → 展示该实体的所有关系
71
+ - "导出" → 导出为 Mermaid/DOT 格式
72
+
73
+ ## 返回菜单
74
+
75
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,38 @@
1
+ # 搜索记忆
2
+
3
+ 在项目级和用户级记忆中进行语义搜索。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 询问搜索关键词(如果用户未提供)
8
+ 2. 调用 `search_memory_openmemory` 搜索用户记忆
9
+ 3. 同时搜索 `.memory/` 目录下的 YAML 文件
10
+ 4. 按相关度排序,合并展示结果
11
+
12
+ ## 输出格式
13
+
14
+ ```
15
+ 🔍 搜索结果: "{query}"
16
+
17
+ 📁 项目级结果:
18
+ 1. [decisions.yaml] 技术决策: 使用 TypeScript
19
+ 匹配度: 0.85
20
+
21
+ 👤 用户级结果:
22
+ 1. 用户偏好使用 pnpm 包管理器
23
+ 创建时间: 30天前 | 衰减状态: Active
24
+
25
+ 共找到 2 条相关记忆
26
+ ```
27
+
28
+ ## 后续操作
29
+
30
+ 用户可以继续操作:
31
+
32
+ - "删除第 N 条" → 执行删除
33
+ - "查看详情" → 展示完整内容
34
+ - "更新第 N 条" → 修改记忆内容
35
+
36
+ ## 返回菜单
37
+
38
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,35 @@
1
+ # 记忆状态
2
+
3
+ 查看项目级和用户级记忆的详细状态。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 读取 `.memory/` 目录,列出文件和最后修改时间
8
+ 2. 调用 `list_memories_openmemory` 获取用户记忆
9
+ 3. 分析衰减状态分布
10
+ 4. 统计并展示
11
+
12
+ ## 输出格式
13
+
14
+ ```
15
+ 📊 记忆系统详细状态
16
+
17
+ 📁 项目级 (.memory/)
18
+ ├── project.yaml (2024-01-15 更新)
19
+ ├── decisions.yaml (2024-01-10 更新)
20
+ └── changelog.yaml (2024-01-14 更新)
21
+
22
+ 👤 用户级 (openmemory)
23
+ ├── 总记忆数: 15 条
24
+ ├── 最近添加: "用户偏好中文对话" (1天前)
25
+ └── 衰减状态:
26
+ ├── 🟢 Active: 12 条
27
+ ├── 🟡 Aging: 2 条
28
+ └── 🔴 Stale: 1 条
29
+
30
+ ✅ 系统状态正常
31
+ ```
32
+
33
+ ## 返回菜单
34
+
35
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,45 @@
1
+ # 存储记忆
2
+
3
+ 手动添加新的记忆到系统中。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 询问要存储的内容(如果用户未提供)
8
+ 2. 分析信息类型,确定存储位置
9
+ 3. 确认存储位置
10
+ 4. 执行存储
11
+
12
+ ## 分类逻辑
13
+
14
+ 根据信息特征自动路由到合适的存储位置:
15
+
16
+ | 信息特征 | 存储位置 | 操作 |
17
+ |----------|----------|------|
18
+ | 包含项目路径/URL/配置 | `.memory/project.yaml` | 写入 YAML |
19
+ | 包含技术决策 ("选择"、"决定"、"使用") | `.memory/decisions.yaml` | 写入 YAML |
20
+ | 用户偏好 ("喜欢"、"偏好"、"习惯") | openmemory | `add_memories_openmemory` |
21
+ | 用户技能 ("熟悉"、"擅长"、"会用") | openmemory | `add_memories_openmemory` |
22
+ | 其他 | 询问用户选择 | - |
23
+
24
+ ## 输出格式
25
+
26
+ ```
27
+ 💾 记忆已存储
28
+
29
+ 类型: 用户偏好
30
+ 内容: "偏好使用 TypeScript 而非 JavaScript"
31
+ 位置: openmemory
32
+ 时间: 2024-01-15 10:30
33
+
34
+ 还需要存储其他信息吗?
35
+ ```
36
+
37
+ ## 批量存储
38
+
39
+ 支持一次存储多条信息:
40
+ - "这个项目用 React,部署在 Vercel,域名是 xxx.com"
41
+ - 自动拆分并分类存储
42
+
43
+ ## 返回菜单
44
+
45
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,50 @@
1
+ # 同步检查
2
+
3
+ 检测项目级和用户级记忆之间的冲突。
4
+
5
+ ## 执行步骤
6
+
7
+ 1. 读取 `.memory/` 中的所有信息
8
+ 2. 搜索 openmemory 中的相关记忆
9
+ 3. 检测冲突(同一主题不同值)
10
+ 4. 展示冲突列表
11
+ 5. 提示用户选择解决方式
12
+
13
+ ## 冲突类型
14
+
15
+ | 冲突类型 | 示例 | 解决方式 |
16
+ |----------|------|----------|
17
+ | 值不一致 | 项目级: "用 npm" vs 用户级: "偏好 pnpm" | 用户选择保留哪个 |
18
+ | 重复记录 | 两处都记录了部署 URL | 合并或删除重复 |
19
+ | 过期信息 | 项目级配置已更新,用户级未同步 | 更新用户级 |
20
+
21
+ ## 输出格式
22
+
23
+ ```
24
+ 🔄 同步检查结果
25
+
26
+ 发现 2 个冲突:
27
+
28
+ ⚠️ 冲突 1: 包管理器偏好不一致
29
+ ├── 📁 项目级: 使用 npm (package-lock.json 存在)
30
+ └── 👤 用户级: "偏好使用 pnpm"
31
+
32
+ 建议: 更新用户记忆以匹配项目配置
33
+ 操作: [A] 保留项目级 [B] 保留用户级 [S] 跳过
34
+
35
+ ⚠️ 冲突 2: 部署 URL 重复
36
+ ├── 📁 项目级: deploy_url: "https://xxx.vercel.app"
37
+ └── 👤 用户级: "项目部署在 https://xxx.vercel.app"
38
+
39
+ 建议: 删除用户级重复记录
40
+ 操作: [A] 删除用户级 [B] 保留两者 [S] 跳过
41
+ ```
42
+
43
+ ## 自动同步选项
44
+
45
+ - "全部自动" - 按建议自动处理所有冲突
46
+ - "逐个处理" - 一个一个确认
47
+
48
+ ## 返回菜单
49
+
50
+ 完成后提示: "还需要其他操作吗?输入 `/memory` 返回菜单"
@@ -0,0 +1,108 @@
1
+ # Memory Classification Rules
2
+
3
+ 记忆分类规则,定义信息存储位置决策逻辑。
4
+
5
+ ## 存储位置决策表
6
+
7
+ | 信息类型 | 存储位置 | 识别关键词 |
8
+ |----------|----------|------------|
9
+ | 项目配置 | `.memory/project.yaml` | url, domain, deploy, vercel, config, path |
10
+ | 技术决策 | `.memory/decisions.yaml` | 决定, 选择, 采用, 架构, decision, choose |
11
+ | 变更记录 | `.memory/changelog.yaml` | 更新, 修改, 发布, update, change, release |
12
+ | 用户偏好 | `openmemory` | 偏好, 喜欢, 习惯, prefer, style, always |
13
+ | 用户技能 | `openmemory` | 会, 熟悉, 经验, skill, experience, know |
14
+ | 对话上下文 | `openmemory` | 之前, 上次, 记得, remember, last time |
15
+
16
+ ## 分类优先级
17
+
18
+ 1. **项目相关** → `.memory/` (Git 版本控制)
19
+ 2. **用户相关** → `openmemory` (跨项目共享)
20
+ 3. **混合信息** → 拆分存储到两个系统
21
+
22
+ ## 敏感信息过滤
23
+
24
+ **禁止存储**(检测后阻止):
25
+
26
+ | 类型 | 检测模式 |
27
+ |------|----------|
28
+ | API Key | `sk-`, `api_key`, `token=`, `bearer` |
29
+ | 密码 | `password`, `secret`, `credential` |
30
+ | 私钥 | `-----BEGIN`, `PRIVATE KEY` |
31
+ | 个人信息 | 身份证号, 银行卡号, 手机号 |
32
+
33
+ ## 分类决策流程
34
+
35
+ ```
36
+ 信息输入
37
+
38
+ 敏感信息检测 → 是 → 阻止存储,提示用户
39
+ ↓ 否
40
+ 项目相关判断 → 是 → .memory/{category}.yaml
41
+ ↓ 否
42
+ 用户相关判断 → 是 → openmemory (add_memories)
43
+ ↓ 否
44
+ 丢弃 (琐碎信息)
45
+ ```
46
+
47
+ ## 项目相关信息判断
48
+
49
+ **存入 `.memory/` 的条件**:
50
+ - 包含项目路径、URL、域名
51
+ - 涉及部署配置、环境变量名(非值)
52
+ - 技术架构决策
53
+ - 项目里程碑、版本信息
54
+
55
+ ## 用户相关信息判断
56
+
57
+ **存入 `openmemory` 的条件**:
58
+ - 用户表达偏好 ("我喜欢...", "以后都用...")
59
+ - 用户技能声明 ("我会...", "我熟悉...")
60
+ - 跨项目通用的习惯
61
+ - 用户个人经历、背景
62
+
63
+ ## ROT 过滤规则
64
+
65
+ **不存储的信息**:
66
+
67
+ | 类型 | 示例 |
68
+ |------|------|
69
+ | 琐碎确认 | "好的", "OK", "明白了" |
70
+ | 临时状态 | "正在处理...", "稍等" |
71
+ | 重复信息 | 已存在的相同内容 |
72
+ | 过期信息 | 被明确否定或更新的旧信息 |
73
+
74
+ ## MCP 工具调用
75
+
76
+ ### 写入 openmemory
77
+
78
+ ```
79
+ Tool: add_memories_openmemory
80
+ Parameter: text = "{提取的用户信息}"
81
+ ```
82
+
83
+ ### 搜索 openmemory
84
+
85
+ ```
86
+ Tool: search_memory_openmemory
87
+ Parameter: query = "{搜索关键词}"
88
+ ```
89
+
90
+ ### 列出所有记忆
91
+
92
+ ```
93
+ Tool: list_memories_openmemory
94
+ ```
95
+
96
+ ## 降级策略
97
+
98
+ **当 openmemory 不可用时**:
99
+ 1. 检测 MCP 连接状态
100
+ 2. 降级到仅 `.memory/` 存储
101
+ 3. 用户相关信息临时存入 `.memory/user-context.yaml`
102
+ 4. 服务恢复后提示同步
103
+
104
+ ---
105
+
106
+ **版本**: v1.0
107
+ **更新日期**: 2026-02-02
108
+