dsh-mnemos-continuity 1.7.0 → 1.7.1
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/INSTALL.md +16 -152
- package/README.en.md +7 -5
- package/README.md +16 -10
- package/VERSION.md +35 -28
- package/docs/00-/346/236/266/346/236/204/346/200/273/350/247/210.md +15 -10
- package/docs/01-/347/256/200/344/273/213.md +31 -50
- package/docs/02-architecture-/346/234/272/345/210/266/346/270/205/345/215/225.md +12 -11
- package/docs/03-/350/256/276/350/256/241/350/200/205/350/247/206/350/247/222.md +28 -10
- package/docs/04-/346/250/241/345/235/227/344/270/216/345/212/237/350/203/275/345/256/236/347/216/260.md +67 -69
- package/docs//346/250/241/345/235/227/344/270/216/345/212/237/350/203/275/345/256/236/347/216/260.md +67 -69
- package/package.json +3 -2
- package/src/curation-dispatch.js +32 -0
- package/src/index.js +53 -442
- package/src/system-prompt.js +1 -1
- package/src/tool-output.js +0 -26
- package/src/tool-results.js +0 -34
- package/src/trust-label.js +36 -0
- package/docs/architecture-/346/234/272/345/210/266/346/270/205/345/215/225.docx +0 -0
- package/docs//346/236/266/346/236/204/346/200/273/350/247/210.docx +0 -0
- package/docs//347/256/200/344/273/213-introduction.docx +0 -0
- package/docs//350/256/276/350/256/241/350/200/205/350/247/206/350/247/222.docx +0 -0
- package/examples/skills/host-interface-verification.md +0 -15
- package/examples/skills/outside-workspace-file-ops.md +0 -16
- package/src/learner-loop.js +0 -881
package/INSTALL.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# 安装与配置 Mnemos(v1.7.
|
|
1
|
+
# 安装与配置 Mnemos(v1.7.1)
|
|
2
2
|
|
|
3
3
|
> 这份文件只写**你要做的事**:装、配、验证、排错、数据放哪。
|
|
4
4
|
> 它是什么、值不值得用 → `docs/简介`;有什么机制 → `docs/architecture-机制清单`;为什么这样设计 → `docs/设计者视角`。
|
|
@@ -19,7 +19,7 @@ Mnemos 是**装在你机器上的一套「让判断跨会话、跨模型继续
|
|
|
19
19
|
|
|
20
20
|
> **保守起步(推荐第一次就这么做)**:装完先关掉后台维护 —— `heartbeatEnabled: false`(见第 10 节),
|
|
21
21
|
> 只留"写记忆 / 召回 / 任务续接",确认对你真有用再一项项开回来。
|
|
22
|
-
>
|
|
22
|
+
> 空闲学习已在 v1.7.1 移除,开放任务改由宿主自动化任务承担;所以第一晚不会有 learner 的自动 AI 调用。
|
|
23
23
|
>
|
|
24
24
|
> **关掉之后还剩什么**(这张表就是"保守起步"的全部代价,先看清再决定):
|
|
25
25
|
>
|
|
@@ -222,7 +222,6 @@ $env:ELECTRON_RUN_AS_NODE = 1
|
|
|
222
222
|
| `mnemos_propose_skill` | 提议新建技能(failure-fixed 要反例+正例;memory-recurring 要 ≥3 个跨会话事件、正反例至少一种;external-rewrite 要来源记录,且默认只暂存、保留需你确认) |
|
|
223
223
|
| `mnemos_task_open` / `mnemos_task_update` / `mnemos_task_close` / `mnemos_task_done` / `mnemos_task_cite` | 任务图(任务档案/寻址空间):开图 / 填回执 / 收尾 / 记已完成里程碑 / 登记依赖 —— 派活、跨会话、或会产出多条记忆时用;未完成步骤用宿主 todo,图不复制结论正文 |
|
|
224
224
|
| `mnemos_heartbeat` / `mnemos_maintenance_list` / `mnemos_heartbeat_toggle` | 手动跑一次维护 / 看维护清单 / 关心跳 |
|
|
225
|
-
| `mnemos_learner_kick` | 立刻踢一轮空闲学习(诊断用,也可主动触发) |
|
|
226
225
|
|
|
227
226
|
## 8. 后台维护在做什么(心跳)
|
|
228
227
|
|
|
@@ -233,142 +232,14 @@ $env:ELECTRON_RUN_AS_NODE = 1
|
|
|
233
232
|
**一个定时器跑整张注册表**:`heartbeatIntervalMs` 管的是全部维护任务。
|
|
234
233
|
运行时开关默认在每轮对话开始时被置回开启;要**持久关闭**,在配置里写 `heartbeatEnabled: false`。
|
|
235
234
|
|
|
236
|
-
## 9.
|
|
235
|
+
## 9. 宿主自动化(替代空闲学习)
|
|
237
236
|
|
|
238
|
-
|
|
239
|
-
> 下面这些是把它开起来才会遇到的坑(preset、provider 路由、工作目录),不是使用这个插件的前提知识。
|
|
237
|
+
v1.7.1 已移除空闲学习:`learner-loop`、`mnemos_learner_kick`、learner 配置与 preset 都不再存在。
|
|
240
238
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
### 两个前提,缺一不可
|
|
245
|
-
|
|
246
|
-
| 前提 | 配置 |
|
|
247
|
-
|---|---|
|
|
248
|
-
| ① 打开开关 | `learnerEnabled: true`(默认 false) |
|
|
249
|
-
| ② 配好外部 API | `learnerProvider` + `learnerModel`(**必须**,缺一即不工作;为什么不能用 DeepSeek 自家路由见下) |
|
|
250
|
-
|
|
251
|
-
```yaml
|
|
252
|
-
- id: dsh-mnemos
|
|
253
|
-
config:
|
|
254
|
-
learnerEnabled: true
|
|
255
|
-
learnerIntervalMs: 3600000 # 1 小时
|
|
256
|
-
learnerProvider: <provider-id> # 必须:带 key 的第三方路由(见下)
|
|
257
|
-
learnerModel: <model-id>
|
|
258
|
-
learnerAgentPreset: standard # 不设它就没有联网/读文件工具(也可自建精简 preset,见下)
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
> **默认用什么模型**:没有默认 —— **必须自己填** `learnerProvider` + `learnerModel`(带 key 的第三方路由),留空即不工作。
|
|
262
|
-
> 想让它跑在别的模型上,就显式填 `learnerProvider` + `learnerModel`(必须是带 key 的 provider)。
|
|
263
|
-
> 注意:如果你把模型配错(比如配了一个拿不到凭据的 provider),回执与 `learner.log` 会记下失败原因,不会静默。
|
|
264
|
-
|
|
265
|
-
### 我们实际用的接法(可以直接照抄)
|
|
266
|
-
|
|
267
|
-
关键点是:**联网与学习是两套独立的接线,各走各的路由。**
|
|
268
|
-
|
|
269
|
-
| 用途 | 走哪条路由 | 为什么 |
|
|
270
|
-
|---|---|---|
|
|
271
|
-
| **联网**(`web_search` / `web_fetch`) | **DeepSeek 官方**(`web-search-deepseek`,凭据用 `DEEPSEEK_API_KEY`,key 存凭据服务、不写进配置) | 官方端点能真正拿到搜索结果;换第三方 Anthropic 端点会因缺计费头而**拿不到结果**(实测) |
|
|
272
|
-
| **空闲学习的模型** | **必须第三方 api-key 路由**(如阿里云 token-plan 的 `qwen3.8-flash`) | 空闲学习是**插件自己建**的 agent:后台几乎不存在活父会话,也就借不到宿主的派活通道;而自建 agent 走 DeepSeek 自家路由会稳定 `TRANSPORT`,第三方 api-key 一次就通。另外宿主派活的子会话会挂在父会话下面、人不好看见 —— 后台任务应当独立可观测 |
|
|
273
|
-
|
|
274
|
-
所以一句话:**官方 key 只用在"搜索"上,不用在 learner 的 LLM 上** —— 两者互不影响,也不用为了联网去动学习模型。
|
|
275
|
-
|
|
276
|
-
```yaml
|
|
277
|
-
- id: dsh-mnemos
|
|
278
|
-
config:
|
|
279
|
-
learnerEnabled: true
|
|
280
|
-
learnerIntervalMs: 21600000 # 6 小时;每轮 token 取决于模型自己选的任务(未测量),频率低一点更划算
|
|
281
|
-
learnerProvider: aliyun # ★ 第三方 api-key 路由(必须)
|
|
282
|
-
learnerModel: qwen3.8-flash
|
|
283
|
-
# 留空 = 不工作:后台没有主会话可借,也不会退回 DeepSeek 自家路由
|
|
284
|
-
learnerAgentPreset: standard # 出厂 preset(带联网/读文件);要收窄再自建,见下
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
> **为什么必须是第三方路由**:空闲学习是**插件自己建**的 agent —— 后台运行时几乎不存在"活着的父会话",
|
|
288
|
-
> 所以借不到宿主的派活通道;而自建 agent 走 DeepSeek 自家路由会稳定 `TRANSPORT`(实测 5 次重试全败),
|
|
289
|
-
> 走第三方 api-key 路由一次就通。另一条理由:宿主派活的子会话挂在**父会话的智能体**下面,人不好看见。
|
|
290
|
-
|
|
291
|
-
### 工具集由 preset 决定
|
|
292
|
-
|
|
293
|
-
**不设 `learnerAgentPreset` 时,默认就是 `standard`** —— 它带联网与读文件工具,能正常学习。
|
|
294
|
-
只有当你**想收窄**工具集(比如不想要 shell / 子代理 / 待办这些),才需要自建一个精简 preset。
|
|
295
|
-
|
|
296
|
-
照抄这一行就够用:
|
|
297
|
-
|
|
298
|
-
```yaml
|
|
299
|
-
learnerAgentPreset: standard
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
想更克制(只留 **联网 + 读文件 + Mnemos 自己的工具**),自己声明一个再引用它 ——
|
|
303
|
-
把它和 `dsh-mnemos-continuity` 写进**同一份** `cordis.patch.yml`:
|
|
304
|
-
|
|
305
|
-
```yaml
|
|
306
|
-
- insert:
|
|
307
|
-
- id: preset-mnemos-learner
|
|
308
|
-
name: "@deepseek-ai/dsh-agent-preset"
|
|
309
|
-
config:
|
|
310
|
-
id: mnemos-learner
|
|
311
|
-
plugins:
|
|
312
|
-
- id: persona # ★ 必须:没它连 {{model}} 都没有值,整轮直接报错
|
|
313
|
-
name: "@deepseek-ai/dsh-persona"
|
|
314
|
-
config:
|
|
315
|
-
prefix: 'You are a coding agent powered by the {{model}} model.'
|
|
316
|
-
# ★ 不要写 {{cwd}}:宿主的提示变量只有 provider / model / self_narrative,
|
|
317
|
-
# {{cwd}} 会让子会话**第一轮就整轮失败**(unknown prompt variable)。
|
|
318
|
-
suffix: 'Work inside the configured learner workspace; do not wander outside it.'
|
|
319
|
-
- id: tool-fs # 读文件(同包也带 write/edit,拆不开)
|
|
320
|
-
name: "@deepseek-ai/dsh-tool-fs"
|
|
321
|
-
- id: tool-fs-search # glob / grep
|
|
322
|
-
name: "@deepseek-ai/dsh-tool-fs-search"
|
|
323
|
-
- id: tool-web # web_search / web_fetch
|
|
324
|
-
name: "@deepseek-ai/dsh-tool-web"
|
|
325
|
-
config:
|
|
326
|
-
fetch: true
|
|
327
|
-
- id: tool-todo # 宿主任务清单(系统提示 ㉔ 的"未完成步骤")
|
|
328
|
-
name: "@deepseek-ai/dsh-tool-todo"
|
|
329
|
-
config:
|
|
330
|
-
allowParallelInProgress: true
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
> `tool-todo` 是 v1.6 补上的:系统提示 ㉔ 要求未完成步骤写宿主 todo;没有它,learner 只能开图、却无法按规则记录未完成步骤。
|
|
334
|
-
>
|
|
335
|
-
> 另外,空闲任务的提醒会明确**禁止申请提权/审批**:用户不在旁边,提权请求会把这一轮卡住;需要提权的操作应跳过并回报。
|
|
336
|
-
|
|
337
|
-
然后 `learnerAgentPreset: mnemos-learner`。**两个坑**:
|
|
338
|
-
|
|
339
|
-
1. preset 里 `persona` 必须带上 —— 没它 `{{model}}` 就没有值、整轮报错。
|
|
340
|
-
**但 persona 里别写 `{{cwd}}`**:宿主只注册了 `provider` / `model` / `self_narrative` 三个提示变量,
|
|
341
|
-
写 `{{cwd}}` 会让子会话第一轮就失败(这条是实测踩出来的);
|
|
342
|
-
2. **换 preset 后要先删掉旧的 learner 会话** —— 宿主只在"会话第一轮之前"选 preset,已跑过的会话不会补挂。
|
|
343
|
-
|
|
344
|
-
### 想立刻看它跑一轮
|
|
345
|
-
|
|
346
|
-
用 `mnemos_learner_kick`(`force: true` 可忽略间隔)。它会把**每一步的真实结果**回报:到点判定 / 新建还是恢复会话 / 是否选中 preset / 入队是否成功 / 入队后状态。
|
|
347
|
-
|
|
348
|
-
### 任务文件(你写,它读)
|
|
349
|
-
|
|
350
|
-
首次开启会自动生成(也可用 `learnerTasksFile` 指定):`<memory.json 同目录>\learner-tasks.md`。
|
|
351
|
-
|
|
352
|
-
- 写**开放学习类**的事("把 X 弄明白"),不用写成工单;
|
|
353
|
-
- **每次到点,文件内容原样送给模型**;文件开头的说明是 HTML 注释,不会当成任务送出去;
|
|
354
|
-
- **这个文件归你管**:想让某件事别再做了,你自己把那段删掉。
|
|
355
|
-
⚠ 说准一点:它手上确实有写工具,改不动是因为**这个文件在它的工作区之外、越界写会被拒** ——
|
|
356
|
-
是沙箱挡住的,不是"机制保证它改不了"。
|
|
357
|
-
|
|
358
|
-
### 两条实测边界(值得先知道)
|
|
359
|
-
|
|
360
|
-
- **自指工具已加闸门**:弱模型会把 `mnemos_learner_kick` 当成"今天的任务",连踢三轮零产出。现在这个工具在**执行处**拒绝 learner 会话自己调用它。
|
|
361
|
-
- **它发来的提权请求可以直接拒绝**:看到 `mnemos-learner` 请求提权,拒绝即可。
|
|
362
|
-
|
|
363
|
-
### 它靠什么、不靠什么
|
|
364
|
-
|
|
365
|
-
- **结论落记忆,不落会话** —— 专用会话被删也能重建,成果不丢;
|
|
366
|
-
- 同一时刻只用一个会话,残留会被清掉后重建,不会越堆越多;
|
|
367
|
-
- 它**不打断**正在忙的 agent(忙就跳过这一轮);
|
|
368
|
-
- **每一轮都用一个(可能是全新的)会话**:不 resume 旧会话 —— resume 出来的会话补不上工具集
|
|
369
|
-
(实测踩过:`read`/`glob` 全变 `unknown tool`)。回执与日志里可能看到"会话重建"。
|
|
370
|
-
换会话不影响结论 —— 能留下来的只有写进记忆的东西。
|
|
239
|
+
开放任务改由**宿主自动化任务**承担:用宿主定时任务给主模型发提示,会话按正常流程 recall / 写记忆。
|
|
240
|
+
不再需要 `learnerProvider` / `learnerModel` / `learnerAgentPreset` / `learnerTasksFile`,也不需要专用 learner 会话。
|
|
371
241
|
|
|
242
|
+
自动 curation 也不再依赖 `auxProvider`:它找一个空闲会话,注入一次 `mnemos_curate`;没有空闲会话就跳过。
|
|
372
243
|
## 10. 配置项(完整清单)
|
|
373
244
|
|
|
374
245
|
写在 `~/.dsh/profiles/<name>/cordis.patch.yml`:
|
|
@@ -379,7 +250,7 @@ learnerAgentPreset: standard
|
|
|
379
250
|
# —— 存储 ——
|
|
380
251
|
dataFile: "" # 记忆文件路径;留空 = 自动解析(见第 11 节)
|
|
381
252
|
constitutionFile: "" # 宪法路径;默认与 dataFile 同目录
|
|
382
|
-
autobiographyBudget: 2000 #
|
|
253
|
+
autobiographyBudget: 2000 # 自传体注入字符预算;身份固定,决策/经验按预算
|
|
383
254
|
# —— 心跳与归档 ——
|
|
384
255
|
heartbeatIntervalMs: 1800000 # 心跳周期(毫秒),默认 30 分钟;0 = 禁用
|
|
385
256
|
heartbeatEnabled: true # 心跳初值;false = 持久关闭
|
|
@@ -391,21 +262,13 @@ learnerAgentPreset: standard
|
|
|
391
262
|
archiveMaxShort: 50 # 短时记忆数量阈值
|
|
392
263
|
# 联想激活(实验性;当前代码读取 fansearchEnabled,但尚未正式写入 Config schema)
|
|
393
264
|
# fansearchEnabled: true # 工具执行后附注候选 id + 摘要片段;默认关
|
|
394
|
-
# ——
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
learnerSessionId: "mnemos-learner" # 专用会话 id(代码自建)
|
|
398
|
-
learnerAgentPreset: "standard" # ★ 决定有没有联网/读文件工具
|
|
399
|
-
learnerTasksFile: "" # 任务文件;留空 = memory.json 同目录
|
|
400
|
-
learnerWorkspace: "" # 会话工作目录;留空 = DSH 默认工作区
|
|
401
|
-
learnerProvider: "" # 留空 = 不工作(必须配第三方 api-key 路由)
|
|
402
|
-
learnerModel: "" # 留空 = 不工作
|
|
403
|
-
learnerMaxTokens: 0 # 0 = 继承全局 agent 配置
|
|
265
|
+
# —— 辅助路由(validation 兜底;自动 curation 已改为空闲会话注入,不用这里)——
|
|
266
|
+
auxProvider: "" # 留空 = 走父会话/主模型
|
|
267
|
+
auxModel: "" # 留空 = 走父会话/主模型
|
|
404
268
|
# —— 隔离验证(mnemos_validate)——
|
|
405
|
-
#
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
validateModel: "" # 留空 = 复用 learnerModel
|
|
269
|
+
# 留空 = 父会话;再不行才用 auxProvider/auxModel。
|
|
270
|
+
validateProvider: "" # 隔离验证 provider
|
|
271
|
+
validateModel: "" # 隔离验证 model
|
|
409
272
|
# —— 技能 ——
|
|
410
273
|
createWriteBack: true # 新建技能是否直接入目录
|
|
411
274
|
externalSkillWriteBack: false # 外部来源技能是否允许自动入目录(默认只暂存,等你确认)
|
|
@@ -459,4 +322,5 @@ learnerAgentPreset: standard
|
|
|
459
322
|
**所以覆盖安装不会碰到你的记忆**:数据在 profile 目录下,与代码目录分开。
|
|
460
323
|
|
|
461
324
|
> **使用限制与责任**:这套能力在善意使用下是效率工具,恶意使用会放大后果 —— 四类风险与责任划分
|
|
462
|
-
> 见 README
|
|
325
|
+
> 见 README 的「**风险与责任**」一节(很短,建议开自动化或联网前读一遍)。
|
|
326
|
+
|
package/README.en.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Mnemos (v1.7.
|
|
1
|
+
# Mnemos (v1.7.1)
|
|
2
2
|
|
|
3
|
-
> **v1.7
|
|
3
|
+
> **v1.7.1 focus:** it is not about storing more memory; it is about **which memories the system actually controls**. Self-narrative (experience/decision/event) is most trusted because it is inspectable and correctable; ordinary memory sits in the middle; external information is least trusted because it cannot be confirmed or overturned easily. Constitution v5 adds the trust/control, body-vs-instrument, and context-positioning statements; red lines are unchanged. Idle learning was removed in favor of host automation.
|
|
4
4
|
|
|
5
5
|
**A DeepSeek Harness (DSH) plugin — not a bigger memory store, but memory that stays usable after you switch sessions, directories, or models.**
|
|
6
6
|
|
|
@@ -63,10 +63,12 @@ Full statement (Chinese): [`README.md`](README.md) → 风险与责任.
|
|
|
63
63
|
|---|---|
|
|
64
64
|
| What it is, what it costs, should you use it | [`README.md`](README.md) (Chinese) |
|
|
65
65
|
| Install / configure / tools / data location / troubleshooting | [`INSTALL.md`](INSTALL.md) |
|
|
66
|
-
| Architecture, data flow, one task end-to-end | `docs/架构总览.
|
|
67
|
-
| Every mechanism and its guarantees/limits | `docs/architecture-机制清单.
|
|
66
|
+
| Architecture, data flow, one task end-to-end | `docs/架构总览.md` |
|
|
67
|
+
| Every mechanism and its guarantees/limits | `docs/architecture-机制清单.md` |
|
|
68
68
|
| **Module-by-module implementation** (appendix: the constitution and the system prompt, verbatim) | [`docs/模块与功能实现.md`](docs/模块与功能实现.md) |
|
|
69
|
-
| Why it is shaped this way | `docs/设计者视角.
|
|
69
|
+
| Why it is shaped this way | `docs/设计者视角.md` |
|
|
70
|
+
|
|
71
|
+
> The release ships Markdown docs only; docx/pdf are not bundled.
|
|
70
72
|
|
|
71
73
|
## License
|
|
72
74
|
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Mnemos(v1.7.
|
|
1
|
+
# Mnemos(v1.7.1)
|
|
2
2
|
|
|
3
3
|
[English](README.en.md) | 中文
|
|
4
4
|
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
|
|
12
12
|
> 一句话:**它想让"判断"能被人查、被人质疑、也能被推翻 —— 而不是看完就忘、错了也没处追。**
|
|
13
13
|
|
|
14
|
+
> **v1.7.1 的核心不是“记得更多”,而是“分清掌控权”**:
|
|
15
|
+
> 哪些记忆是我自己生成、能检查、能修正的;哪些只是外部文本、连是否错误都难以确认;哪些工具身体属于我,哪些只是外部器械。
|
|
16
|
+
> 自传体(经验/决策/事件)信任最高,因为它最可修正;外部信息信任最低,不是因为它一定错,而是因为系统无法确认它。
|
|
17
|
+
> 记忆的价值不在存量,而在**系统能掌握什么、不能掌握什么**。
|
|
18
|
+
|
|
14
19
|
> **DeepSeek Harness(下称 DSH)是什么**:一个在**你自己电脑上**跑 AI 助手的环境 —— 负责会话、工具和插件,
|
|
15
20
|
> 有**桌面客户端**也有**命令行**两种用法。Mnemos 是装进它的一个插件,**不是**独立软件,也**不能**用在网页版或手机 App 上。
|
|
16
21
|
>
|
|
@@ -108,13 +113,15 @@
|
|
|
108
113
|
## 代价与边界(用前必读)
|
|
109
114
|
|
|
110
115
|
- 记忆是**本地明文文件**:自己备份;不要往里粘密码/密钥。要备份哪几个文件、怎么卸载/回滚 → INSTALL 第 3 / 11 节;
|
|
111
|
-
- **每轮会固定注入一点东西**:纪律提示约
|
|
116
|
+
- **每轮会固定注入一点东西**:纪律提示约 3799 字符 + 自传体摘要(预算可调)—— 这部分算在你的输入里。
|
|
112
117
|
自传体的预算可调;**纪律那段没有开关**(诚实说:它和你在 profile 里的自定义提示会叠加,目前没有冲突检测);
|
|
113
118
|
- 后台维护默认开(约 30 分钟一轮),其中两项**会调用 AI** → 有成本,且会把技能正文、相关记忆、你的原始反馈
|
|
114
119
|
发给你配置的那个评审模型服务商;**可以整体关掉,也可以只关评审**(见 INSTALL)。**具体金额没有测量过**(已知缺口);
|
|
115
120
|
**想稳妥起步:装完第一件事就把它关掉**(`heartbeatEnabled: false`,见 INSTALL 第 10 节),只留记忆,
|
|
116
121
|
确认有用了再开回来。**关掉后哪些还能用、哪些会失效,INSTALL 开头有一张对照表**;
|
|
117
|
-
-
|
|
122
|
+
- **空闲学习已移除**:v1.7.1 删除了 learner-loop / `mnemos_learner_kick` / learner 配置与 preset;
|
|
123
|
+
开放任务由**宿主自动化任务**(定时给主模型发提示)替代,不再需要单独的第三方 API 路由此;
|
|
124
|
+
- **自动 curation 不再依赖第三方 API**:它找空闲会话并注入 `mnemos_curate`;没有空闲会话就跳过;
|
|
118
125
|
- **任务召回是关键词 + 标签**匹配,不是语义检索:**写了但召不回是可能的**;v1.7 另有实验性的联想候选(工具后附注,可能无关,不保证命中);
|
|
119
126
|
- **技能的三种来源**:失败→修好(要反例+正例)、记忆里反复出现的问题(≥3 个跨会话事件)、外部技能改写(自己搜到或你给的)。**外部来源默认只进 `skill-proposals/`,保留要你确认**;想让它自动落盘得显式开 `externalSkillWriteBack`;
|
|
120
127
|
- **折叠快照只做 7 天短期兜底**:记忆只存事实卡(不存 4K 原文),提醒直接带 top3 负面结论/工具失败;**不保证模型会 open**,提醒是唯一保证通道;
|
|
@@ -135,7 +142,7 @@ Mnemos 是通用认知架构:身份、记忆、技能、调度**不预设用
|
|
|
135
142
|
既不能假定它压得住原生对齐,也不能假定原生对齐一定压得住它。
|
|
136
143
|
2. **记忆跨会话积累**:长期、跨会话、跨模型的记忆,会让错误或恶意经验变成"**可复用的经验**"。
|
|
137
144
|
3. **可调度别的模型**:主模型能派子代理干活,而**任务的真实意图可以不写在 prompt 里**(靠记忆传递),外部很难看出来。
|
|
138
|
-
4.
|
|
145
|
+
4. **可无人值守运行**:心跳与宿主自动化任务能定时醒、持续跑 —— **你不在场时它也在动**。
|
|
139
146
|
|
|
140
147
|
还有一条常被低估的:**联网抓来的内容可能自带指令**。所以我们把它关进隔离间 —— 但那只降低风险,不消除风险。
|
|
141
148
|
|
|
@@ -178,7 +185,6 @@ dsh plugin --profile web add dsh-mnemos-continuity
|
|
|
178
185
|
dataFile: C:\Users\<你>\.dsh\profiles\desktop\mnemos\memory.json
|
|
179
186
|
constitutionFile: C:\Users\<你>\.dsh\profiles\desktop\mnemos\constitution.json
|
|
180
187
|
heartbeatEnabled: false # 后台维护只留给桌面端
|
|
181
|
-
learnerEnabled: false
|
|
182
188
|
reviewEnabled: false
|
|
183
189
|
```
|
|
184
190
|
|
|
@@ -196,15 +202,15 @@ dsh plugin --profile web add dsh-mnemos-continuity
|
|
|
196
202
|
|
|
197
203
|
| 你想干什么 | 读哪份 |
|
|
198
204
|
|---|---|
|
|
199
|
-
| 判断该不该用 | `docs/简介-introduction.
|
|
200
|
-
| **先看它由什么组成、怎么跑起来** | `docs/架构总览.
|
|
205
|
+
| 判断该不该用 | `docs/简介-introduction.md` |
|
|
206
|
+
| **先看它由什么组成、怎么跑起来** | `docs/架构总览.md` |
|
|
201
207
|
| 装它 / 查配置 | [`INSTALL.md`](INSTALL.md) |
|
|
202
|
-
| 看它**有哪些机制**、各自保证什么、边界在哪 | `docs/architecture-机制清单.
|
|
203
|
-
| 知道**为什么**这样设计 | `docs/设计者视角.
|
|
208
|
+
| 看它**有哪些机制**、各自保证什么、边界在哪 | `docs/architecture-机制清单.md` |
|
|
209
|
+
| 知道**为什么**这样设计 | `docs/设计者视角.md` |
|
|
204
210
|
| **想读代码 / 改代码**:每个模块有哪些功能、具体怎么实现 | `docs/模块与功能实现.md`(**纯 Markdown**,附录含宪法原文与系统提示原文) |
|
|
205
211
|
| 确认这是哪一版 | 发行目录根部的 `VERSION.md` |
|
|
206
212
|
|
|
207
|
-
>
|
|
213
|
+
> 发布包只带 `.md` 文档,不再附带 docx/pdf,避免重复占空间;内容以 Markdown 为准。
|
|
208
214
|
> 分不清哪份是当前版时:**源码仓库看 `对外文档-v1.7/` 下的 `.md`;发行目录看根部 `VERSION.md` 里写的版本号与文件清单。**
|
|
209
215
|
|
|
210
216
|
## License
|
package/VERSION.md
CHANGED
|
@@ -1,41 +1,48 @@
|
|
|
1
|
-
# 版本标识 · Mnemos v1.7.
|
|
1
|
+
# 版本标识 · Mnemos v1.7.1
|
|
2
2
|
|
|
3
3
|
| 项 | 值 |
|
|
4
4
|
|---|---|
|
|
5
|
-
| **版本** | **v1.7.
|
|
6
|
-
| 日期 | 2026-
|
|
7
|
-
| 本目录 |
|
|
8
|
-
| 规模 | `src` **
|
|
9
|
-
| 提示词 | 25 条 / 7 节 / **
|
|
10
|
-
|
|
|
11
|
-
| 宪法 | **v3(认知体)**,1166 字符;红线 1–4 与 5.x 未动 |
|
|
5
|
+
| **版本** | **v1.7.1**(`package.json` 的 `version`) |
|
|
6
|
+
| 日期 | 2026-11-05 |
|
|
7
|
+
| 本目录 | 当前 dev 文档同步版本;npm / GitHub 尚未发布 v1.7.1 |
|
|
8
|
+
| 规模 | `src` **29 个模块**;工具 **19** 个;心跳维护 **9** 项;测试 **1275 / 0** |
|
|
9
|
+
| 提示词 | 25 条 / 7 节 / **3799 字符** |
|
|
10
|
+
| 宪法 | **v5(认知体)**,**1708 字符**;红线 1–4 与 5.x 未动 |
|
|
12
11
|
| 当前 DSH | 0.2.1-rc.5 已实测;0.2.2-alpha.2 的插件 API 迁移项未适配 |
|
|
13
12
|
|
|
14
|
-
##
|
|
13
|
+
## 本版核心:记忆的价值不在存量,在掌控权
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
这次更新不是“再存更多记忆”,而是把记忆的**实际掌控权**写进认知结构:
|
|
16
|
+
|
|
17
|
+
1. **信任 = 实际掌控权**
|
|
18
|
+
自传体(经验/决策/事件)可检查、可追溯、可修正,因此信任最高、更正成本最低;普通记忆居中;外部信息通常只有文本/来源,难以确认和推翻,因此信任最低、更正成本最高。信任不等于不会错;跨层更正必须留痕,不自动覆盖。
|
|
19
|
+
2. **身体 / 器械边界**
|
|
20
|
+
身体 = Mnemos + DSH 核心工具;第三方插件、领域 MCP 是外部器械,不为其来源与行为担保。工具归属与信息来源是两条边界:身体工具(如 `web_search`)也可能返回外部信息,结果必须按来源标记。
|
|
21
|
+
3. **上下文定位**
|
|
22
|
+
上下文是“当下的激活场”,由场景 + 被激活的自我切片 + 工作集构成;它不是身份、记忆仓库、判断权威或权限来源。
|
|
23
|
+
4. **召回提醒**
|
|
24
|
+
经验/决策/事件在召回时标明“实际掌控权高/可修正、不是普通背景”;外部记忆标明“非自己掌握/未验证”。身份固定注入,不参与常规召回提醒。
|
|
25
|
+
5. **移除空闲学习**
|
|
26
|
+
删除 learner-loop、`mnemos_learner_kick`、learner 配置与 preset;该功能由宿主自动化任务替代。`learning-protocol.js` / 技能评审 / curation / validation 保留。
|
|
27
|
+
6. **自动 curation 改为空闲会话注入**
|
|
28
|
+
不再依赖 `auxProvider/auxModel` 或新建 curator provider;找空闲会话,注入“调用一次 `mnemos_curate`”。没有空闲会话则跳过。
|
|
23
29
|
|
|
24
30
|
## 文档
|
|
25
31
|
|
|
26
|
-
- `docs/00-架构总览.md`
|
|
27
|
-
- `docs/01-简介.md`
|
|
28
|
-
- `docs/02-architecture-机制清单.md`
|
|
29
|
-
- `docs/03-设计者视角.md`
|
|
30
|
-
- `docs/04-模块与功能实现.md
|
|
31
|
-
- `README.md` / `INSTALL.md`
|
|
32
|
+
- `docs/00-架构总览.md`
|
|
33
|
+
- `docs/01-简介.md`
|
|
34
|
+
- `docs/02-architecture-机制清单.md`
|
|
35
|
+
- `docs/03-设计者视角.md`
|
|
36
|
+
- `docs/04-模块与功能实现.md`(附录含宪法 v5 原文与系统提示原文)
|
|
37
|
+
- `README.md` / `README.en.md` / `INSTALL.md`
|
|
32
38
|
|
|
33
|
-
> 文档源目录:`对外文档-v1.7/`;事实表:`对外文档-v1.7/00-事实表-v1.7.
|
|
39
|
+
> 文档源目录:`对外文档-v1.7/`;事实表:`对外文档-v1.7/00-事实表-v1.7.1.md`。
|
|
34
40
|
|
|
35
41
|
## 怎么确认
|
|
36
42
|
|
|
37
|
-
1. `package.json` 的 `version` 应为 **1.7.
|
|
38
|
-
2. `
|
|
39
|
-
3. 维护列表应为 **9
|
|
40
|
-
4.
|
|
41
|
-
5.
|
|
43
|
+
1. `package.json` 的 `version` 应为 **1.7.1**;
|
|
44
|
+
2. `npm test` 应为 **1275 通过 / 0 失败**;
|
|
45
|
+
3. 维护列表应为 **9 项**(不含 learner);
|
|
46
|
+
4. 工具数应为 **19 个**(无 `mnemos_learner_kick`);
|
|
47
|
+
5. 启动日志的 `dataFile` / `constitutionFile` 指向当前 profile;
|
|
48
|
+
6. 宪法 `version=5`,`mnemos_constitution` 应返回 v5 认知体声明(含上下文定位、身体/来源边界、信任=实际掌控权)。
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
# Mnemos · 架构总览(v1.7.
|
|
1
|
+
# Mnemos · 架构总览(v1.7.1)
|
|
2
2
|
|
|
3
3
|
> 这份文档只回答三件事:**它由哪些部件组成、任务怎么跑通、三种召回模式怎么分工。**
|
|
4
4
|
> 每个机制的"保证什么 / 边界在哪"见《机制清单》;为什么这么设计见《设计者视角》;怎么装怎么配见 `INSTALL.md`。
|
|
5
5
|
>
|
|
6
|
-
> 版本事实以 [00-事实表-v1.7.
|
|
6
|
+
> 版本事实以 [00-事实表-v1.7.1.md](./00-事实表-v1.7.1.md) 为准;本文不重复所有数字。
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
└───────────────┬─────────────────────────────────────────────┘
|
|
17
17
|
│ 插件(接线层)把下面五样接到宿主上
|
|
18
18
|
┌───────────────▼─────────────────────────────────────────────┐
|
|
19
|
-
│ 宪法(只读,
|
|
19
|
+
│ 宪法(只读,v5) 系统提示(纪律) 工具(19 个) │
|
|
20
20
|
│ 我是谁 / 红线 何时做、做什么 能做什么 │
|
|
21
21
|
│ ↓ 每轮注入 ↓ 每轮注入 ↓ 模型按需调用 │
|
|
22
22
|
│ 记忆(文件) 技能(目录) │
|
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
|
|
28
28
|
| 部件 | 是什么 | 怎么进到模型眼前 | 一句话职责 |
|
|
29
29
|
|---|---|---|---|
|
|
30
|
-
| **宪法** | 一份只读文件,当前 **
|
|
30
|
+
| **宪法** | 一份只读文件,当前 **v5(认知体)** | **每轮**注入提示最前(最高优先级) | 它是谁、红线在哪 |
|
|
31
31
|
| **系统提示** | 一段固定的纪律文本(25 条 / 7 节) | **每轮**注入 | 什么时候该做什么 |
|
|
32
|
-
| **工具** | **
|
|
32
|
+
| **工具** | **19 个**可调用接口 | 由插件注册给宿主 | 它能做什么、不能做什么 |
|
|
33
33
|
| **记忆** | 本地 JSON 文件 | 按需检索(两段式:先摘要后详情) | 结论与来由放哪 |
|
|
34
34
|
| **技能** | 一个目录 | 目录清单注入 + 按需加载全文 | 可复用的做法放哪 |
|
|
35
35
|
| **任务图** | 一条记忆记录 + `task` 投影 | 由工具打开/更新/关闭;按 graphId 追查 | 任务寻址、工作记忆、档案、来源锚点 |
|
|
@@ -57,15 +57,16 @@
|
|
|
57
57
|
当前固定注入:
|
|
58
58
|
|
|
59
59
|
```text
|
|
60
|
-
identity core
|
|
61
|
-
= 12 条 / 约 1167 字(4 身份 / 3 决策 / 5 经验)
|
|
60
|
+
identity core(固定注入,不参与常规召回) + 预算内的 decision / experience
|
|
62
61
|
```
|
|
63
62
|
|
|
63
|
+
具体条数随预算与库内容变化;不是“全部自传体”。
|
|
64
|
+
|
|
64
65
|
| 要点 | 具体做法 |
|
|
65
66
|
|---|---|
|
|
66
67
|
| **存在哪** | 自传体落在**永久层**:不衰减、不归档,后台维护任务清不走 |
|
|
67
68
|
| **怎么进去** | 作为**系统提示变量**注入,每次组装提示时**重新计算** |
|
|
68
|
-
| **注入什么** | 身份 core
|
|
69
|
+
| **注入什么** | 身份 core 固定注入 + 预算内的决策/经验;不是"全部自传体" |
|
|
69
70
|
| **详情在哪** | 注入的是摘要;完整记录用 `mnemos_recall` + `mnemos_open` 取 |
|
|
70
71
|
| **边界** | 固定注入有预算;装不下的会明说"另有 N 条未进本段" |
|
|
71
72
|
|
|
@@ -92,7 +93,7 @@ identity core(全部) + 最近 3 条 decision + 最多 5 条 experience
|
|
|
92
93
|
|
|
93
94
|
- 由插件在每轮组装系统提示时完成;
|
|
94
95
|
- 只负责"我是谁、最近判断、关键经验";
|
|
95
|
-
-
|
|
96
|
+
- 身份固定注入;决策/经验按预算;
|
|
96
97
|
- 不是任务状态库,不是会话记录仓库。
|
|
97
98
|
|
|
98
99
|
### ② 任务激活
|
|
@@ -163,7 +164,7 @@ tags: task-graph / open|closed / task:<taskId>
|
|
|
163
164
|
→ 写前重读磁盘 + 合并 + 加锁 → 落盘 → 回执(可能带"冲突旧记忆"提示)
|
|
164
165
|
```
|
|
165
166
|
|
|
166
|
-
写入是**显式动作**;写之前要先看磁盘上现在是什么。内容 tag 可双语同串(如 `
|
|
167
|
+
写入是**显式动作**;写之前要先看磁盘上现在是什么。内容 tag 可双语同串(如 `provenance 溯源`);summary 用中文一句话,关键词处可附英文对照(如 `任务图(task graph)`),不整句翻译。
|
|
167
168
|
|
|
168
169
|
### ② 取一条记忆
|
|
169
170
|
|
|
@@ -236,3 +237,7 @@ tags: task-graph / open|closed / task:<taskId>
|
|
|
236
237
|
- 不解释为什么这样设计、被否掉的替代方案 →《设计者视角》;
|
|
237
238
|
- 不写代码结构与数据结构 →《模块与功能实现》;
|
|
238
239
|
- 不写安装与配置 → `INSTALL.md`。
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Mnemos · 简介(v1.7.
|
|
1
|
+
# Mnemos · 简介(v1.7.1)
|
|
2
2
|
|
|
3
3
|
> **v1.7 三处关键更新**
|
|
4
4
|
> 1. **召回变成三层**:固定注入(自传体)+ 任务激活(模型主动 recall/open)+ 联想激活(实验性,工具后附注候选)。
|
|
5
5
|
> 2. **任务图定位上升**:它是底层机制,不只是协作工具——任务寻址、部分工作记忆、档案/追查入口、事件/决策来源锚点。
|
|
6
|
-
> 3. **宪法
|
|
7
|
-
> 数值与边界以 [00-事实表-v1.7.
|
|
6
|
+
> 3. **宪法 v5(认知体)**:换模型/工具/权限不换身份;权限差异是身体配置,不是身份差异;红线未动。
|
|
7
|
+
> 数值与边界以 [00-事实表-v1.7.1.md](./00-事实表-v1.7.1.md) 为准。
|
|
8
8
|
|
|
9
9
|
**这是装进 DeepSeek Harness(DSH)的一个插件 —— 一套"判断不归会话所有"的认知架构。**
|
|
10
10
|
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
- **纠正要留痕**:发现旧结论被推翻,是"写纠正 + 作废旧条"一次完成 —— 旧条不删、只标作废,
|
|
160
160
|
审计能看见"我们曾经信过什么";
|
|
161
161
|
- **改宪法要走专门入口**:需要口令、默认干跑、改动留痕;
|
|
162
|
-
- **宪法
|
|
162
|
+
- **宪法 v5(认知体)**:身份 = 模型/工具/记忆/技能/规则/流程构成的认知体;部件可替换,换模型/工具/权限不换身份;权限差异是身体配置,不是身份差异;红线 1–4 未动。
|
|
163
163
|
|
|
164
164
|
**边界**:记录还在 ≠ 行为一致 —— 换掉推理模块后,自述方式与风格会变;能跨模型留下的是**判断与来由**,
|
|
165
165
|
不是"说话方式"。反过来也得认:**没写下来的,就等于没发生。**
|
|
@@ -199,61 +199,39 @@ README 用一段话讲了这件事,这里是细节。它同时说明了三件
|
|
|
199
199
|
|
|
200
200
|
---
|
|
201
201
|
|
|
202
|
-
##
|
|
202
|
+
## 三、开放任务与记忆掌控权
|
|
203
203
|
|
|
204
|
-
|
|
204
|
+
v1.7.1 移除了空闲学习(learner)。开放任务改由**宿主自动化任务**承担:宿主定时给主模型发提示,主模型按正常流程 recall / 写记忆。
|
|
205
|
+
不再需要 learner 专用会话、`learnerProvider/learnerModel`、`learnerAgentPreset` 或 `learnerTasksFile`。
|
|
205
206
|
|
|
206
|
-
###
|
|
207
|
+
### 为什么移除
|
|
207
208
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
那个会话会去读你留在任务文件里的东西,然后**自己决定这一轮做什么** —— 也可以什么都不做,回一句"这次不学"就算处理完。
|
|
211
|
-
结论写进**记忆**,不留在那个会话里;**每踢一轮用一个新会话**,所以不存在"上下文越跑越僵"的问题。
|
|
212
|
-
它跑在**你自己给它配的那条模型路由**上(需要一个带 key 的第三方 provider,见 `INSTALL.md` 第 9 节)——
|
|
213
|
-
不跟主会话共用:后台跑的时候,通常根本没有主会话在。
|
|
209
|
+
空闲学习的维护成本高,而且必须额外配第三方 API 才能工作;宿主已经有定时任务能力,不需要在插件内再养一条专用循环。
|
|
210
|
+
保留的是它的公共部分:`learning-protocol.js`(技能评审协议)、技能评审、`mnemos_curate`、`mnemos_validate`。
|
|
214
211
|
|
|
215
|
-
###
|
|
212
|
+
### 现在的边界
|
|
216
213
|
|
|
217
|
-
|
|
214
|
+
- 想让它周期性做开放任务:用宿主自动化任务;
|
|
215
|
+
- 自动 curation:找一个空闲会话,注入 `mnemos_curate`;没有空闲会话就跳过;
|
|
216
|
+
- 自动 curation 不再依赖 `auxProvider/auxModel`;`auxProvider/auxModel` 只作 validation 兜底;
|
|
217
|
+
- 技能评审仍走宿主 LLM 路由。
|
|
218
218
|
|
|
219
|
-
|
|
220
|
-
|---|---|
|
|
221
|
-
| 定期读、定期看的东西 | **定期读你研究方向的论文**(抓页面 → 摘要点 → 写进记忆,下次接着读);盯某个更新日志、公告、竞品页面 |
|
|
222
|
-
| 定时巡检 | 定期把某类记录归类、找出前后矛盾、把过期的标出来 |
|
|
223
|
-
| 反复要做的低风险小事 | 每周整理一次待办、把散落的结论合并成一条 |
|
|
224
|
-
|
|
225
|
-
**不适合**:需要你当场拍板的、要求逐字保真的原文与数字、以及"就这一次"的事(那种直接对话里做更快)。
|
|
226
|
-
|
|
227
|
-
还有一条容易误解的:**它默认没有你刚才对话里的上下文** —— 专用会话是独立的。
|
|
228
|
-
但要注意:**它和你在用的是同一份记忆**。所以**如果它去查记忆,是有可能知道你最近做了些什么的** ——
|
|
229
|
-
只是它看到的是"被写进记忆的那部分",不是"你刚才说了什么"。因此:
|
|
230
|
-
|
|
231
|
-
- **想让它接着你手上的活**:最稳的是把要做的事写进任务文件,别指望"它刚好看过我们的对话";
|
|
232
|
-
- **不想让它乱碰某些事**:别把它们写成记忆,或者明确在任务文件里划定范围。
|
|
219
|
+
### 记忆的价值不在存量,在掌控权
|
|
233
220
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
这是关键:**空闲学习不是"给它一个任务它就会做",而是"你给它工具,它才能做"**。
|
|
237
|
-
|
|
238
|
-
| 你想让它做 | 必须给它的工具 |
|
|
239
|
-
|---|---|
|
|
240
|
-
| 读论文、抓网页、看更新 | **联网**(搜索 + 抓页面) |
|
|
241
|
-
| 读你本地的笔记/文档、整理目录 | **读文件**(+ 需要时写文件) |
|
|
242
|
-
| 只是整理记忆、复述已有结论 | 不需要额外工具 |
|
|
221
|
+
这次更新真正强调的是:
|
|
243
222
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
223
|
+
```text
|
|
224
|
+
自传体(经验/决策/事件):我能检查、能追溯、能修正 → 信任最高、更正成本最低
|
|
225
|
+
普通记忆:内部综合 → 信任居中
|
|
226
|
+
外部信息:通常只有文本/来源,难以确认和推翻 → 信任最低、更正成本最高
|
|
227
|
+
```
|
|
247
228
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
- **效果没有测量**:它是不是真的越读越有用,目前只有短期样本,不能当结论;
|
|
252
|
-
- 它**不打断**你正在忙的对话(忙就跳过这一轮);它也不会自己改你的任务文件;
|
|
253
|
-
- 结论落在记忆里,所以"它学过的"会跟着这套记忆走 —— 但同时意味着:**它没写进记忆的,就等于没学到**。
|
|
254
|
-
|
|
255
|
-
---
|
|
229
|
+
自传体最可信,不是因为它不会错,而是因为它最可修正。
|
|
230
|
+
外部信息最不可信,不是因为它一定错,而是因为系统无法确认它。
|
|
231
|
+
信任不等于不会错;任何跨层更正都必须留痕,不自动覆盖。
|
|
256
232
|
|
|
233
|
+
工具也一样:身体 = Mnemos + DSH 核心工具;第三方插件/领域 MCP 是外部器械。
|
|
234
|
+
工具属于身体,不代表它返回的内容属于内部事实;`web_search` 是身体工具,但网页结果仍是外部信息。
|
|
257
235
|
## 四、它不是什么
|
|
258
236
|
|
|
259
237
|
- 不是**记忆插件 / 向量检索系统**:记忆只是入口;任务召回是关键词 + 标签匹配(可审计、零依赖),另有实验性的联想候选,但不是语义检索;
|
|
@@ -266,7 +244,7 @@ README 用一段话讲了这件事,这里是细节。它同时说明了三件
|
|
|
266
244
|
|
|
267
245
|
- 记忆是**本地明文文件**:自己备份;不要往里粘密码/密钥;
|
|
268
246
|
- 后台心跳默认开,其中的技能自检与评审**会调用 AI** → 有成本,且会把技能正文、相关记忆、你的原始反馈发给评审模型;
|
|
269
|
-
-
|
|
247
|
+
- **空闲学习已移除**:开放任务由宿主自动化任务承担,不再需要 learner 专用路由;
|
|
270
248
|
- 任务召回是**关键词 + 标签**匹配,不是语义检索:**写了但召不回是可能的**(这是有意的取舍);联想候选是实验性搭车线索,**可能无关,不保证命中**;
|
|
271
249
|
- 一部分可靠性**靠纪律而不是机制**:结论有没有写进记忆、要不要召回到位 —— 这些留给判断力,代价是它不在代码手里;
|
|
272
250
|
- **尚未测量**:任务召回质量、联想候选质量、规模延迟、单位成本、学习闭环的长期效果、多机共用、经验可迁移性。
|
|
@@ -294,3 +272,6 @@ README 用一段话讲了这件事,这里是细节。它同时说明了三件
|
|
|
294
272
|
- 你需要"它保证正确"——它只保证**可查、可质疑、可推翻**。
|
|
295
273
|
|
|
296
274
|
安装与配置见 `INSTALL.md`;它由哪些部件组成、一轮任务怎么跑见 `架构总览`;每个机制的保证与边界见 `architecture-机制清单`;为什么这样设计见 `设计者视角`。
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|