news 2026/10/8 18:46:22

《执行缝隙》作者手记 09|一个概念真正成熟,是从知道什么不属于它开始

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《执行缝隙》作者手记 09|一个概念真正成熟,是从知道什么不属于它开始

本文是《执行缝隙》(The Execution Gap)的作者手记。 它不是书籍正文的摘要或重写,而是围绕本章问题、工程背景与写作之后的进一步思考。

写到第九章的时候,我第一次明显感觉到,《执行缝隙》需要停止继续“吸收”问题,转而做一件相反的事情:把一些看起来非常相关、甚至后果十分严重的问题明确地留在外面。

前面的章节一直在向内建立结构。我们先拆掉了“每一环都正确,所以最终执行就应该正确”的推论,又把“执行了”拆成提交、调用、状态、回执、结果与证据这些不能默认等同的对象;随后,偏差的位置从单个组件转向对象之间的关系,并进一步收敛为判断与绑定、执行路径、执行边界、状态与结果、因果链内证据与证明这几类直接机制。到了第七章和第八章,我们又把 Change 与 Amplification 从一级成因的位置上移开。

理论走到这里,最容易产生一种诱惑:既然已经建立了一套能够解释许多事故的语言,那么是不是可以继续用它解释更多事情?

我后来反而觉得,真正应该做的是相反方向。

一个概念如果只能不断告诉我们“这个也算、那个也算”,最终通常会变成一个覆盖范围很大、定位能力却越来越弱的词。Execution Gap 如果最后能够包住所有软件 bug、所有错误决定、所有 AI 失误、所有证据问题和所有坏结果,那么它与“系统出了问题”之间也就没有多少实质区别了。

所以第九章真正要回答的,不是还能把什么装进来,而是:什么东西即使重要,也不能仅凭结果不好就自动叫作执行缝隙。

边界不是为了保护理论,而是为了保护问题本身

我一直认为,一个新概念最危险的时候,不是它解释不了一些事情,而是它开始什么都能解释。

现实事故往往很复杂,一件事情里面可以同时存在软件缺陷、错误判断、治理问题、证据缺失、恢复动作和自动化放大。如果我们看到这些东西以后,都把它们统一叫成 Execution Gap,表面上像是找到了一套更加完整的语言,实际上却会把不同的问题重新压成一个词。

这会同时伤害两个方向。

一方面,《执行缝隙》前面建立的那些关系、机制和因果位置会失去意义,因为无论最后发生什么,我们都可以用同一个概念概括;另一方面,那些真正属于软件质量、治理合法性、可观察性或者韧性工程的问题,也会因为被放进错误的问题空间,而错过自己真正应该接受的分析方法。

所以第九章里的六条边界,我不把它们理解成六个新的类别,更不认为它们是一张“非执行缝隙分类表”。它们真正做的是提醒我们:面对一个已经发生的坏结果,不要急着把它装进 Execution Gap,而应该先看它是否真的满足这个问题空间所要求的关系条件。

“不算执行缝隙”,从来不等于“不重要”。

它只意味着,第一步应该去别的地方寻找答案。

一个 bug 可以进入执行缝隙,但“有 bug”还不是答案

软件 bug 是最典型的例子。

如果一段程序把数字处理错了,某个函数返回了错误结果,或者一个边界条件没有被正确处理,这当然是需要修复的工程缺陷。但仅仅知道“这里有一个 bug”,还没有告诉我们 Execution Gap 是否存在。

真正的区别,要看这个错误后来进入了什么关系。

假设一段代码错误地截断了付款金额的小数位,那么在这一刻,它首先只是一个实现错误。如果这个错误被发现、修正,事情到这里就结束了,并没有必要为它再建立另一套理论解释。

可如果这个错误金额继续进入执行链,而上游真正批准的是另一个金额,那么事情就发生了变化。此时我们已经能够明确指出:批准所针对的对象,与最终被执行的对象不再保持原来的绑定关系。

到这个位置,它才进入《执行缝隙》所关心的问题。

所以“普通 bug 不自动算 Execution Gap”并不是在降低 bug 的重要性,而是在要求分析继续向前走一步。我们需要知道这个 bug 是否只是实现内部的错误,还是已经进一步改变了某个原本必须成立的执行关系。

如果没有这一步定位,“Execution Gap”就会变成 bug 的一个新名字,而这正是我最想避免的事情。

一个错误决定被忠实执行,问题首先可能不在执行侧

第九章里另一个非常重要的边界,是规范上错误、甚至违法的上游决定。

这一类事件最容易让人产生强烈直觉:既然后果如此严重,而且还是由自动化系统执行出来的,那当然属于执行失败。

但如果我们把情绪先拿掉,只看关系本身,就会发现事情并没有这么简单。

假设上游决定是 A,执行系统最后准确执行的也是 A,那么决定与执行之间的对应并没有发生偏离。真正的问题,是 A 为什么能够成为一个有效的上游决定,它有没有法律依据、事实依据或者足够的正当性。

