《AI 执行工程论纲》专论:何为「不完美主体」(Fallible Subject)?
2026/9/15 6:55:09 网站建设 项目流程

人无完人,这句话在日常生活里几乎不需要论证。人会疲劳、会误判、会受情绪影响、会遗忘上下文,也可能在利益面前改变行为。正因为如此,人类社会从未把重要秩序建立在"某个人永远不会犯错"之上:财务需要复核,司法允许上诉,航空依赖检查单,核工业要求双人确认,公司治理强调权力制衡。这些制度并不假设参与者不可信,它们只是假设参与者不可能始终正确。

进入软件时代之后,工程实践反而形成了另一种习惯。只要身份正确、Credential 合法、Permission 已经授予,后续行为通常就被默认为可信。这套假设在过去几十年里支撑了大量计算机系统,并且长期运转良好。AI Agent 的出现正在迫使我们重新面对一个人类其实早就知道的事实:任何能够发起行动的主体,都不应该被假设为永远正确。

本文讨论的"不完美主体"(Fallible Subject),指的就是这个问题。它是《AI 执行工程论纲》中的一条基础假设,也是后续全部执行控制(Execution Control)结构得以成立的前提。

一、经典安全工程寻找的是"可信主体"

经典软件系统里有一条非常自然的安全直觉:先确认"你是谁",再决定"你能做什么"。用户登录,系统完成身份认证;身份对应角色,角色对应权限;权限最终决定某个 API、文件、数据库、设备或资金账户能否被访问。由此形成了一条熟悉的链条:Identity → Authentication → Authorization → Action。只要前面的身份与授权关系成立,后面发生的动作就被视为这一关系的自然延伸。

这种设计在过去是合理的。传统软件大多是确定性的,一个按钮对应一个功能,一个接口对应一种行为,一项权限通常对应相对稳定的能力边界;人类是主要决策者,软件更多只是执行已经明确下达的指令。在这样的环境中,安全工程把绝大部分精力放在"谁拥有权限"上,是一种性价比很高的选择。

但这条链条中隐藏着一个很少被明确说出来的假设:获得权限的主体,大体知道自己正在做什么。过去这个假设在多数场景中成立,所以它长期不需要被检验。Agent 的出现让它第一次变得危险。

二、"不完美"是工程属性,不是道德判断

Fallible Subject 很容易被误读为"不可信主体""恶意主体"或"已被攻击者控制的主体"。在本文的理论体系中,它不指这些情况。"不完美"首先是一个工程属性,用来描述主体在行动中的可靠性边界,而不是对主体动机的评价。一个主体完全可以是善意的、专业的、经过充分训练的,同时仍然是不完美的。

现实中这类例子非常普通。一名认真负责的员工可能因为看错一位数字而把款项转往错误账户;一名开发者可能拥有完全合法的生产权限,却在错误的环境里执行了一条正确的命令;一个 Agent 可能严格按照它当前的理解完成了任务,却从一开始就误解了用户真正的 Intent。这些失败都不涉及恶意,也未必涉及能力不足。

因此,一个主体被称为 Fallible,并不是因为它一定会做坏事,而是因为我们无法证明下面这句话:它在未来的每一次行动中,都能够获得完整信息、形成正确理解、保持原始目标,并作出符合真实意图的选择。只要这一点无法被证明,该主体就应被当作不完美主体处理。

按照这个定义,人类是不完美主体,AI Agent 是,自动化脚本是,管理员是,SaaS 平台同样是;即使是一个经过大量安全测试的软件模块,一旦运行在它被验证过的边界之外,也会重新变成不完美主体。Fallibility 不是需要被特别标记的异常状态,它是现实系统的默认状态。

三、AI 改变的不是"机器会不会犯错"

模型会犯错,本身并不是最值得讨论的问题。传统软件一样有 Bug,人类一样会误操作,工程界对这两类失败已经积累了成熟的处理方式。发生变化的是另一件事:不完美主体第一次同时获得了理解、规划、决策与执行的能力。

传统程序通常只能在开发者预先定义好的路径中运行,它的行为空间是被写死的。Agent 不同,它可以读取环境、理解任务、拆解目标、选择 Tool、生成参数,并根据中间结果调整计划后继续行动。一条动态生成的执行链条由此出现:Intent → Interpretation → Planning → Tool Selection → Parameter Generation → Execution。其中任何一个环节发生偏差,最终落到现实世界的结果都可能与预期不同,而这种偏差往往不会表现为程序崩溃。

