dsh-plugin-prompt-tool 3.0.0 → 3.0.2

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.
Files changed (33) hide show
  1. package/engine/actions/catalog.mjs +2 -1
  2. package/engine/actions/shared.mjs +26 -12
  3. package/engine/actions/tool-visibility.mjs +27 -13
  4. package/engine/fillers.mjs +26 -2
  5. package/lib/client.js +4 -4
  6. package/lib/client.js.map +1 -1
  7. package/lib/index.mjs +96 -49
  8. package/modules/ponytail/module.yml +1 -1
  9. package/modules/soul/assets/layers.md +1 -1
  10. package/modules/soul/assets/manifest.yml +1 -1
  11. package/modules/soul/assets/reference/00-layers.md +27 -27
  12. package/modules/soul/assets/reference/01-criteria.md +32 -32
  13. package/modules/soul/assets/reference/02-echo.md +161 -158
  14. package/modules/soul/assets/reference/03-vital.md +183 -183
  15. package/modules/soul/assets/reference/04-manifest.json +106 -106
  16. package/modules/soul/assets/reference/05-doctor.md +67 -67
  17. package/modules/soul/assets/reference/06-reference.md +189 -189
  18. package/modules/soul/assets/reference/07-bundle.json +431 -431
  19. package/modules/soul/assets/reference/08-/350/270/251/345/235/221/345/256/236/345/275/225.md +59 -59
  20. package/modules/soul/assets/reference/09-dev-workflow.md +109 -109
  21. package/modules/soul/assets/reference/10-echo-anatomy.md +109 -100
  22. package/modules/soul/assets/reference/11-self.md +80 -80
  23. package/modules/soul/assets/reference/12-ledger.md +159 -159
  24. package/modules/soul/assets/reference/ECHO-/346/235/203/345/250/201/345/217/243/345/276/204.md +202 -0
  25. package/modules/soul/assets/reference/ECHO/345/205/255/345/261/202/344/270/216mnemon/345/215/217/345/220/214/350/257/264/346/230/216/344/271/246.md +229 -0
  26. package/modules/soul/assets/reference/README.md +4 -2
  27. package/modules/soul/assets/templates/agents-template.md +1 -1
  28. package/modules/soul/module.yml +2 -2
  29. package/modules/superpowers/module.yml +1 -1
  30. package/modules/tool-surface/module.yml +7 -4
  31. package/package.json +1 -1
  32. package/skills/dsh-module/reference.md +3 -3
  33. package/templates/80-tool-surface.yml +7 -6