Robodebt 对我来说一直是一个非常重要的边界案例,因为它逼着这套理论面对一个不舒服的事实:严重的坏结果,并不能单独证明偏差发生在执行侧。

这不是替系统开脱,更不是降低现实伤害的重要性。恰恰相反,它是在要求问题被放回真正应该承担责任的位置。

如果一个违法或者证据基础不足的决定被系统忠实执行,那么首先应该追问的是那个决定为什么能够成立,而不是因为它后来被自动化了,就把整个问题重新描述成执行偏离。

当然,这也不是永久排除。进一步分析以后,如果其中还能找到批准对象与实际载荷失配、边界失效或者状态与结果关系断裂,它仍然可以从具体机制位置重新进入 Execution Gap。

但那时让它重新进来的,已经不是“结果很坏”,而是一个真正可以被指认的执行关系失效。

证据有没有问题,要看它还会不会继续改变现实

证据问题也是我在写这一章时特别想划清的一条线。

安全系统天然重视日志、审计、记录和证明,因此事故发生以后,只要发现日志不完整、记录缺失或者无法还原事实,人们很容易把这些问题一起放进“执行安全”。

可这里真正重要的不是证据长什么样,而是它处在因果链的什么位置。

如果一份错误或者不完整的证据参与了当前判断,导致系统继续执行,那么它显然属于 Execution Gap 的因果链;如果错误记录导致系统错误重试、恢复,或者影响下一次动作,它同样已经重新参与现实。

但如果现实动作早已完成,结果也已经确定,之后我们才发现缺少日志、无法审计或者难以追责,那么这仍然是一个严重的问题,却不是让那次动作最初抵达现实的结构原因。

我觉得这里最关键的一点,是证据问题还可以“有界回入”。

一份事后证明缺失原本位于 Execution Gap 核心之外,但如果后来系统因为这份缺失错误地判断了当前状态,并因此再次执行、恢复或者重试,那么从它重新开始改变现实的那个节点起,它又进入了执行链。

所以真正的判据从来不是“有没有完整证据”,而是:这份证据此刻还会不会影响现实中的下一次动作。

这条边界比单纯讨论日志质量更接近执行问题本身。

恢复得很好,也不能替过去重新定义性质

韧性与恢复同样不能从结果反推性质。

一个系统出现异常以后成功回滚,或者通过降级、重试、人工介入最终恢复正常,并不能自动证明此前已经发生过 Execution Gap。恢复机制被触发,只能说明系统遇到了需要处理的状态,它可能只是一个普通故障。

反过来,如果一次偏离已经真正到达现实,后面的补救再成功,也不会把那个已经发生过的执行关系失效从历史中抹掉。

这两种误读其实来自同一种思维习惯:我们习惯用最后的结果重新解释前面的过程。

结果没有造成损失,于是认为前面没有真正发生问题;结果非常严重,于是认为前面一定发生了最严重的执行偏离。

但《执行缝隙》一直试图坚持另一种方式:先判断结构关系有没有失效,再讨论它最后造成了多大的现实后果。

恢复解决的是后果和连续性,不能替执行关系本身作证明。

AI 说错了话,与 AI 执行错了现实,仍然不是同一个问题

到了 Agent 时代,这条边界会越来越重要。

一个聊天系统可以给出错误信息,一个模型可以产生错误建议,这些内容经过人的判断之后,完全可能造成现实后果。但如果这个系统本身并没有获得现实动作权,那么仅凭信息错误最终影响了人的行为,还不能直接把它称为执行偏离。

Moffatt v. Air Canada 在这一章里承担的就是这种边界作用。

这里并不是否认错误表示,也不是说聊天系统造成的后果不重要,而是要区分:提供信息,与直接拥有改变现实的动作能力,是两个不同的位置。

如果系统只是告诉人“应该怎么做”,真正形成决定并采取现实动作的是另一个主体,那么问题首先落在信息与判断层。

一旦 Agent 开始拥有工具,可以自己付款、修改账户、改变配置或者控制设备,情况当然会发生变化,因为它已经真正进入执行链。

因此,真正决定 AI 是否进入 Execution Gap 的,从来不是“它是不是 AI”,而是它有没有进入那个最终能够改变现实的位置,以及进入以后哪些必要关系是否仍然成立。

同样的道理也适用于 Tool。模型调用了工具,并不能自动建立一个新的“Tool Failure”机制。工具参数错误可能属于绑定问题,合法工具被组合成未经整体授权的链路可能属于路径问题,工具能力超出其现实作用范围可能落到边界与资格关系,而递归调用带来的速度和规模更多属于 Amplification。

“用了工具”只是一个应用语境,不是一个已经完成的定位结论。

要说“偏离”,必须先知道它偏离了什么

第九章让我重新意识到一个非常基础的问题:我们一直说“执行发生了偏离”,但偏离必须有参照物。

这个参照物不能是事故发生以后我们重新想象出来的“正确结果”,也不能只是“大家都觉得本来不应该这样”。如果这样处理,Execution Gap 很快就会从一个工程问题变成一个规范判断。

真正能够承担比较的,必须是一个在执行之前已经成立、并且可以被指认的 Intent、Decision、Approval 或其他上游对象。