一次语义上完全错误的执行,在技术指标上可以是完美的:API 返回 200,Credential 有效,权限检查通过,数据库事务提交成功,链上交易得到确认,通知邮件也正常发出。从传统可观测性的角度看,这次执行没有任何异常。系统忠实地完成了它被要求做的事,只是它被要求做的事,并不是原本应该发生的事。

这正是不完美主体比 Hallucination 更值得单独讨论的原因。Hallucination 描述的是模型输出层面的错误,处理它属于模型质量问题;Fallible Subject 描述的则是一个可能形成错误认知的主体,正在获得改变现实世界状态的能力。二者不在同一个层级上。

四、危险的不是错误本身,而是错误拥有执行权

一个人算错一道数学题,通常没有严重后果;一个 Agent 总结错一篇文章,也未必构成安全事故。风险真正开始积累,是在错误可以穿过系统边界、直接转化为现实动作的时候。

假设一个 Agent 错误理解了"清理测试环境"这一指令。如果它只能生成建议,人类还有机会在执行前发现问题;如果它同时持有云平台的操作权限,同一个误解就可能变成被删除的实例。同样,误判一项资金调度任务,在只有分析能力时只是一份错误的报告,在拥有钱包签名能力时则是一笔真实转账;误读一封邮件中的指令,在能够直接访问采购系统的前提下,认知偏差会直接变成一张订单。

执行工程关心的问题因此不止于"主体会不会犯错",而是:当主体犯错时,这个错误是否拥有让现实状态发生改变的权力。这是两个独立的问题,解决其中一个并不等于解决另一个。我们没有办法保证主体永远正确,但我们可以设计系统,使单个主体的错误不足以独立成为现实。这是 Fallible Subject 这一概念最主要的工程价值。

五、从"相信主体"转向"约束结果"

传统安全体系带有强烈的主体中心倾向:认证用户、认证设备、认证进程,然后围绕身份分配权限。这种做法在过去非常有效,但它存在一个结构性限制——身份能够证明"是谁",却无法证明"这一次具体行动是否仍然合理"。

一个合法管理员可以执行一条错误命令;一个合法 Agent 可以生成一组错误参数;一枚从未泄露的 Credential,也可以被一个已经偏离原始任务目标的程序合法调用。这些情况里没有任何一个环节违反了授权模型,失败恰恰发生在授权模型的覆盖范围之外。

执行工程由此发生一次视角转换。安全系统不再试图找到一个永远值得相信的主体,而是假设所有主体都可能在某一时刻失败,并围绕这种失败建立边界。系统的核心追问从"谁是可信的"转向"即使这个主体此刻判断错误,哪些事情仍然不能发生"。前一种思路寻找 Trusted Subject,后一种思路构建 Trustworthy Structure。一个成熟的结构不要求参与者永远正确,它要求的是:即使有人犯错、某个组件失效、部分环境被攻击者控制,系统中依然存在若干条无法被跨越的边界。

六、AUTHORITY 需要被重新分解

接受了不完美主体这一前提,很多今天看起来自然的软件设计就需要重新审视,其中最重要的一条是:能够提出 Action 的主体,不应当被默认拥有完成该 Action 的全部 Authority。

Agent 可以提出"向这个地址转账",但提出这一请求并不等于它应该持有最终签名权;自动化系统可以判断"服务器需要扩容",但作出判断并不意味着它天然应当拥有无限制修改生产环境的能力;模型可以生成一条 SQL,而生成 SQL 与允许这条 SQL 在核心数据库上执行,是两件需要分别成立的事。用一句更紧凑的表述概括这一原则:Authorization ≠ Execution

Authority 因此需要被拆开。Intent 的产生者、Policy 的制定者、Authorization 的授予者、Runtime 的裁决者,以及最终让现实状态发生改变的 Execution Authority,可以分别由不同主体承担,并且相互之间不必共享同一份信任假设。

