Bugscope · bug 透视镜 —— 审视"影子冒充对象"的哲学方法论
Status: Philosophy · 方法论定义(非实现) Date: 2026-08-08 来源: 审视 uking 收集的真实 bug 后,从底层问题抽象出的哲学理论(2026-08-08) 增补: A6 / Q0 来自本象 video 方言落地时同一个错连犯四次(2026-08-09),见 §2 A6
普通排障问"这段代码为什么错"。 Bugscope 问更深一层:"系统在哪里把影子当成了对象本身?"
1. 它是什么
Bugscope 不是又一个调试工具。它是一套审视方法——用来回答"为什么会有这个 bug"的第二层追问。
它扎根于 2Origin 的本体论:影子和对象的区分。系统常把一个低维表征(标记、字段、返回码、声明)当成真实状态(真的发生、真的验证过、真的是那个东西)。这就是认知越界——bug 的深层根因。
2026-08-09 起它不再纯粹是"事后"的。 A1–A5 都在问"这个已存在的结论怎么来的", 而 A6/Q0 问的是"我正要用的这把尺子对不对"——因为有一类错误在结论产生之前 就烧进了度量方式里,等到有结论可审视时,五条公理已经全部照不出它(见 §3 Q0)。 所以现在它是一件双向的工具:向后审视既有结论,向前拦住选错的代理。
2. 六条公理
A1 · 存在 ≠ 验证 一个东西"存在"(标记在、字段在、返回了)不等于它被"验证过"(真实发生、真实有效)。
实例:crashlog 误报——"标记存在"被当成"真崩了",实际 pid 还活着(多实例残留)。
A2 · 自证不成立 一个系统不能用自己的输出证明自己的输出。"我说我写好了"不是"写好了"。
实例:幂等账本丢数据——"写入返回成功"被当成"账本真的更新了",读改写不原子。
A3 · 判断与决策分离则必被替身 有判断依据的层没有决策权,有决策权的层没有判断依据——于是"表象"替身"事实"。
实例:RFC-0001——南桥有 risk 判据但没决策权(被 harness 闸门拦),请求从未到达南桥。
A4 · 缺席不会自己发声 系统只报告它做了什么,不会自动报告它没做什么。因此每一个承诺(可审计、不丢学历、 幂等成立),在它失效的那一刻都是不可见的——不是被谎报,是根本没有影可看。
实例:审计写失败被空 catch 吞掉,动作照做并如实返回
done。 A1/A2/A3 全部不命中——done是真的、有回读观察不是自证、判断与决策同层。 但"这次动作可追溯"这个承诺已经悄悄失效,而调用方毫不知情。 第二例:CLI 漏给内容来源 → 静默写出 0 字节文件并报done,且完全符合"写后观察一致"。 RFC-0004 原文:「验证器抓不出来,这类死角只能在入口拦。」
A5 · 验证会衰减
A1 说的是"从没验证过"。A5 说的是另一件事:验证过的,会过期。
一次成立不是永久成立;世界会变,而 verified 标记不会自己变回去。
实例:
demo/task2两条结论「Codex 沙箱只读导致落盘被拦」当日已被推翻(真因是 harness 审批闸门 + 本机沙箱 runner 损坏),但至今仍是verified: true;SessionStart 的 bundle 把"推翻"和"被推翻的"并排注入、之间无任何链接,每个新会话都要重新裁决同一场官司。 根因在表达力:facts[].verified是 boolean 而非状态机,系统唯一的手段是"再追加一条", 所以矛盾只会累积。先例(必须承认):这是 1978 年的已解问题——Jon Doyle 的 Truth Maintenance System (MIT AI-TR-419)让每条信念挂 justification,支撑撤销则信念自动退出,靠 dependency-directed backtracking 传播。A5 不是新发现,是我们撞到了一个老问题。 该抄,不该发明。
A6 · 代理不继承被代理者的性质 用 X 判断 Y 时,X 只是 Y 的一个影子。影子的亮度不等于对象的重量。 系统一旦把代理变量当成被代理者,所有下游判断都带上代理的偏差——而这个偏差 在代理与对象碰巧一致的样本上完全不可见。你会看到它"work 了",然后把它推广到必然失效的地方。
实例(本象 video 方言,2026-08-09,全部实测):
代理 X 被代理者 Y 十秒内就能想到的反例 实际后果 音量峰值 + 镜头切换 内容价值 「他大声说『一个没装上』」 加权召回 33.4%,跑输随机基线 40.7% 时间活跃度 画面重要性 「固定不动的价格牌」「主播的脸」 自动裁剪把主播摄像头裁掉了 语速 / 情绪能量 爆点 「他在赶时间念稿」 ρ = 0.06–0.29,无关;语速 top1/top2 是全片最该删的两段 话密度(字/秒) 内容价值 「安静展示一张海报 5 秒」 ρ = 0.568,目前"成立" 最后一行最重要:那个成功的信号,用同一把尺子量一样有失效域。 它现在管用只是因为素材恰好是纯口播。A6 不只抓失败,它还把成功正确地标注成"有条件的"。
A6 与前五条的关系:A1 怀疑读数的真实性,A6 怀疑尺子的对应性。 代理失效时通常没有任何报错——管线照常输出,只是输出的是另一个问题的答案, 所以 A6 常与 A4 成对出现(上表四例里三例是"零 error 全错")。
3. 审视七问
Q0 我正用 X 判断 Y。举得出一个「X 高而 Y 低」的反例吗? ← A6(事前)
Q1 这个"事实"是观察来的,还是声称来的?
Q2 这里有没有"存在性检查"被当成"验证"?
Q3 谁在证明?证明者和被证明者是同一个吗?(自证)
Q4 判断依据在谁手里,决策权在谁手里?它们在同一层吗?
Q5 这里承诺过什么?那个承诺失效时,谁会知道? ← A4
Q6 这条结论是什么时候成立的?世界变了之后谁去改它? ← A5
任何一个问题的答案是"是的/可疑",就标记该处为候选 bugscope 命中。
Q5/Q6 是 2026-08-08 补的:拿 A1–A3 逐条检验参考实现已复现的缺陷时,发现有两类 三条公理全部不命中、却确实是真缺陷——"承诺悄悄失效"(无谎报、无自证、无分离) 与"验证已过期"(当初确实验证过)。方法论自己被自己的 §4 照出了盲区。
Q0 是 2026-08-09 补的,而且它排在 Q1 之前——因为它管的是尺子,不是读数。 同样的过程:拿 A1–A5 逐条检验 video 方言的四次失败,发现五条公理全部不命中、 而结论完全无效——那些结论确实是观察来的(A1 不中)、不是自证(A2 不中)、 判断与决策同层(A3 不中)、没有承诺失效(A4 不中)、没有过期(A5 不中)。 病根在结论产生之前:它烧进了度量方式里,于是产出的是「用错的尺子量出的正确读数」。
Q0 的判据是能不能举出反例,不是代理准不准:
举不出 → 你没想清楚这个代理凭什么成立,不许动手。 举得出 → 那个反例就是必须先测的第一个用例,且它描述的失效域必须写进 limits(第七要素)。
举得出反例不等于代理不能用(话密度就能用),只等于它有已知失效域、必须声明。 这一问必须制度化成新增度量/打分/排序逻辑时的必答题——上表四次, 提出者事后都能在十秒内想到反例,事前一次都没想。靠自觉无效,四次实测就是证据。
4. 自我指涉(它最深的点)
一个审视"自证式结果"的方法论,自己也要能被审视。"这个 bug 是影子/对象混淆"这个判断本身,也可能是我把声明当事实。
硬规则:每个被透视的结论,必须能指出可复核的证据(source),否则这个结论也只是影子。
这与本境"source 必须可复核"(RFC-0005 §3.2)同构——方法论自身落地了它审视的原则。
5. 诚实边界
- 它的公理不是首创,多数有几十年先例。 A4 最接近的先例是 Zen of Python(PEP 20, 2004) "Errors should never pass silently";A5 是 Doyle 1978 的 TMS; A6 是心理测量学的构念效度(construct validity,Cronbach & Meehl 1955)—— 「这个测验真的测到了那个构念吗」。 不是 Goodhart(1975)也不是 Campbell(1979):那两条讲的是优化压力导致的失效 (有人会去刷指标),A6 讲的是没有任何人作弊时,代理依然错。不同失效模式,不能互相替代。 A6 在本体系里的推广是:在 AI 原生系统里,引入一个新代理变量的成本已降到写一个 ffmpeg filter,而验证它的成本相对没降——代理的产生速度远超验证速度, 于是这条从"研究方法学"变成了"日常工程卫生"。 Bugscope 的价值不在"发明了新公理",在两件更小的事: ① 把散落在不同年代、不同社区的同类判据收敛成一张可逐条施加的检查表; ② 指出在 AI 原生系统里,这些原本是"卫生习惯"的东西变成了承重结构—— 因为核心部件(模型)常态就是流畅、自信、且可能完全错误。 前提变了,老律的地位就变了。这是定位主张,不是发现主张。 (A4 相对 PEP 20 有一处实质推广:从 errors 推广到 promises —— 见 A4 的审计案例,那里动作没有 error,失效的是与动作成败正交的承诺。)
- 它不找"逻辑型"bug(数组越界、空指针、死循环)——只找"认知型"bug(影子/对象混淆、自证、判断分离)。
- 它的结论是怀疑,不是判决——指出"这里可能把声明当事实了",然后要人去验证。
- 它不替代测试和验证,是第二层审视——回答"为什么会有这个 bug"。
- 它不一定对所有 bug 都有答案;没有命中时,如实说"这条不适用",不硬套。
6. 与 2Origin 的关系
Bugscope 是 2Origin 哲学(影子 vs 对象)在排障维度的投影:
- 本象:世界 → 对象(解决"AI 看到影")
- Bugscope:bug → 认知越界(解决"系统把影当对象")
同一条哲学,一个向前(构建),一个向后(审视)。
License: Apache-2.0