@avantf/dsh-mem 0.8.1 → 0.10.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.
- package/README.md +42 -43
- package/lib/client.js +1181 -327
- package/lib/engine/graph-recall/index.d.ts +2 -2
- package/lib/engine/graph-recall/traverse.d.ts +2 -2
- package/lib/engine/graph-recall/types.d.ts +1 -1
- package/lib/engine/mem/config/config_files.d.ts +1 -1
- package/lib/engine/mem/db/dao/facts.d.ts +80 -82
- package/lib/engine/mem/dbdrivers/sqlite/facts.d.ts +6 -13
- package/lib/engine/mem/defaults.d.ts +4 -1
- package/lib/engine/mem/entities/extract.d.ts +34 -14
- package/lib/engine/mem/facts_io.d.ts +4 -0
- package/lib/engine/mem/index.d.ts +1 -0
- package/lib/engine/mem/interfaces/repositories.d.ts +5 -19
- package/lib/engine/mem/lifecycle/maintenance.d.ts +8 -4
- package/lib/engine/mem/lifecycle/tick.d.ts +11 -10
- package/lib/engine/mem/lifecycle/trust.d.ts +24 -37
- package/lib/engine/mem/modelBootstrap.d.ts +29 -0
- package/lib/engine/mem/runtime.d.ts +4 -8
- package/lib/engine/mem/store/facts_restore.d.ts +8 -6
- package/lib/engine/mem/store/graph_reader.d.ts +2 -2
- package/lib/engine/mem/store/memory.d.ts +98 -37
- package/lib/engine/mem/store/recall_policy.d.ts +10 -0
- package/lib/engine/mem/store/time_filter.d.ts +1 -1
- package/lib/engine/mem/trustHeartbeat.d.ts +1 -1
- package/lib/engine/mem-contract/config.d.ts +144 -9
- package/lib/engine/mem-contract/index.d.ts +2 -0
- package/lib/engine/mem-contract/time.d.ts +75 -0
- package/lib/engine/mem-contract/tools.d.ts +9 -15
- package/lib/engine/mem-contract/trust_curve.d.ts +119 -0
- package/lib/engine/mem-contract/types.d.ts +73 -12
- package/lib/engine/mem-retrieval/adapters/auto_vstore.d.ts +10 -0
- package/lib/engine/mem-retrieval/adapters/hnswlib.d.ts +28 -0
- package/lib/engine/mem-retrieval/adapters/local_bge.d.ts +48 -6
- package/lib/engine/mem-retrieval/interfaces.d.ts +22 -2
- package/lib/engine/mem-retrieval/text_budget.d.ts +31 -0
- package/lib/index.js +2349 -665
- package/lib/interface-version.json +2 -2
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/paging.d.ts +58 -8
- package/lib/types/client/paging.d.ts.map +1 -1
- package/lib/types/client/time_filter.d.ts +54 -0
- package/lib/types/client/time_filter.d.ts.map +1 -0
- package/lib/types/command.d.ts.map +1 -1
- package/lib/types/deps_audit.d.ts +88 -0
- package/lib/types/deps_audit.d.ts.map +1 -0
- package/lib/types/envinit-bootstrap.d.ts +1 -1
- package/lib/types/envinit.d.ts +224 -4
- package/lib/types/envinit.d.ts.map +1 -1
- package/lib/types/hints.d.ts +58 -0
- package/lib/types/hints.d.ts.map +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/remote.d.ts.map +1 -1
- package/lib/types/render.d.ts.map +1 -1
- package/lib/types/runtime_deps_resource.d.ts +29 -0
- package/lib/types/runtime_deps_resource.d.ts.map +1 -0
- package/package.json +26 -24
- package/res/runtime-deps.yaml +99 -0
package/README.md
CHANGED
|
@@ -1,38 +1,34 @@
|
|
|
1
1
|
# @avantf/dsh-mem
|
|
2
2
|
|
|
3
|
-
DSH(DeepSeek Harness)原生记忆插件:给 agent
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
DSH(DeepSeek Harness)原生记忆插件:给 agent 一份可长期检索的**记忆**——它跨会话记得你说过的事,
|
|
4
|
+
也能按语义、全文、实体、标题与时间把它找回来。装上后提供 3 个模型工具、一段用法提示
|
|
5
|
+
和一个主窗口标签页(记忆)。
|
|
6
|
+
|
|
7
|
+
> 文档知识库不在本插件里:它已拆到独立插件 **`dsh-knowledges`**(`knowledge.db`、受管文档、`kb_*` 工具、
|
|
8
|
+
> 知识页与文档转换都在那边)。本插件既不读也不删 `~/.avantf/knowledge/**`。
|
|
6
9
|
|
|
7
10
|
## 主要功能
|
|
8
11
|
|
|
9
|
-
- **
|
|
10
|
-
- `mem_remember`:新增 / 改写 /
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
- **3 个模型工具**
|
|
13
|
+
- `mem_remember`:新增 / 改写 / 删除事实(写入后立刻做矛盾检测),分两层——`journal`(做了什么 /
|
|
14
|
+
聊了什么,必带 `event_date` 与短 `title`,同一事务复用同一 title)与 `note`(稳定事实 / 偏好 /
|
|
15
|
+
约定 / 坑,可带 `relations` 三元组)
|
|
16
|
+
- `mem_recall`:`search` 内容检索(先对整句做字面精确匹配,再按查询形态返回事实集合 / 关系结构 /
|
|
17
|
+
模糊检索;只给 `time` 就是纯时间召回)与 `titles` 标题检索(写 journal 前查重、标题纠错用)
|
|
18
|
+
- `mem_admin`:`list` 列举 / `contradictions` 列出未处理的矛盾对 / **导出 / 导入 / 快照重建**。
|
|
19
|
+
文件路径**只允许本次运行的数据根内**
|
|
13
20
|
(默认导出到 `<数据根>/backups/memory-YYYYMMDD-HHMMSS.json.br`,原子写,结果不含文档正文);
|
|
14
21
|
`import` 按**文件头**自动识别 SQLite(只读合并另一份 `memory.db`,报告 `mode:'db'`)与 JSON 导出文档
|
|
15
22
|
(`mode:'json'`);`restore_snapshot` 必须显式 `confirm: true`,且只接受**空 facts 表**,恢复后同一宿主
|
|
16
23
|
进程立即可检索。
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
在「记忆」「知识」页与 CLI 里可用,不占用模型工具面。
|
|
23
|
-
- **记忆与知识一起检索**:对记忆事实与文档切片做统一排序,两类结果处在同一分数刻度上,
|
|
24
|
-
所以"我之前定过的约定"和"文档里怎么写的"能一次问出来。
|
|
25
|
-
- **记忆是活的**:按活跃使用结算,支持有效期、遗忘、去重与修订链;同一主题的改动会被识别成
|
|
24
|
+
- 诊断、策展(pin / unpin / 归档恢复 / 矛盾裁决)与索引修复(重建索引、向量修复)是**操作者动作**:
|
|
25
|
+
在「记忆」页与 CLI 里可用,不占用模型工具面。
|
|
26
|
+
- **混合检索**:语义 + 全文 + 实体三腿融合;`search` 按查询形态给出事实集合(多实体并列)、关系结构
|
|
27
|
+
(谁管理谁这类方向问句)、纯时间召回或模糊检索。
|
|
28
|
+
- **记忆是活的**:按活跃使用日结算、支持遗忘、去重与修订链;同一主题的改动会被识别成
|
|
26
29
|
对旧事实的**修订**而不是简单叠加,写入时顺带做矛盾检测。
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
- **知识可维护**:每篇文档在数据目录里留一份可编辑的 Markdown 副本,用你自己的编辑器改,
|
|
30
|
-
插件会在其后自动把改动同步回索引;删除文档只删这份副本,你原来的文件不动。
|
|
31
|
-
- **两个主窗口标签页**(排在 对话 / 轨迹 之后):**记忆**(浏览、编辑、归档恢复、反馈、矛盾裁决)
|
|
32
|
-
与**知识**(文档列表,每行可查看切片 / 编辑 / 打开目录 / 重新摄入 / 删除;另有跨库查询与入库——
|
|
33
|
-
URL / 本地文件 / 本地目录 / 粘贴文本共用一个输入)。
|
|
34
|
-
- 系统提示词里只加**三段**用法提示(何时该主动记忆、何时该先查记忆、何时该先查知识库 / 怎么改一篇
|
|
35
|
-
既有文档)。
|
|
30
|
+
- **一个主窗口标签页**(排在 对话 / 轨迹 之后):**记忆**(浏览、编辑、pin/unpin、归档恢复、矛盾裁决)。
|
|
31
|
+
- 系统提示词里只加**一段**用法提示(何时该主动记忆、journal 与 note 怎么分、同一事务怎么复用 title)。
|
|
36
32
|
|
|
37
33
|
## 接入 dsh
|
|
38
34
|
|
|
@@ -64,19 +60,21 @@ dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>
|
|
|
64
60
|
```
|
|
65
61
|
|
|
66
62
|
```text
|
|
67
|
-
|
|
63
|
+
上周做了什么?(按事件时间召回 journal 条目)
|
|
68
64
|
```
|
|
69
65
|
|
|
70
66
|
```text
|
|
71
|
-
|
|
67
|
+
谁负责发布流程?(关系问句直接返回关系结构)
|
|
72
68
|
```
|
|
73
69
|
|
|
74
70
|
```text
|
|
75
71
|
把「每周四发布」改成「每周三发布」,并说明依据。
|
|
76
72
|
```
|
|
77
73
|
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
查重与改标题:写 journal 前先让模型用 `mem_recall` 的 `titles` 找候选,读到候选就 `update`、
|
|
75
|
+
读不到才 `add`;标题写错时用 `update` 带 `retitle: true` 纠正一次(旧标题保留为别名,仍能检索到)。
|
|
76
|
+
|
|
77
|
+
要改一篇**文档**:那是 `dsh-knowledges` 的事(`kb_*` 工具与「知识」页在那边),本插件不提供文档入口。
|
|
80
78
|
|
|
81
79
|
常见维护动作(在「记忆」页或 CLI 里):
|
|
82
80
|
|
|
@@ -87,8 +85,7 @@ dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>
|
|
|
87
85
|
|
|
88
86
|
### 相关性门槛:严格 / 宽松
|
|
89
87
|
|
|
90
|
-
|
|
91
|
-
`floors: 'strict' | 'loose'`):
|
|
88
|
+
「记忆」页的查询面板有**严格 / 宽松**选择(工具面的 `mem_recall` 也接受 `floors: 'strict' | 'loose'`):
|
|
92
89
|
|
|
93
90
|
- **严格**(面板默认):只有明确够相关的才返回,所以"没有结果"是一个可信的答案。
|
|
94
91
|
- **宽松**:门槛更低,用来找回边角相关的条目——仍有一条底线,不是无门槛。
|
|
@@ -97,17 +94,19 @@ dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>
|
|
|
97
94
|
|
|
98
95
|
## 配置、数据与提示词
|
|
99
96
|
|
|
100
|
-
- **数据目录**:默认 `~/.avantf
|
|
97
|
+
- **数据目录**:默认 `~/.avantf`。记忆库(`memory/memory.db`)、配置与提示词文件、备份与模型缓存都在其中;
|
|
101
98
|
环境变量 `AVANTF_HOME` 可以改变它。
|
|
102
|
-
- **配置**:`~/.avantf/configs/`
|
|
103
|
-
`memory.yaml
|
|
104
|
-
|
|
105
|
-
`
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
|
|
99
|
+
- **配置**:`~/.avantf/configs/` 下的两份 YAML —— `common.yaml`(公共项,缺失时按注释模板自动创建)与
|
|
100
|
+
`memory.yaml`。只写你要改的项,其余取内置默认。寿命按**活跃使用日**表达(`trust.base_lifetime_days` 是新事实的
|
|
101
|
+
寿命,默认 **90**;`trust.max_retention_days` 是召回加强能换来的最长寿命,默认 **174**;
|
|
102
|
+
`lifecycle.purge_after_archived_days` 是归档后的回收窗口);没有单条到期字段,也没有日历兜底。
|
|
103
|
+
- **提示词文件**:`~/.avantf/prompts/` 下的 `mem-memory-usage.md`。缺失或为空时插件写入默认内容,
|
|
104
|
+
**只在启动时读一次**,改完重启生效。
|
|
105
|
+
可以按自己的领域改写:内置默认刻意不出现任何领域名词,只给判据与记忆的两层——
|
|
106
|
+
- `journal`:一项实质性工作 / 话题完成或阶段性收敛时主动记一条,必须带 `event_date` 与短 `title`;
|
|
107
|
+
- `note`:稳定的偏好 / 约定 / 坑,直接记录,规则写成「当……应……」。
|
|
108
|
+
- 不适合写进记忆:临时聊天、一次性中间状态、容易查到的内容——依据归文档(`dsh-knowledges` 的文档库),
|
|
109
|
+
记忆里只留 **结论 + 位置**(路径 / 来源 / 名称);敏感信息同理,只记存放位置,不记明文。
|
|
111
110
|
- **升级前建议先备份 `~/.avantf`**:数据库迁移是单向的,用旧版本打开新库会被明确拒绝。
|
|
112
111
|
|
|
113
112
|
## 升级 / 卸载
|
|
@@ -120,8 +119,8 @@ dsh plugin --profile <PROFILE> add @avantf/dsh-mem@<version>
|
|
|
120
119
|
dsh plugin --profile <PROFILE> remove @avantf/dsh-mem
|
|
121
120
|
```
|
|
122
121
|
|
|
123
|
-
两者都要重启 dsh 生效。卸载**不动 `~/.avantf
|
|
124
|
-
|
|
122
|
+
两者都要重启 dsh 生效。卸载**不动 `~/.avantf`**:记忆库与模型缓存全部保留(`~/.avantf/knowledge/**` 属
|
|
123
|
+
`dsh-knowledges`,同样不动)。DSH Desktop 在「插件」页上卸载。
|
|
125
124
|
|
|
126
125
|
## 环境要求
|
|
127
126
|
|