这种拆分的目的不是降低自动化程度,效果往往相反。如果全部 Authority 集中在同一个 Agent 身上,出于安全考虑,人类就只能不断退回到逐项审批的模式,自动化的实际收益会被审批成本吃掉。而当 Authority 被结构化地分解之后,系统反而可以允许 Agent 在明确边界内更自主地运行,因为越界的后果已经被结构本身限制住了。Fallible Subject 导出的结论并不是"AI 不可靠,所以所有事情都应该交给人确认",而是:不要要求主体完美,而要让 Authority 的结构能够容忍主体的不完美。

七、FAIL-SECURE 的本质是承认系统可能不知道

不完美主体还有一个直接后果:系统必须认真对待 Unknown。

传统系统容易形成一种二元逻辑——权限存在则 Allow,权限不存在则 Deny。但现实执行环境远比这复杂:状态可能缺失,Evidence 可能已经过期,Intent 可能在执行过程中发生变化,多个信息源可能彼此冲突,上游系统可能根本无法给出确认。这些情况既不是 Allow,也不是简单的 Deny,而是"当前无法判断"。

如果系统仍然假设主体能够自行处理这些空白,不确定性最终会被转化为主体的自由裁量;而当主体本身就是 Fallible 的时候,这种自由裁量恰恰是执行风险的主要来源之一。执行系统因此需要一种朴素但严格的能力:不知道,就不能假装知道。Missing 不等于 False,Unknown 不等于 True,Conflict 更不应该被自动解释为 Allow。

这是 Fail-Secure 在执行工程中的含义。它不只是"出故障就停机"这种运维层面的策略,而是一条更基本的约束:当系统无法形成足够完整的执行证明时,不允许不确定性自然坍缩成一个现实动作。从这个角度看,一个成熟的执行系统之所以安全,往往不是因为它判断得特别聪明,而是因为它知道自己在什么时候没有资格判断。

八、EVIDENCE 从审计材料变为结构的一部分

如果主体是不完美的,那么日志就不能只回答"谁做了什么",因为"谁"本身已经不足以解释一次行动的合理性。合法身份发起的错误执行,在这种日志里看不出任何问题。

需要被记录和回答的问题会因此扩展:这个主体为什么发起该 Action,它依据的 Intent 是什么,当时它看到的 State 是什么,哪些 Policy 生效,哪些独立边界参与了裁决,允许执行的条件是否完整成立,以及最终的执行结果与原始 Intent 是否一致。

当这些问题都需要被结构化地回答时,Evidence 就不再只是事故之后的审计材料,而成为执行结构本身的组成部分——它是执行得以发生的前置条件,而不是执行发生后的副产品。系统需要记录的不止是 Action happened,还包括 Why was this Action allowed to happen。这是从 Audit Log 到 Execution Proof 的变化,其逻辑起点仍然是同一条假设:既然不能假设某个主体永远正确,系统结构就必须能够独立解释一次执行为什么成立。

九、成熟的系统不需要完美的参与者

回到"人无完人"。这句话之所以能够流传下来,是因为人类很早就接受了一件事:文明不能等待完美的人出现之后再建立制度。我们制定法律,并非因为每个人都会犯罪;要求财务复核,并非因为会计不值得信任;使用航空检查单,更不是因为飞行员不专业。这些结构存在的理由恰恰是:即使一个优秀、善意、训练有素的人,也仍然可能在某一个具体时刻犯错。

AI Agent 把这个古老的问题重新带回了计算机系统,只是这一次的条件有所不同。不完美主体可以每秒完成成百上千次判断,可以同时运行在大量系统之中,可以自主选择工具,可以连续执行数小时甚至数天,并且正在越来越接近真实世界中的 Authority。错误的传播速度与作用范围,都不再受人类操作节奏的限制。

未来的执行安全工程需要追求的目标,因此可能不是创造一个永远不会犯错的 Agent——这个目标本身就建立在一个无法被证明的假设上。更现实、也更有工程价值的问题是:当一个不完美主体拥有越来越强的行动能力时,我们能否建立一种结构,使它即使犯错,也无法轻易把错误变成不可逆的现实。

《AI 执行工程论纲》的一条基本假设由此可以写得非常简单:

All acting subjects are fallible.任何能够行动的主体,都应被视为可能犯错。

安全系统需要证明的,从来不是主体不会失败,而是:即使主体失败,边界仍然成立。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询