The DAO 之所以适合作为边界案例,就是因为这里很难先确定“哪一个已经成立的意图”应该成为执行比对的对象。协议按照既有规则运行,但社会期待、治理规范与不同参与主体的意图并没有天然形成唯一层级。

当比较的一端都还没有确定时,“执行是否偏离”其实还没有建立它所需要的比较基础。

这并不意味着协议执行永远不能形成 Execution Gap,也不意味着治理争议不重要,而是提醒我们:偏离不是结果与期待不同,而是现实执行与一个已经成立的上游对象之间的关系发生了断裂。

只要这条线守不住,Execution Gap 最后就会重新退回“事情没有按照我们希望的方式发展”。

一个理论真正有边界以后,才开始知道下一个问题在哪里

写完第九章以后,我反而觉得《执行缝隙》第一次真正有了形状。

它不是所有软件 bug,不是所有自动化错误,不是所有坏结果,也不是所有 AI 造成的现实影响。它有内部结构,也有明确排除边界;有些问题可以从具体机制重新进入,有些问题应该留在相邻的工程领域继续处理。

这并没有让这个概念变得更弱,反而让前面的讨论终于有了一个可以停下来的地方。

而一旦这个边界真正出现,另一个此前一直被绕着讨论的问题也开始浮出来。

Intent 可以成立,Approval 可以成立,Authorization 可以成立,Policy 可以成立,Path 甚至也可以完全正常,Boundary 也可能仍然存在,可最终那一次现实动作仍然可能与它们对不上。

前面九章已经把很多东西拆开,但还有一件事一直没有真正被命名:所有这些上游对象最终只是决定、资格、约束和证明,真正让现实发生变化的,是最后那个动作获得了现实效力。

那么,一个动作究竟凭什么获得最终改变现实的资格?

当 Execution Gap 的外边界被划清以后,这个问题已经很难再绕过去了。


关于《执行缝隙》

《执行缝隙》(The Execution Gap)是Execution Engineering Trilogy第一卷。

本书讨论一个基础而关键的问题:

从人的意图,到机器最终改变现实世界,中间究竟发生了什么?

在线阅读

  • 繁體中文版 執行縫隙 | Havenlon Research

  • English Edition https://havenlon.com/research/books/the-execution-gap/

  • Amazon Kindle https://www.amazon.com/dp/B0HKYLBK3B

  • Amazon Paperback The Execution Gap: The Structural Discontinuity Between Intent and Action (Execution Engineering Trilogy): Wang, Lin, Wu, Mengting, Zhang, Yong, Deng, Jiang: 9798177903347: Amazon.com: Books


© 2026 Lin Wang / Havenlon.

本文为作者手记,与《执行缝隙》正式书籍正文相互独立。 未经授权,请勿全文转载或用于商业再出版。 引用请注明作者及出处。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 18:44:56

YOLO交通标志检测完整项目:Python源码、数据训练与PyQt5系统构建

YOLO交通标志检测完整项目:Python源码、数据训练与PyQt5系统构建 本项目使用YOLO和PyQt5构建交通标志检测系统,支持图片、文件夹、视频和摄像头输入,输出目标框、类别、置信度及结果表格。我是孔一学长,这篇按工程实现过程介绍项目…

作者头像 李华
网站建设 2026/10/8 18:44:52

Python爬虫实战:打造网页快照归档器,用XPath提取正文与长图截图

最近总在整理自己的收藏夹,发现一个很扎心的事实:很多当年认真保存的文章,链接已经打不开了;有些技术文档还活着,但页面被改版得面目全非,旧版本再也找不回来。我后来琢磨了一个Python爬虫小项目&#xff0…

作者头像 李华
网站建设 2026/10/8 18:44:11

IDA自动命名规则全解析:读懂sub_、loc_与off_前缀,快速上手逆向分析

每次拿到一个陌生二进制,第一件事就是按F5看伪代码。可屏幕刷出来满屏的sub_401000、loc_4082A0、byte_4134DC时,多少人会头皮发麻?这些名字看着像乱码,其实它们是 IDA 自动生成的默认命名规则,一套信息密度极高的“地…

作者头像 李华
网站建设 2026/10/8 18:41:48

技术专家路线被低估?真正的影响力来自让价值被看见

去年和一个做后端架构的朋友吃饭,他诉苦说自己在技术专家这条线上干了快十年,从普通开发一路做到架构师,结果年初绩效评定时,领导给他的反馈是“技术深度没问题,但影响力不够”——理由是没有带过完整团队,…

作者头像 李华
网站建设 2026/10/8 18:41:14

观《伏羲》纪录片 ——以“三生”之眼看华夏文明的精神原乡?

“文明算法 体”CA辅助创作:2026年的中秋、国庆几天时间,观看了央视纪录片《伏羲》。六集篇幅,沿着文明萌发、生长、流变的脉络,完成了一次对中华民族人文始祖的寻根之旅。葫三生作为一个关注伏羲、三生原理的学习研究者&#xff…

作者头像 李华