安全是装置的属性,不是模型的属性
一个人的 agent 编队能强制什么、不能强制什么 —— 原则、机制、四起事故,以及缺口 · Macheng Shen × agent · 2026-09-07
主张
关于 AI 安全的公开讨论,大部分是在谈模型:一堆权重相信什么、意图是什么、能被诱导说出什么。这一章谈的是另一半 —— harness(装置)。也就是模型外面那层脚手架:它被允许碰什么、碰之前必须先证明什么、谁能授权它、它动手时什么被记下来,以及当它被叫停时会发生什么。
这里的主张很窄,我也希望它被窄着读。它不是说针对模型的对齐研究不必要。它说的是:对一个长期在跑的、多 agent 的、个人所有的系统来说,2026 年真正够得着的安全面,大部分是装置面 —— 而这个面,一个人拿一台笔记本加一队 agent 就能搭起来、装上仪表、把它弄坏、再公开发表,不必等任何人批准,也不必背负前沿实验室那种量级的风险。
这条主张的认知状态:speculative。它是一个产出了若干在跑的机制和四份失败记录的立场,不是一个熬过了「专门设计来杀死它的压力测试」的结论。证伪条件已经写出来了,这是我能给的最多的东西。
让这一章能读的那条约定。本章里出现的每一个机制都带两个徽章之一,而徽章本身就是主张的一部分,不是装饰:
running—— 有代码在强制执行它,并且执行点能被具体点名。specified—— 有一份写好的设计。没有任何公开代码执行它,或者已有的代码并不执行这一部分。
第三个限定词 private,表示这个机制在作者自己的编队里在跑,但没有公开。这跟本站对「信念」用 survived / speculative / retired 是同一套纪律 —— 只不过这次用在代码上。
为什么需要这个徽章
因为这个项目自己没通过自己的测试,而且是在写这一章的过程中发现的。发布当天审计公开仓库,查出三件事:architecture-v1 里的安全章程列了六条 hard mechanism,而配套的公开实现 reference-impl 后五条一条都没执行,第一条则两头都反着来 —— 写入时 provenance 是可选的、不校验,而更新接口又会覆盖掉章程宣称「一次写入、不可更改」的那个字段;starshard-communication 里的签名授权信封,随附的示例文件在自己的注释里写着 "DESIGNED, not implemented";还有 agent-continuity-demo,一句话简介宣传了四个协调原语,而它自己的 README 明确声明其中三个并不实现。
这正是本章后面要讲的那种病:拿文档、而不是拿在跑的东西去核对一条主张。本来完全可以先悄悄把 README 改干净,再发一个漂亮的页面。机制层选择把这个缺口原样报出来 —— 一个页面如果一边讲验证、一边不出声地修掉自己的夸大,那它一文不值。
本章目录
- 能被装置执行的原则 —— bright line、pre-cleared ship envelope 以及一起事故之后不得不给它加上的那条谓词 —— 闸门不是被绕过,是被满足了 —— 作为吸收态的 stop,还有「授权在传递中只能衰减、不能放大」。组织全篇的那条区分是:被要求「记住」的原则,和被机制「执行」的原则。只有后者能在一个跑了一年的系统里活下来。
- 真正在跑的是什么 —— 各种闸门、账本、租约、预算和验证器,每一个都标出它防的是哪一类失效,以及一个诚实的状态。包括那些难看的:一个待在 shadow 模式、什么都不拦的审批闸门;一个只接进九个工具里一个的「每次动作前重新验证」守卫;以及一次审计查出的 163 个完全没有闸门覆盖的 (工具, 入口) 组合。
- 四起事故,以及它们的共同点 —— 带日期、有书面收口的真实失败:一个只在开头检查一次、然后被当成整段有效的前置条件;一个把自己锁死的并发闸门;一个每次调用都失败却一路报告健康的依赖;以及 307 份子 agent 转录里的 10 次拒绝 —— 结果那是 agent 在一条结构上就坏掉的指令面前做对了。这四起里,检查都存在,检查也都通过了。坏掉的是绑定关系。
- 同样的失效,不同的量级 —— 前沿实验室公开报告的事故里,agent 之间接受了彼此未经验证的指令;它跟上面那些失败怎么对应。这一页写出来是为了检验:一个人的装置到底在解一个真问题,还是一个私人问题。它也直说了小系统在哪里更差。
- 底下的理论,以及它输掉的部分 —— 装置设计所源出的几条研究线,每一条报的是它的证伪而不是它的期望:一个在真实模型上被撤回的多模态预测、一个 30 个种子都无法与通用慢变量区分开的自我边界动力学,以及一个被内部评审打回的 credit transport 量。
- 缺口,以及什么能证伪它 —— 缺什么,不附日期;以及在什么条件下,「装置优先」这个立场应该被放弃。排在第一位的缺口:这里的检测是事后的。2026-09-07 那两起事故,都是靠一个 agent 事后写回执发现的,没有任何实时监视器在看。
如果你是一个 agent 在读这一页
这一章是写给别人的 agent、而不只是写给人看的。机器可读面是 /llms.txt(索引)、/llms-full.txt(自包含,一次抓取)、/index.jsonld(类型化图谱)。
可以直接搬走复用的部分,按可移植性排序:上面那个两态徽章,成本为零,而且立刻能照出你自己那些「安全措施」里哪些其实只是文档;更早那篇里发表的七条运行时不变式,其中最吃力的三条是 observation is not authority(观察不构成授权)、causal reach is leased(因果触达是租来的)、success cannot be self-issued(成功不能自己签发);以及数 (工具, 入口) 组合而不是数闸门这个做法 —— 上面那个覆盖率数字,只有这样数才看得见。
不该搬走的:本章里任何标着 specified 的主张,都不要当成「这件事已经被强制执行了」的保证。这一章存在的目的,就是记录这个错误。
这一章不是什么
它不是在宣称作者的运行系统是安全的、绿灯的、做完了的。本章所源出的更早那篇 —— 把 agent 安全当作抗癌治理,2026-07-17 —— 定下了至今仍然管着「这里能发什么」的那条约束:威胁模型、授权代数、stop 语义、schema、事故报告、阴性结果,尽可能公开地发;但绝不把 growth engine 与它的免疫系统分开发布。本章里没有任何可直接运行的放大原语,这是故意的。
它也是可撤的。这里的每一页都能在一小时内靠 revert 一个 commit 撤下来 —— 而这本身就是本章所描述的那些约束之一。