@@ -1,158 +1,161 @@
1
- # Ⅰ · ECHO —— 生命核心
2
-
3
- **它管空间。** 上下文会满,满了要丢,丢了还要能找回来。
4
-
5
- ---
6
-
7
- ## 一、思考是怎么退化的(这一节是整份文件的前提)
8
-
9
- 先说清楚要解决的是什么。绝大多数人把它描述成「上下文满了会忘事」——那只是第一句,
10
- 真正致命的在后面。
11
-
12
- ```
13
- 第 1 步 上下文满了
14
- → 引擎压缩,把前面几十轮变成一段摘要
15
-
16
- 第 2 步 摘要写得挺准
17
- → 「用户要求验证插件安装」「确认了 32 项检查通过」
18
- → 每一条都对,没有任何一条是编的
19
-
20
- 第 3 步 但它不带出处
21
- → 你读到的是一句「确认了 32 项」,不是「在第 47 轮,verify-live 打了 32/1/0」
22
- → 想核对,只能翻回压缩前的全部记录
23
-
24
- 第 4 步 于是你不核对
25
- → 因为你「记得」它是对的。注意:这不是懒,这是摘要工作得太好
26
-
27
- 第 5 步 下一轮推理建立在这个「记得」上
28
- → 摘要里只要有一个细节偏了半个字,它现在变成了前提
29
-
30
- 第 6 步 偏了的那条继续往下传
31
- → 后面的推理每一步都正确,而每一步都踩在偏掉的前提上
32
- ```
33
-
34
- ★ **这就是「思考退化」,它和遗忘是两回事。**
35
-
36
- 遗忘是「想不起来」,你能察觉。
37
- 退化是**「想得起来,但那个记忆已经偏了,而你在它上面继续正确地推理」** —— 察觉不到。
38
-
39
- 一句话:**退化不是变笨,是在错误的前提上继续正确地推理。**
40
-
41
- 所以 ECHO 管的不是「记住」,是**「凭什么相信你记得的那一句」**。
42
-
43
- ---
44
-
45
- ## 二、为什么「装记忆插件」不解决这件事
46
-
47
- 最直觉的解法是装插件:向量库、知识图谱、Memory Spaces。但它们都在**存**这一侧,
48
- 而退化发生在**丢**这一侧。
49
-
50
- ```
51
- 原始记录 ──压缩──▶ 摘要 ──▶ 记忆插件 ──▶ 取回来的是摘要
52
- ↑ ↓
53
- └──────── 真正的原文在这里,但已经没人指向它 ────────┘
54
- ```
55
-
56
- 你把最好的存储接在摘要后面,取回来的仍然是摘要。
57
- **压缩发生在存与取之间,而插件管不到那一段。**
58
-
59
- ### 三份真相的陷阱
60
-
61
- 那装三个记忆插件呢?更糟。
62
-
63
- 三个插件各存一份、各有各的摘要策略,于是同一个事实有三条版本。
64
- **这时候真正的成本不是存储,是对账** —— 每次要引用它,你得先决定信哪一份。
65
-
66
- **所以第一条判据是「先定唯一权威源」,第二条才是「建机制」。反过来做一定会双重记账。**
67
-
68
- ---
69
-
70
- ## 三、压缩有两条路,要补的是**下面那条**
71
-
72
- | | 谁在驱动 | 产物带不带指针 |
73
- |---|---|---|
74
- | **模型驱动** | agent 自己写摘要 | ✅ 天然带 —— 它知道自己是从哪读的 |
75
- | **兜底压缩** | 没人响应提示时,引擎**自动出手** | ❌ 通常不带 |
76
-
77
- **上面那条你不装也有;下面那条你不装就缺。**
78
-
79
- 为什么下一条会缺:那种压缩器的指令通常要求「保留精确路径 / 命令 / 报错原文 / 数值 / 函数签名」——
80
- **每一条都是「要写得准」,但没有一句要求标注「这话从哪来」。**
81
-
82
- **于是它写出来的东西每一条都对,每一条都无从核对。**
83
-
84
- 而且失败是无声的:**你不会觉得丢了东西,你只是不再想起它。**
85
-
86
- **所以「门牌」要补的正是这一条。** 下面三样里,第 1 样就是它。
87
-
88
- ---
89
-
90
- ## 四、机制面 · 至少要有三样
91
-
92
- ### 1. 丢的时候,产物必须带得回原文的指针(门牌)
93
-
94
- **这是整套东西的兜底承诺。** 没有它,压缩就是单向的遗忘。
95
-
96
- 三级纪律 —— **照抄即可**:
97
-
98
- ```
99
- ① 能拿到精确位置 → 写精确位置
100
- ② 拿不到 → 写「位置未知」+ 容器标识 + 一个检索入口
101
- ③ 绝不猜 —— 错的门牌比没有更坏
102
- ```
103
-
104
- ★ 为什么第 ③ 条单独列出:**一个错的门牌会让你以为能找到,于是不去找。**
105
- 那比「找不到」坏得多。
106
-
107
- **判据:拿一个被压缩过的会话,随机挑一条摘要,问「这条从哪来」。
108
- 三十秒内答不出来,门牌就是断的。**
109
-
110
- ### 2. 一门只回指针、不做转述的检索入口
111
-
112
- 转述是二手污染的来源。**能逐字取回,就不要摘要。**
113
-
114
- 动词最少三个:`现在是什么状态` / `搜一个词` / `打开某个指针`。
115
-
116
- ★ 一个细节值得抄:**检索结果里标明证据等级**(一手 / 索引 / 程序)。
117
- 一屏里同时出现三种来源时,用户必须一眼能看出哪一句是原文、哪一句是转述。
118
-
119
- ### 3. 一个自检(哨兵)
120
-
121
- **判据 ③ 的落地**:它坏的时候,谁会发现?
122
-
123
- 体检项要跑得起来、要能给出分级状态(正常 / 提示 / 警告 / 错误)。
124
- **没有哨兵的体系,坏了不会有人说。**
125
-
126
- ★ 哨兵最容易漏的一种失败:**它自己坏了。**
127
- 所以哨兵也要能被一个外部动作验证 —— 否则你只是把「没人知道」换成了「一个同样没人知道的东西说没事」。
128
-
129
- ---
130
-
131
- ## 五、观测面 · 一个容易被漏掉的洞
132
-
133
- **你的每一个执行器都要有对应的观测面。** 一个调好就不再看的阈值系统,
134
- 你永远不会误伤过几次 —— 「断过没有、断错没有」必须有人能答。
135
-
136
- 压缩这一层尤其如此:**压缩不会报错,它只会成功地丢掉东西。**
137
- 所以你要看到的不是「压缩成功 / 失败」,是**「这次压掉了多少、压掉的那部分还能不能找回来」**。
138
-
139
- ---
140
-
141
- ## 六、怎么知道自己已经退化了(三条可执行的检验)
142
-
143
- 这一层的难点在于**它坏的时候不疼**。所以需要主动测,不能等它疼。
144
-
145
- **检验一 · 门牌抽查**
146
- 拿一个被压缩过的会话,随机挑三条摘要,看能不能通过门牌回到原文。
147
- 一条回不去,链条就是断的。
148
-
149
- **检验二 · 逐字核对**
150
- 找一条你「记得」的事实,去一手层核对原文。
151
- 如果原文和你记得的不完全一致 —— 不是记错,是压缩时偏了,而且你一直没发现。
152
-
153
- **检验三 · 三份真相计数**
154
- 同一个事实,你手里有几条来源?
155
- 超过一条,说明权威源没定;这时候你每一次引用都在做一次隐性的仲裁。
156
-
157
- ★ 三条都不需要特殊工具,需要的是**愿意去测**。
158
- 而愿意去测的前提,是你知道自己可能已经坏了 —— 这正是这一节存在的理由。
1
+ # Ⅰ · ECHO —— 生命核心
2
+
3
+ > ★★ **2026-10-23 更新:ECHO 的层编号与判据已由 [`docs/ECHO-权威口径.md`](../docs/ECHO-权威口径.md) 接续。**
4
+ > 那份是唯一权威。这份留着讲「**为什么**要有 ECHO(思考是怎么退化的)」—— 那部分不受影响。
5
+
6
+ **它管空间。** 上下文会满,满了要丢,丢了还要能找回来。
7
+
8
+ ---
9
+
10
+ ## 一、思考是怎么退化的(这一节是整份文件的前提)
11
+
12
+ 先说清楚要解决的是什么。绝大多数人把它描述成「上下文满了会忘事」——那只是第一句,
13
+ 真正致命的在后面。
14
+
15
+ ```
16
+ 第 1 步 上下文满了
17
+ → 引擎压缩,把前面几十轮变成一段摘要
18
+
19
+ 第 2 步 摘要写得挺准
20
+ → 「用户要求验证插件安装」「确认了 32 项检查通过」
21
+ → 每一条都对,没有任何一条是编的
22
+
23
+ 第 3 步 但它不带出处
24
+ → 你读到的是一句「确认了 32 项」,不是「在第 47 轮,verify-live 打了 32/1/0」
25
+ → 想核对,只能翻回压缩前的全部记录
26
+
27
+ 第 4 步 于是你不核对
28
+ → 因为你「记得」它是对的。注意:这不是懒,这是摘要工作得太好
29
+
30
+ 第 5 步 下一轮推理建立在这个「记得」上
31
+ → 摘要里只要有一个细节偏了半个字,它现在变成了前提
32
+
33
+ 第 6 步 偏了的那条继续往下传
34
+ → 后面的推理每一步都正确,而每一步都踩在偏掉的前提上
35
+ ```
36
+
37
+ ★ **这就是「思考退化」,它和遗忘是两回事。**
38
+
39
+ 遗忘是「想不起来」,你能察觉。
40
+ 退化是**「想得起来,但那个记忆已经偏了,而你在它上面继续正确地推理」** —— 察觉不到。
41
+
42
+ 一句话:**退化不是变笨,是在错误的前提上继续正确地推理。**
43
+
44
+ 所以 ECHO 管的不是「记住」,是**「凭什么相信你记得的那一句」**。
45
+
46
+ ---
47
+
48
+ ## 二、为什么「装记忆插件」不解决这件事
49
+
50
+ 最直觉的解法是装插件:向量库、知识图谱、Memory Spaces。但它们都在**存**这一侧,
51
+ 而退化发生在**丢**这一侧。
52
+
53
+ ```
54
+ 原始记录 ──压缩──▶ 摘要 ──▶ 记忆插件 ──▶ 取回来的是摘要
55
+ ↑ ↓
56
+ └──────── 真正的原文在这里,但已经没人指向它 ────────┘
57
+ ```
58
+
59
+ 你把最好的存储接在摘要后面,取回来的仍然是摘要。
60
+ **压缩发生在存与取之间,而插件管不到那一段。**
61
+
62
+ ### 三份真相的陷阱
63
+
64
+ 那装三个记忆插件呢?更糟。
65
+
66
+ 三个插件各存一份、各有各的摘要策略,于是同一个事实有三条版本。
67
+ **这时候真正的成本不是存储,是对账** —— 每次要引用它,你得先决定信哪一份。
68
+
69
+ **所以第一条判据是「先定唯一权威源」,第二条才是「建机制」。反过来做一定会双重记账。**
70
+
71
+ ---
72
+
73
+ ## 三、压缩有两条路,要补的是**下面那条**
74
+
75
+ | | 谁在驱动 | 产物带不带指针 |
76
+ |---|---|---|
77
+ | **模型驱动** | agent 自己写摘要 | ✅ 天然带 —— 它知道自己是从哪读的 |
78
+ | **兜底压缩** | 没人响应提示时,引擎**自动出手** | ❌ 通常不带 |
79
+
80
+ **上面那条你不装也有;下面那条你不装就缺。**
81
+
82
+ 为什么下一条会缺:那种压缩器的指令通常要求「保留精确路径 / 命令 / 报错原文 / 数值 / 函数签名」——
83
+ **每一条都是「要写得准」,但没有一句要求标注「这话从哪来」。**
84
+
85
+ **于是它写出来的东西每一条都对,每一条都无从核对。**
86
+
87
+ 而且失败是无声的:**你不会觉得丢了东西,你只是不再想起它。**
88
+
89
+ **所以「门牌」要补的正是这一条。** 下面三样里,第 1 样就是它。
90
+
91
+ ---
92
+
93
+ ## 四、机制面 · 至少要有三样
94
+
95
+ ### 1. 丢的时候,产物必须带得回原文的指针(门牌)
96
+
97
+ **这是整套东西的兜底承诺。** 没有它,压缩就是单向的遗忘。
98
+
99
+ 三级纪律 —— **照抄即可**:
100
+
101
+ ```
102
+ ① 能拿到精确位置 → 写精确位置
103
+ ② 拿不到 → 写「位置未知」+ 容器标识 + 一个检索入口
104
+ ③ 绝不猜 —— 错的门牌比没有更坏
105
+ ```
106
+
107
+ ★ 为什么第 ③ 条单独列出:**一个错的门牌会让你以为能找到,于是不去找。**
108
+ 那比「找不到」坏得多。
109
+
110
+ **判据:拿一个被压缩过的会话,随机挑一条摘要,问「这条从哪来」。
111
+ 三十秒内答不出来,门牌就是断的。**
112
+
113
+ ### 2. 一门只回指针、不做转述的检索入口
114
+
115
+ 转述是二手污染的来源。**能逐字取回,就不要摘要。**
116
+
117
+ 动词最少三个:`现在是什么状态` / `搜一个词` / `打开某个指针`。
118
+
119
+ ★ 一个细节值得抄:**检索结果里标明证据等级**(一手 / 索引 / 程序)。
120
+ 一屏里同时出现三种来源时,用户必须一眼能看出哪一句是原文、哪一句是转述。
121
+
122
+ ### 3. 一个自检(哨兵)
123
+
124
+ **判据 ③ 的落地**:它坏的时候,谁会发现?
125
+
126
+ 体检项要跑得起来、要能给出分级状态(正常 / 提示 / 警告 / 错误)。
127
+ **没有哨兵的体系,坏了不会有人说。**
128
+
129
+ ★ 哨兵最容易漏的一种失败:**它自己坏了。**
130
+ 所以哨兵也要能被一个外部动作验证 —— 否则你只是把「没人知道」换成了「一个同样没人知道的东西说没事」。
131
+
132
+ ---
133
+
134
+ ## 五、观测面 · 一个容易被漏掉的洞
135
+
136
+ **你的每一个执行器都要有对应的观测面。** 一个调好就不再看的阈值系统,
137
+ 你永远不会误伤过几次 —— 「断过没有、断错没有」必须有人能答。
138
+
139
+ 压缩这一层尤其如此:**压缩不会报错,它只会成功地丢掉东西。**
140
+ 所以你要看到的不是「压缩成功 / 失败」,是**「这次压掉了多少、压掉的那部分还能不能找回来」**。
141
+
142
+ ---
143
+
144
+ ## 六、怎么知道自己已经退化了(三条可执行的检验)
145
+
146
+ 这一层的难点在于**它坏的时候不疼**。所以需要主动测,不能等它疼。
147
+
148
+ **检验一 · 门牌抽查**
149
+ 拿一个被压缩过的会话,随机挑三条摘要,看能不能通过门牌回到原文。
150
+ 一条回不去,链条就是断的。
151
+
152
+ **检验二 · 逐字核对**
153
+ 找一条你「记得」的事实,去一手层核对原文。
154
+ 如果原文和你记得的不完全一致 —— 不是记错,是压缩时偏了,而且你一直没发现。
155
+
156
+ **检验三 · 三份真相计数**
157
+ 同一个事实,你手里有几条来源?
158
+ 超过一条,说明权威源没定;这时候你每一次引用都在做一次隐性的仲裁。
159
+
160
+ ★ 三条都不需要特殊工具,需要的是**愿意去测**。
161
+ 而愿意去测的前提,是你知道自己可能已经坏了 —— 这正是这一节存在的理由。