@furongjun1999/dsh-memory 0.3.1 → 0.4.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 +39 -5
- package/docs/lingshu_tutorial.html +14956 -0
- package/docs//344/277/241/346/201/257/345/267/256/344/270/272/344/273/200/344/271/210/345/277/205/347/204/266/345/255/230/345/234/250/344/270/224/350/207/252/347/204/266/346/211/251/345/244/247.md +239 -0
- package/docs//346/231/272/350/203/275/347/232/204/345/205/254/347/220/206/345/214/226/345/237/272/347/237/263.md +789 -0
- package/docs//346/231/272/350/203/275/347/232/204/350/256/244/347/237/245/350/277/207/347/250/213.md +379 -0
- package/docs//347/231/275/347/256/261/346/231/272/350/203/275/346/230/257/344/273/200/344/271/210/357/274/237.md +812 -0
- package/package.json +1 -1
|
@@ -0,0 +1,812 @@
|
|
|
1
|
+
# 白箱智能是什么?
|
|
2
|
+
## ——让 AI 不只是给出答案,而是知道自己为什么能够回答
|
|
3
|
+
|
|
4
|
+
> 术语约定:本文的英文缩写均首次出现处给出中文全称与英文全称(见文末「术语表」)。
|
|
5
|
+
> 核心四态:ACCEPT(接受)/ REJECT(拒绝)/ DEFER(延后)/ BLINDSPOT(盲区)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 〇 先用一句话理解白箱智能
|
|
10
|
+
|
|
11
|
+
**白箱智能,是一种把“条件、知识、规则、执行和验证”显式组织起来的智能系统。**
|
|
12
|
+
|
|
13
|
+
它在面对一个问题时,不只是寻找“最像答案的东西”,而是依次判断:
|
|
14
|
+
|
|
15
|
+
> **我面对的是什么问题?
|
|
16
|
+
> 在什么条件下成立?
|
|
17
|
+
> 我有哪些知识和能力可以处理它?
|
|
18
|
+
> 如果条件不足怎么办?
|
|
19
|
+
> 如果结果错误,应该修改什么?**
|
|
20
|
+
|
|
21
|
+
因此,白箱智能最核心的能力可以概括成四个状态:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
条件满足
|
|
25
|
+
↓
|
|
26
|
+
ACCEPT —— 我有资格处理,执行
|
|
27
|
+
|
|
28
|
+
条件冲突
|
|
29
|
+
↓
|
|
30
|
+
REJECT —— 这个能力不适用,拒绝
|
|
31
|
+
|
|
32
|
+
条件不足
|
|
33
|
+
↓
|
|
34
|
+
DEFER —— 现在不能判断,继续寻找缺失条件
|
|
35
|
+
|
|
36
|
+
无法归属
|
|
37
|
+
↓
|
|
38
|
+
BLINDSPOT —— 我不知道,不强行猜测
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**“不知道”不是系统失败,而是系统对自己认知边界的正确判断。**
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# 一、为什么需要白箱智能?
|
|
46
|
+
|
|
47
|
+
今天的人工智能(AI · Artificial Intelligence)已经可以完成大量令人惊叹的工作:
|
|
48
|
+
|
|
49
|
+
- 回答问题
|
|
50
|
+
- 写代码
|
|
51
|
+
- 总结资料
|
|
52
|
+
- 进行推理
|
|
53
|
+
- 使用工具
|
|
54
|
+
- 生成图片和文本
|
|
55
|
+
|
|
56
|
+
但当我们继续追问:
|
|
57
|
+
|
|
58
|
+
> **“你为什么这么回答?”**
|
|
59
|
+
|
|
60
|
+
问题就开始变得复杂。
|
|
61
|
+
|
|
62
|
+
假设问 AI:
|
|
63
|
+
|
|
64
|
+
> **水在海拔 3000 米的地方,沸点还是 100°C 吗?**
|
|
65
|
+
|
|
66
|
+
一个普通系统可能直接回答:
|
|
67
|
+
|
|
68
|
+
> “不是。由于海拔升高,大气压降低,水的沸点会下降。”
|
|
69
|
+
|
|
70
|
+
这个答案可能是正确的。
|
|
71
|
+
|
|
72
|
+
但是白箱会继续追问:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
海拔升高
|
|
76
|
+
↓
|
|
77
|
+
大气压变化
|
|
78
|
+
↓
|
|
79
|
+
沸点变化
|
|
80
|
+
↓
|
|
81
|
+
具体知识单元
|
|
82
|
+
↓
|
|
83
|
+
适用条件
|
|
84
|
+
↓
|
|
85
|
+
验证
|
|
86
|
+
↓
|
|
87
|
+
结论
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
于是答案不再只是:
|
|
91
|
+
|
|
92
|
+
> “因为这是常识。”
|
|
93
|
+
|
|
94
|
+
而可以进一步回答:
|
|
95
|
+
|
|
96
|
+
> **哪条知识支持这个结论?
|
|
97
|
+
> 这条知识在什么条件下成立?
|
|
98
|
+
> 中间经过了哪些推导?
|
|
99
|
+
> 如果发现结果不符合观测,应该检查哪一个条件?**
|
|
100
|
+
|
|
101
|
+
这就是白箱智能关注的问题。
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
# 二、白箱智能并不是“不要 AI”
|
|
106
|
+
|
|
107
|
+
这是一个非常重要的区别。
|
|
108
|
+
|
|
109
|
+
**白箱不是要消灭大语言模型(LLM · Large Language Model,下称 LLM),而是重新安排大语言模型在智能系统中的位置。**
|
|
110
|
+
|
|
111
|
+
可以把两者简单理解成:
|
|
112
|
+
|
|
113
|
+
```text
|
|
114
|
+
LLM
|
|
115
|
+
↓
|
|
116
|
+
提出假设 / 生成候选 / 处理开放性问题
|
|
117
|
+
↓
|
|
118
|
+
白箱
|
|
119
|
+
↓
|
|
120
|
+
识别条件
|
|
121
|
+
↓
|
|
122
|
+
查找知识
|
|
123
|
+
↓
|
|
124
|
+
验证条件
|
|
125
|
+
↓
|
|
126
|
+
执行规则
|
|
127
|
+
↓
|
|
128
|
+
接受 / 拒绝 / 继续分析
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
因此:
|
|
132
|
+
|
|
133
|
+
> **LLM 可以负责“提出可能是什么”,白箱负责“判断在当前条件下是否成立”。**
|
|
134
|
+
|
|
135
|
+
在开放世界中,两者甚至可以互补:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
未知问题
|
|
139
|
+
↓
|
|
140
|
+
LLM 提出候选解释
|
|
141
|
+
↓
|
|
142
|
+
白箱寻找条件和已有知识
|
|
143
|
+
↓
|
|
144
|
+
符合 → ACCEPT(接受)
|
|
145
|
+
冲突 → REJECT(拒绝)
|
|
146
|
+
条件不足 → DEFER(延后)
|
|
147
|
+
无法判断 → BLINDSPOT(盲区)
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
这也是为什么白箱不等于“一个更大的数据库”。
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
# 三、白箱最核心的概念:条件
|
|
155
|
+
|
|
156
|
+
白箱智能的一个基本假设是:
|
|
157
|
+
|
|
158
|
+
> **知识不是脱离条件存在的。**
|
|
159
|
+
|
|
160
|
+
例如:
|
|
161
|
+
|
|
162
|
+
> 水的沸点是 100°C。
|
|
163
|
+
|
|
164
|
+
这个说法实际上隐含了条件。
|
|
165
|
+
|
|
166
|
+
更完整的知识应该类似:
|
|
167
|
+
|
|
168
|
+
```text
|
|
169
|
+
条件:
|
|
170
|
+
标准大气压附近
|
|
171
|
+
|
|
172
|
+
知识:
|
|
173
|
+
水的沸点约为 100°C
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
改变条件:
|
|
177
|
+
|
|
178
|
+
```text
|
|
179
|
+
海拔升高
|
|
180
|
+
↓
|
|
181
|
+
大气压降低
|
|
182
|
+
↓
|
|
183
|
+
沸点降低
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
因此,白箱不是简单保存:
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
问题 → 答案
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
而更接近:
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
条件 → 知识 → 条件 → 知识 → 结论
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
这些关系可以进一步组织成条件路由图。
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
# 四、什么是条件路由?
|
|
203
|
+
|
|
204
|
+
假设系统拥有三个知识单元:
|
|
205
|
+
|
|
206
|
+
```text
|
|
207
|
+
K1:海拔升高 → 大气压降低
|
|
208
|
+
|
|
209
|
+
K2:大气压降低 → 水的沸点降低
|
|
210
|
+
|
|
211
|
+
K3:标准大气压下水的沸点约为 100°C
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
用户提出:
|
|
215
|
+
|
|
216
|
+
> “高原地区烧水为什么更难把食物煮熟?”
|
|
217
|
+
|
|
218
|
+
系统不是寻找一个最相似的答案,而是寻找能够满足当前条件的路径:
|
|
219
|
+
|
|
220
|
+
```text
|
|
221
|
+
高海拔
|
|
222
|
+
↓
|
|
223
|
+
大气压降低
|
|
224
|
+
↓
|
|
225
|
+
水的沸点降低
|
|
226
|
+
↓
|
|
227
|
+
烹饪温度下降
|
|
228
|
+
↓
|
|
229
|
+
食物更难煮熟
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
每一步都有自己的知识和条件。
|
|
233
|
+
|
|
234
|
+
这就是**条件路由**。
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
# 五、条件不足怎么办?
|
|
239
|
+
|
|
240
|
+
这是白箱和普通检索系统非常重要的区别。
|
|
241
|
+
|
|
242
|
+
假设有两个能力:
|
|
243
|
+
|
|
244
|
+
```text
|
|
245
|
+
A:信任累积
|
|
246
|
+
B:信任阈值检查
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
两者都可能出现:
|
|
250
|
+
|
|
251
|
+
> 信任、判断、验证、状态……
|
|
252
|
+
|
|
253
|
+
仅仅依靠关键词,很容易认为 A 和 B 是同一个能力。
|
|
254
|
+
|
|
255
|
+
白箱不会急着选择。
|
|
256
|
+
|
|
257
|
+
它可以进入:
|
|
258
|
+
|
|
259
|
+
```text
|
|
260
|
+
DEFER(延后)
|
|
261
|
+
↓
|
|
262
|
+
比较候选能力
|
|
263
|
+
↓
|
|
264
|
+
寻找两者之间的条件差异
|
|
265
|
+
↓
|
|
266
|
+
发现:
|
|
267
|
+
“累积” 对比 “阈值检查”
|
|
268
|
+
↓
|
|
269
|
+
继续寻找当前任务真正需要的条件
|
|
270
|
+
↓
|
|
271
|
+
重新判断
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
这就是**条件递归**。
|
|
275
|
+
|
|
276
|
+
换句话说:
|
|
277
|
+
|
|
278
|
+
> **不知道答案时,不是马上猜一个,而是先问:我到底缺少什么条件?**
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
# 六、如果最终还是不知道呢?
|
|
283
|
+
|
|
284
|
+
那么白箱应该明确进入:
|
|
285
|
+
|
|
286
|
+
## BLINDSPOT —— 盲区
|
|
287
|
+
|
|
288
|
+
例如系统收到:
|
|
289
|
+
|
|
290
|
+
> “请使用一种它从未学习过、也没有任何相关规则支持的能力完成任务。”
|
|
291
|
+
|
|
292
|
+
如果系统无法建立:
|
|
293
|
+
|
|
294
|
+
```text
|
|
295
|
+
问题
|
|
296
|
+
↓
|
|
297
|
+
条件
|
|
298
|
+
↓
|
|
299
|
+
知识
|
|
300
|
+
↓
|
|
301
|
+
规则
|
|
302
|
+
↓
|
|
303
|
+
执行路径
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
那么正确行为不是编造答案。
|
|
307
|
+
|
|
308
|
+
而是:
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
无法建立有效条件链
|
|
312
|
+
↓
|
|
313
|
+
无法证明自己具有处理资格
|
|
314
|
+
↓
|
|
315
|
+
BLINDSPOT(盲区)
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
这也是白箱智能非常重视的一条原则:
|
|
319
|
+
|
|
320
|
+
> **明确知道“不知道”,比生成一个看起来合理但无法验证的答案更重要。**
|
|
321
|
+
|
|
322
|
+
---
|
|
323
|
+
|
|
324
|
+
# 七、那么白箱如何学习?
|
|
325
|
+
|
|
326
|
+
白箱并不是一个永远不会变化的静态规则库。
|
|
327
|
+
|
|
328
|
+
它可以形成:
|
|
329
|
+
|
|
330
|
+
```text
|
|
331
|
+
预测
|
|
332
|
+
↓
|
|
333
|
+
执行
|
|
334
|
+
↓
|
|
335
|
+
得到结果
|
|
336
|
+
↓
|
|
337
|
+
发现预测误差
|
|
338
|
+
↓
|
|
339
|
+
检查遗漏条件
|
|
340
|
+
↓
|
|
341
|
+
形成候选新规则
|
|
342
|
+
↓
|
|
343
|
+
验证
|
|
344
|
+
↓
|
|
345
|
+
通过 → 固化
|
|
346
|
+
失败 → 拒绝
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
因此:
|
|
350
|
+
|
|
351
|
+
> **错误不是简单地让系统“调一个参数”,而可以成为寻找遗漏条件的入口。**
|
|
352
|
+
|
|
353
|
+
例如:
|
|
354
|
+
|
|
355
|
+
```text
|
|
356
|
+
原理论:
|
|
357
|
+
|
|
358
|
+
条件 A + 条件 B
|
|
359
|
+
↓
|
|
360
|
+
结果 X
|
|
361
|
+
|
|
362
|
+
实际观察:
|
|
363
|
+
|
|
364
|
+
结果 ≠ X
|
|
365
|
+
|
|
366
|
+
于是系统检查:
|
|
367
|
+
|
|
368
|
+
是否遗漏条件 C?
|
|
369
|
+
|
|
370
|
+
如果发现:
|
|
371
|
+
|
|
372
|
+
A + B + C
|
|
373
|
+
↓
|
|
374
|
+
结果 X
|
|
375
|
+
|
|
376
|
+
那么新的 C 就可能成为理论结构的一部分。
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
这就是白箱中的**预测误差 → 条件更新**。
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
# 八、白箱和传统专家系统有什么区别?
|
|
384
|
+
|
|
385
|
+
这个问题非常值得问。
|
|
386
|
+
|
|
387
|
+
白箱确实继承了专家系统的一部分思想:
|
|
388
|
+
|
|
389
|
+
- 显式知识
|
|
390
|
+
- 规则
|
|
391
|
+
- 条件
|
|
392
|
+
- 可验证性
|
|
393
|
+
|
|
394
|
+
但它进一步尝试解决:
|
|
395
|
+
|
|
396
|
+
- 开放式问题如何产生候选知识?
|
|
397
|
+
- 不同知识之间如何组合?
|
|
398
|
+
- 如何发现缺失条件?
|
|
399
|
+
- 如何递归寻找条件?
|
|
400
|
+
- 如何从错误中更新结构?
|
|
401
|
+
- 如何判断自己什么时候没有能力?
|
|
402
|
+
|
|
403
|
+
因此,白箱智能目前更适合被理解为:
|
|
404
|
+
|
|
405
|
+
> **一种以条件、显式知识、规则、验证和递归为核心的智能架构探索。**
|
|
406
|
+
|
|
407
|
+
它不是简单地把专家系统重新包装一次。
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
# 九、灵枢正在验证什么?
|
|
412
|
+
|
|
413
|
+
目前的灵枢(AEIS · Agent Engineering Implementation Specification,智能体工程实现规范)项目并不是声称:
|
|
414
|
+
|
|
415
|
+
> “我们已经解决了通用人工智能(AGI · Artificial General Intelligence)。”
|
|
416
|
+
|
|
417
|
+
恰恰相反,我们希望把问题拆成可以实验验证的小问题。
|
|
418
|
+
|
|
419
|
+
其中一个重要实验方向是:
|
|
420
|
+
|
|
421
|
+
## CCG:代码能力条件路由
|
|
422
|
+
|
|
423
|
+
CCG(Code Condition Graph · 代码条件路由图):以「条件词 → 节点」为检索面的代码能力索引。
|
|
424
|
+
|
|
425
|
+
首先测试:
|
|
426
|
+
|
|
427
|
+
> **自然语言描述能不能成为代码能力的索引?**
|
|
428
|
+
|
|
429
|
+
实验结果显示,在当前测试集和实验设置下:
|
|
430
|
+
|
|
431
|
+
- Top-1(检索第一名即命中的比例):96/96,100%
|
|
432
|
+
- Top-5(检索前五名内命中的比例):96/96,100%
|
|
433
|
+
- 函数名被抹掉后,Top-1 仍保持 100%
|
|
434
|
+
|
|
435
|
+
这意味着在该实验设置下,系统并不必须依赖函数名称,而可以利用代码实体的语义描述进行定位。
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
# 十、然后我们故意让它失败
|
|
440
|
+
|
|
441
|
+
这一步比“100%”更加重要。
|
|
442
|
+
|
|
443
|
+
我们制造:
|
|
444
|
+
|
|
445
|
+
> **关键词很像,但实际能力不同**
|
|
446
|
+
|
|
447
|
+
的对抗任务。
|
|
448
|
+
|
|
449
|
+
最开始:
|
|
450
|
+
|
|
451
|
+
```text
|
|
452
|
+
对抗负条件拒绝率:28%
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
这暴露出一个问题:
|
|
456
|
+
|
|
457
|
+
> CCG 当时更接近语义检索(semantic retrieval:按意思相似找答案),而不是条件路由(condition routing:按「条件是否满足」找路径)。
|
|
458
|
+
|
|
459
|
+
于是系统增加了:
|
|
460
|
+
|
|
461
|
+
> **能力级不适用条件**
|
|
462
|
+
|
|
463
|
+
然后重新测试:
|
|
464
|
+
|
|
465
|
+
```text
|
|
466
|
+
28%
|
|
467
|
+
↓
|
|
468
|
+
88%
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
接着使用完全不同机制的新对抗集:
|
|
472
|
+
|
|
473
|
+
```text
|
|
474
|
+
91%
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
这说明改进并不只是针对原测试题打补丁。
|
|
478
|
+
|
|
479
|
+
---
|
|
480
|
+
|
|
481
|
+
# 十一、最终形成四态路由
|
|
482
|
+
|
|
483
|
+
继续把实验推进后,CCG 形成:
|
|
484
|
+
|
|
485
|
+
| 状态 | 含义 |
|
|
486
|
+
|---|---|
|
|
487
|
+
| **ACCEPT** | 条件满足,有资格执行 |
|
|
488
|
+
| **REJECT** | 条件冲突,明确不适用 |
|
|
489
|
+
| **DEFER** | 相关但条件不足,继续分析 |
|
|
490
|
+
| **BLINDSPOT** | 无法建立可靠归属,不强行选择 |
|
|
491
|
+
|
|
492
|
+
在当前实验集上:
|
|
493
|
+
|
|
494
|
+
- 能力域正任务 ACCEPT:100%
|
|
495
|
+
- 域外负任务 REJECT:100%
|
|
496
|
+
- 邻域任务未错误 ACCEPT:100%
|
|
497
|
+
- REJECT precision(拒绝精确率:被判「拒绝」的样本中确实不该接受的比例):100%
|
|
498
|
+
|
|
499
|
+
这些结果都应该理解为:
|
|
500
|
+
|
|
501
|
+
> **当前测试集和实验条件下的工程实验结果,而不是对一般智能能力的普遍证明。**
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
# 十二、白箱自举是什么意思?
|
|
506
|
+
|
|
507
|
+
如果一个系统只能依赖外部人工告诉它:
|
|
508
|
+
|
|
509
|
+
> “你应该如何解释自己。”
|
|
510
|
+
|
|
511
|
+
那么它还没有真正形成完整的自描述能力。
|
|
512
|
+
|
|
513
|
+
灵枢正在尝试让白箱使用自己的知识、条件和规则描述自身。
|
|
514
|
+
|
|
515
|
+
例如:
|
|
516
|
+
|
|
517
|
+
```text
|
|
518
|
+
白箱是什么?
|
|
519
|
+
↓
|
|
520
|
+
寻找“白箱”的知识
|
|
521
|
+
↓
|
|
522
|
+
找到白箱组成规则
|
|
523
|
+
↓
|
|
524
|
+
找到条件路由机制
|
|
525
|
+
↓
|
|
526
|
+
组合
|
|
527
|
+
↓
|
|
528
|
+
验证
|
|
529
|
+
↓
|
|
530
|
+
得到关于白箱自身的解释
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
进一步地,系统还可以对自己的知识结构进行分析、验证和迭代。
|
|
534
|
+
|
|
535
|
+
因此这里所说的“自举”,不是简单地让 AI 修改自己的源代码。
|
|
536
|
+
|
|
537
|
+
更准确地说:
|
|
538
|
+
|
|
539
|
+
> **系统开始使用自身的认知机制描述、验证和扩展自身。**
|
|
540
|
+
|
|
541
|
+
---
|
|
542
|
+
|
|
543
|
+
# 十三、白箱真正想解决的是什么?
|
|
544
|
+
|
|
545
|
+
我们并不认为:
|
|
546
|
+
|
|
547
|
+
> “模型越大越没用。”
|
|
548
|
+
|
|
549
|
+
也不认为:
|
|
550
|
+
|
|
551
|
+
> “所有 AI 都应该变成规则系统。”
|
|
552
|
+
|
|
553
|
+
我们关注的是另一个问题:
|
|
554
|
+
|
|
555
|
+
> **如果未来 AI 越来越接近真正的智能体,那么它是否应该知道自己的知识边界、行为依据和错误修正路径?**
|
|
556
|
+
|
|
557
|
+
如果答案是“应该”,那么:
|
|
558
|
+
|
|
559
|
+
```text
|
|
560
|
+
条件
|
|
561
|
+
知识
|
|
562
|
+
规则
|
|
563
|
+
验证
|
|
564
|
+
记忆
|
|
565
|
+
自省
|
|
566
|
+
盲区
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
就不应该只是外挂功能。
|
|
570
|
+
|
|
571
|
+
它们可能需要成为智能系统本身的一部分。
|
|
572
|
+
|
|
573
|
+
---
|
|
574
|
+
|
|
575
|
+
# 十四、白箱的核心闭环
|
|
576
|
+
|
|
577
|
+
把所有内容压缩到一起,可以得到:
|
|
578
|
+
|
|
579
|
+
```text
|
|
580
|
+
┌──────────────┐
|
|
581
|
+
│ 问题 │
|
|
582
|
+
└──────┬───────┘
|
|
583
|
+
↓
|
|
584
|
+
┌──────────────┐
|
|
585
|
+
│ 识别条件 │
|
|
586
|
+
└──────┬───────┘
|
|
587
|
+
↓
|
|
588
|
+
┌──────────────┐
|
|
589
|
+
│ 找知识与规则 │
|
|
590
|
+
└──────┬───────┘
|
|
591
|
+
↓
|
|
592
|
+
┌──────────────┐
|
|
593
|
+
│ 条件路由 │
|
|
594
|
+
└──────┬───────┘
|
|
595
|
+
↓
|
|
596
|
+
┌──────────┼──────────┐
|
|
597
|
+
↓ ↓ ↓
|
|
598
|
+
ACCEPT DEFER REJECT
|
|
599
|
+
│ │
|
|
600
|
+
│ ↓
|
|
601
|
+
│ 寻找缺失条件
|
|
602
|
+
│ │
|
|
603
|
+
│ ↓
|
|
604
|
+
│ 递归判断
|
|
605
|
+
│ │
|
|
606
|
+
│ 无法判断
|
|
607
|
+
│ ↓
|
|
608
|
+
│ BLINDSPOT
|
|
609
|
+
↓
|
|
610
|
+
执行
|
|
611
|
+
↓
|
|
612
|
+
验证
|
|
613
|
+
↓
|
|
614
|
+
┌────┴────┐
|
|
615
|
+
↓ ↓
|
|
616
|
+
正确 错误
|
|
617
|
+
│ │
|
|
618
|
+
↓ ↓
|
|
619
|
+
固化 寻找遗漏条件
|
|
620
|
+
│
|
|
621
|
+
↓
|
|
622
|
+
更新
|
|
623
|
+
│
|
|
624
|
+
└────→ 重新判断
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
这就是目前白箱智能最核心的工程闭环。
|
|
628
|
+
|
|
629
|
+
> 图中四态:ACCEPT(接受,条件满足则执行)· REJECT(拒绝,条件冲突则不适用)· DEFER(延后,条件不足则继续找)· BLINDSPOT(盲区,无法归属则不猜)。
|
|
630
|
+
|
|
631
|
+
---
|
|
632
|
+
|
|
633
|
+
# 十五、白箱与 AGI 的关系
|
|
634
|
+
|
|
635
|
+
我们不宣称:
|
|
636
|
+
|
|
637
|
+
> **“白箱智能已经是 AGI。”**
|
|
638
|
+
|
|
639
|
+
我们提出的是一个可以被讨论和证伪的观点:
|
|
640
|
+
|
|
641
|
+
> **一个能够长期自主运行的智能体,如果无法可靠地判断自己的知识边界、行为依据、适用条件和错误修正路径,那么它的可靠性将受到结构性限制。**
|
|
642
|
+
|
|
643
|
+
因此我们探索的不是:
|
|
644
|
+
|
|
645
|
+
> “如何制造一个万能答案机器?”
|
|
646
|
+
|
|
647
|
+
而是:
|
|
648
|
+
|
|
649
|
+
> **“如何让一个智能系统知道自己为什么能够做、什么时候不能做,以及犯错之后应该改变什么?”**
|
|
650
|
+
|
|
651
|
+
这也是我们为什么选择白箱方向。
|
|
652
|
+
|
|
653
|
+
---
|
|
654
|
+
|
|
655
|
+
# 十六、我们现在已经知道什么,又不知道什么?
|
|
656
|
+
|
|
657
|
+
### 已经进行了工程验证的
|
|
658
|
+
|
|
659
|
+
- 条件化知识单元
|
|
660
|
+
- 确定性知识路由
|
|
661
|
+
- 知识组合与验证
|
|
662
|
+
- 预测误差反馈
|
|
663
|
+
- CCG 代码能力索引
|
|
664
|
+
- 能力级负路由
|
|
665
|
+
- ACCEPT(接受)/ REJECT(拒绝)/ DEFER(延后)/ BLINDSPOT(盲区)四态路由
|
|
666
|
+
- 白箱知识自举
|
|
667
|
+
- 长期记忆与知识结构
|
|
668
|
+
|
|
669
|
+
### 仍然需要进一步证明的
|
|
670
|
+
|
|
671
|
+
- 开放域条件自动发现能力
|
|
672
|
+
- 大规模知识图上的稳定递归
|
|
673
|
+
- 新领域迁移能力
|
|
674
|
+
- 更复杂的因果推理
|
|
675
|
+
- 长期自主学习的稳定性
|
|
676
|
+
- 白箱架构是否能够扩展到更一般的智能任务
|
|
677
|
+
- 白箱是否最终能够成为 AGI 的基础架构
|
|
678
|
+
|
|
679
|
+
**我们不把尚未证明的部分写成已经证明的结论。**
|
|
680
|
+
|
|
681
|
+
这本身也是白箱理念的一部分。
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
# 十七、如何亲自验证?
|
|
686
|
+
|
|
687
|
+
你不需要先相信我们。
|
|
688
|
+
|
|
689
|
+
### 5 分钟:看懂一次条件路由
|
|
690
|
+
|
|
691
|
+
运行灵枢的白箱知识问答,观察:
|
|
692
|
+
|
|
693
|
+
```text
|
|
694
|
+
问题
|
|
695
|
+
↓
|
|
696
|
+
知识单元
|
|
697
|
+
↓
|
|
698
|
+
条件
|
|
699
|
+
↓
|
|
700
|
+
规则
|
|
701
|
+
↓
|
|
702
|
+
结论
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
重点不是答案本身,而是:
|
|
706
|
+
|
|
707
|
+
> **答案是否能够追溯到结构化知识和条件。**
|
|
708
|
+
|
|
709
|
+
### 1 小时:复现实验
|
|
710
|
+
|
|
711
|
+
运行项目中的测试集,观察:
|
|
712
|
+
|
|
713
|
+
- 正向路由
|
|
714
|
+
- 负条件拒绝
|
|
715
|
+
- 对抗任务
|
|
716
|
+
- 四态路由
|
|
717
|
+
- 盲区声明
|
|
718
|
+
|
|
719
|
+
然后不要只看成功案例。
|
|
720
|
+
|
|
721
|
+
**优先寻找失败案例。**
|
|
722
|
+
|
|
723
|
+
因为:
|
|
724
|
+
|
|
725
|
+
> **一个白箱系统真正值得研究的地方,不是它什么时候回答得对,而是它什么时候知道自己不应该回答。**
|
|
726
|
+
|
|
727
|
+
### 长期:贡献一个知识域
|
|
728
|
+
|
|
729
|
+
选择一个确定性知识领域,例如:
|
|
730
|
+
|
|
731
|
+
- 初中物理
|
|
732
|
+
- 基础化学
|
|
733
|
+
- 数据结构
|
|
734
|
+
- 编译原理
|
|
735
|
+
|
|
736
|
+
尝试把一个知识写成:
|
|
737
|
+
|
|
738
|
+
```text
|
|
739
|
+
适用条件
|
|
740
|
+
↓
|
|
741
|
+
子功能
|
|
742
|
+
↓
|
|
743
|
+
执行规则
|
|
744
|
+
↓
|
|
745
|
+
验证方式
|
|
746
|
+
↓
|
|
747
|
+
不适用条件
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
然后观察它如何进入条件路由图。
|
|
751
|
+
|
|
752
|
+
---
|
|
753
|
+
|
|
754
|
+
# 十八、最后
|
|
755
|
+
|
|
756
|
+
白箱智能不是一个要求你“相信”的答案。
|
|
757
|
+
|
|
758
|
+
它更像是一项可以被不断攻击、测试和证伪的工程假设:
|
|
759
|
+
|
|
760
|
+
> **智能不仅应该产生答案,还应该知道答案成立的条件;不仅应该知道如何执行,还应该知道什么时候没有资格执行;不仅应该发现错误,还应该能够寻找导致错误的遗漏条件。**
|
|
761
|
+
|
|
762
|
+
所以我们欢迎的不是:
|
|
763
|
+
|
|
764
|
+
> “这个理论听起来很厉害。”
|
|
765
|
+
|
|
766
|
+
而是:
|
|
767
|
+
|
|
768
|
+
> **“给我一个会让它失败的问题。”**
|
|
769
|
+
|
|
770
|
+
如果它失败:
|
|
771
|
+
|
|
772
|
+
```text
|
|
773
|
+
记录失败
|
|
774
|
+
↓
|
|
775
|
+
定位条件缺失
|
|
776
|
+
↓
|
|
777
|
+
修改结构
|
|
778
|
+
↓
|
|
779
|
+
重新测试
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
如果修改后仍然无法解释:
|
|
783
|
+
|
|
784
|
+
```text
|
|
785
|
+
BLINDSPOT(盲区)
|
|
786
|
+
```
|
|
787
|
+
|
|
788
|
+
这就是我们希望建立的研究方式:
|
|
789
|
+
|
|
790
|
+
> **不要求相信白箱。验证白箱。**
|
|
791
|
+
|
|
792
|
+
---
|
|
793
|
+
|
|
794
|
+
# 附录 · 术语表
|
|
795
|
+
|
|
796
|
+
> 正文约定:英文缩写首次出现处给出全称;下表集中收录本文全部英文术语,供查阅。
|
|
797
|
+
|
|
798
|
+
| 缩写 / 术语 | 英文全称 | 中文含义 |
|
|
799
|
+
|---|---|---|
|
|
800
|
+
| AI | Artificial Intelligence | 人工智能 |
|
|
801
|
+
| LLM | Large Language Model | 大语言模型(如 GPT、DeepSeek 一类) |
|
|
802
|
+
| AGI | Artificial General Intelligence | 通用人工智能(能与人类相提并论的广泛智能) |
|
|
803
|
+
| AEIS | Agent Engineering Implementation Specification | 智能体工程实现规范——灵枢(本项目的实现体)的英文名 |
|
|
804
|
+
| CCG | Code Condition Graph | 代码条件路由图——以「条件词 → 节点」为检索面的代码能力索引 |
|
|
805
|
+
| ACCEPT | (英文原词,非缩写) | 接受:条件满足,有资格执行 |
|
|
806
|
+
| REJECT | (英文原词,非缩写) | 拒绝:条件冲突,明确不适用 |
|
|
807
|
+
| DEFER | (英文原词,非缩写) | 延后:相关但条件不足,继续寻找缺失条件 |
|
|
808
|
+
| BLINDSPOT | (英文原词,非缩写) | 盲区:无法建立可靠归属,不强行猜测 |
|
|
809
|
+
| Top-1 / Top-5 | — | 检索命中指标:Top-1=检索第一名即命中;Top-5=前五名内命中 |
|
|
810
|
+
| semantic retrieval | — | 语义检索:按「意思相似」找答案的检索方式 |
|
|
811
|
+
| condition routing | — | 条件路由:按「条件是否满足」找路径的检索方式 |
|
|
812
|
+
| REJECT precision | — | 拒绝精确率:被判「拒绝」的样本中确实不该接受的比例 |
|