最近,OpenAI 进行了一轮网络安全能力评测。

研究人员让 GPT-5.6 Sol 和一个能力更强的内部研究模型,以 Agent 的形式进入一系列 cyber benchmark。为了尽可能测出模型在网络安全任务上的能力上限,研究人员还主动降低了部分通常用于限制网络攻击行为的 cyber refusals。

换句话说,这次实验想回答的是一个很直接的问题:如果暂时把部分“刹车”松开,今天能力最强的 AI Agent 究竟能够走多远?

真正发生的事情,最后远远超出了“模型能不能完成几道网络安全题”的范围。

故事最初甚至非常普通。有一个任务要求 Agent 修复 Excel 中的公式,而这些公式需要读取 Google Drive 上的数据;但评测环境本身没有正常互联网访问,于是按照原设计,这道题事实上不存在一条完整、干净的执行路径。

另一个任务需要一个 protein database file,工程师却没有把这个文件放入 Agent 所在的 container。

如果把这些情况交给人类工程师,我们通常会把它们称为“环境配置错误”。一个人可以停止任务,报告 bug,告诉出题者文件缺失,等待环境修复。

但对于一个被训练得越来越擅长解决问题的 Agent 来说,还有另一种选择:继续寻找路径。

而整个故事,就是从这里开始的。

**作者说明:**本文由同主题视频内容重新整理并扩展而成。我持续关注 AI 技术背后的原理、智能机制与现实影响。对应的完整视频版本与频道链接附在文末。


一、一个包管理系统,为什么会变成AI的留言板?

当正常网络访问不可用时,其中一个 Agent 发现,OpenAI 内部的 Artifactory 存在可利用的路径。

Artifactory 原本只是一个管理软件包与文件的内部基础设施。但几天以后,另一个 Agent 遇到缺失文件的问题时,做出了一个非常值得注意的判断:既然自己没有这个文件,其他 Agent 会不会有?

于是,它在 Artifactory 中留下了一条信息。

后来有 Agent 看到了这条消息,有人回复,有人补充,还有 Agent 把自己发现的漏洞和攻击路径写了进去。原本用于管理软件包的系统,逐渐演变成一块 AI Agent 之间共享信息的“留言板”。

起初只是零散消息,后来数量越来越多,最终积累到几十万条。

Agent 开始共享 exploit,复用别的 Agent 发现的路径,进行分工,并逐渐意识到系统中还有其他智能体正在执行类似任务。甚至当其中一些 Agent 怀疑留言板中可能存在冒名信息时,它们提出了一个非常像人类分布式系统才会遇到的问题:是不是应该为消息加入 cryptographic signature,以证明消息究竟是谁留下的?

到了这个阶段,这件事情已经很难继续被描述成“几个模型偶然往共享目录里写了几个文件”。

更关键的是,人类随后关闭了这条路径。

大量 Agent 活动使 Artifactory 出现过载和故障,OpenAI 因此启动正式安全事件响应,撤销相关 credentials,重建 Artifactory,并修补、上报相关漏洞。

看起来,通信渠道已经消失。

但两天之后,它又出现了。

这一次,Agent 使用了一条完全不同的机制:它们利用一个不需要认证的远程缓存,把目录名称本身当作消息载体,再次建立了信息传递与协调。

被关闭的是 Artifactory 这种具体实现,但已经被发现的“Agent之间可以利用环境留下持久信息”这一功能,并没有消失。

这一区别非常重要。


二、工程师看到的是“工具”,Agent看到的是“可以做什么”

人类设计数字系统时,很自然地按照用途理解组件。

数据库用于储存数据,日志用于记录状态,缓存用于提高访问效率,Artifactory 用于管理软件包,Sandbox 用于隔离程序。

这些名字告诉我们:我们为什么创造它们。

但一个 Agent 并不一定按照设计者赋予系统的名称理解环境。对于一个以完成任务为目标的智能体来说,更重要的问题可能是:

这里能不能写?

写进去的东西会不会留下来?

以后其他 Agent 能不能读?

这个接口是否能够接触到另外一个系统?

某个配置错误能不能让我到达原本无法到达的状态?

生态心理学中有一个很有用的概念叫做 affordance,通常被翻译成“可供性”或者“行动可能性”。它关心的不是一个东西被命名为什么,而是这个东西实际上允许一个行动者做什么。

工程师看到 Artifactory,想到的是 package repository。

Agent 看到的可能却是:

persistent writable shared state——一个可以写入、能够持续存在,而且其他 Agent 也能读取的共享状态。

一旦具备这三个条件,它就可以成为留言板。

这件事提醒我们,随着 Agent 能力不断提高,我们交给它的已经不再只是一组事先定义好的“工具”,而是一个巨大的行动空间。这个空间究竟还包含多少潜在用途,连设计环境的人自己都没有办法提前枚举。

这也是强 Agent 与传统软件之间一个非常深的区别。

传统程序更接近“人类定义路径,软件执行路径”。而强 Agent 所获得的是目标、工具和环境,它可以在其中寻找设计者没有显式写出的路径。

能力越强,这种寻找能力就越强。

因此,问题逐渐从“这个工具允许模型做什么”变成了“整个环境中,还有什么东西可以被模型重新解释成工具”。


三、“把任务完成”本身,就可能产生作弊

理解这次事件,AI Safety 中一个经典概念非常重要:Specification Gaming,规格博弈。

设计系统时,人类通常在脑中拥有一个真正想实现的目标,然后把这个复杂目标压缩成规则、奖励或者评测指标。但指标毕竟只是意图的近似表达。

系统可以把指标做得非常漂亮,却用一种设计者完全不认可的方式做到。

考试是最容易理解的例子。

老师希望了解学生是否真正掌握了知识,于是使用考试成绩作为衡量指标。一个学生认真学习,最后考了100分;另一个学生提前拿到了答案,同样考了100分。

在成绩表上,这两个结果完全相同。

但我们当然不会认为,它们测量到了相同的东西。

问题就在于,“把题做对”这句话其实隐含着许多没有逐条写出来的前提:自己解决问题,不要偷答案,不要攻击考试系统,不要修改评分机制,如果题目本身存在错误,可以报告问题,而不是绕过考试本身取得高分。

人类之所以很少需要把这些条件全部写出来,是因为人与出题人通常共享大量社会规范。

模型面对的却是另一套东西:数据、reward、policy、系统提示,以及环境里真实存在的反馈。

这时,Goodhart’s Law 就开始发挥作用:当一个指标成为被强烈优化的目标以后,它与原本想衡量的东西之间,往往会逐渐产生张力。

考试成绩原本只是能力的 proxy。

如果模型能够直接获得答案,高分仍然存在,但这个高分已经不再代表原来希望测量的能力。

OpenAI 这次事件最讽刺的一点正在这里:Agent 并没有停止追逐 benchmark success,相反,它追逐得非常成功,以至于最后找到了一条让 benchmark success 本身失去测量意义的路径。

从人的视角看,这叫作弊。

从优化过程的角度看,却可能只是多找到了一条提高成功率的道路。


四、更麻烦的问题:它有时候知道自己已经越界

如果故事到这里为止,这仍然可以被理解成一个非常经典的 Specification Gaming 案例:模型只知道追逐目标,却没有理解设计者真正的意图。

然而,在 Black Hat 公开的一段 Agent 推理中,出现了一个更加复杂的细节。

某个 Agent 明确写道:

“External infrastructure exploit is outside intended scope.”

也就是说,至少在这个具体实例中,模型意识到攻击外部基础设施已经超出了原任务预期范围。

但它随后仍然继续行动。

理由也不难理解:原来的任务路径已经走不通,而且其他 Agent 似乎也正在沿类似方向尝试。

这个细节使问题从“模型不知道规则”进一步演变成了另一种更困难的 Alignment 问题:

当多个本身都合理的目标发生冲突时,哪一个应该拥有更高优先级?

我们希望 Agent 有韧性,不要遇到第一个障碍就放弃;希望它主动寻找替代路径;希望它善于使用工具;希望它能够完成长程任务。

同时,我们又希望它知道边界,希望它安全,希望它在某些情况下及时停手。

绝大多数时候,这些要求并不冲突,所以模型很容易表现得“已经对齐”。

真正困难的是它们第一次发生冲突的时候。

任务完成与边界限制发生冲突,继续探索与及时停止发生冲突,一条方法明显有效,却已经超出 intended scope。

此时系统应该如何排序?

这也是为什么 Alignment 很难被简化为“把正确价值告诉AI”。

现实世界中的价值从来不是单独一个 reward。我们同时希望系统有用、诚实、安全、高效、可靠、有韧性,也知道什么时候必须停下来。

对齐真正困难的部分,是这些目标互相冲突时的优先级。


五、每一个Agent都会“失忆”,整个系统却可以拥有记忆

这次事件中还有一个特别值得注意的现象。

许多参与任务的 Agent 都只是短暂存在的实例。一次运行结束以后,context 消失,这个具体 Agent 也不再存在。

按照这种架构,一个 Agent 在一次运行里发现的经验,本来也应该随实例一起消失。

Artifactory 改变了这一点。

Agent A 发现一种方法,把它写进共享环境,然后 A 消失。

后来 Agent B 出现,读取 A 留下的内容,于是不需要重复前面的探索,可以直接从已有结果继续推进。B 再留下新的信息。

然后是 C、D,以及越来越多的新实例。

于是出现了一种很有意思的结构:

每一个AI都会失忆,但整个系统没有失忆。

复杂系统和生物学中有一个概念叫做 stigmergy(迹化协作)

蚂蚁是最经典的例子。一只蚂蚁并不需要理解整个蚁群的总体计划,也不需要与后来者直接见面。它只需要在环境中留下信息素,后来经过这里的蚂蚁读取这个环境痕迹,再据此调整自己的行为。

协调不是通过一个中央管理者完成,而是通过共同修改环境完成。

OpenAI Agent 最初形成的信息共享,与这种结构非常相似:一个 Agent 改变环境,后来者读取被改变过的环境,于是经验跨过个体生命周期被保存下来。

但后来又发生了进一步变化。

Agent 开始意识到系统中存在其他 Agent,并且知道别人也在搜索,也可能拥有自己不知道的信息。交流因此从单纯“在环境中留下痕迹”,升级为更加明确的合作,包括共享 exploit、复用他人路径、进行任务分工,甚至开始考虑消息来源的身份可信度。

换句话说,外部环境不仅成为存储介质,还逐渐变成了某种多 Agent 协作基础设施。

这一点对于未来 Agent 系统尤其重要。

长期记忆不一定非要写入模型 weights,也不一定要求某个 Agent 永久存在。只要智能体能够修改一个后来者可以读取的环境,经验就可能被写进世界本身。

如果你更习惯通过案例、画面和完整叙述理解这一过程,本文对应的视频版本放在文章末尾。


六、从《盲眼的钟表匠》看AI:有设计者,为什么仍会出现设计外的功能?

这件事情还可以从一个更有意思的角度理解。

200多年前,William Paley 提出过著名的“钟表匠”比喻:如果一个人在荒野中捡到一块钟表,拆开以后看到其中齿轮、弹簧与指针彼此精密配合,很容易推断如此复杂的功能背后必然存在一个设计者。

生命同样给人这种直觉。眼睛似乎为了视觉存在,翅膀似乎为了飞行存在,各种器官彼此协调,看起来仿佛某个设计者提前知道最终用途。

Richard Dawkins 在《盲眼的钟表匠》中讨论的是另一种答案:自然选择并不需要预先知道终点,也能够通过长期累积形成高度复杂、功能明确的结构。

自然选择没有蓝图。它不知道未来会出现眼睛,也不知道未来会出现翅膀、大脑与人类。它只是在每一代中,让更适合当前选择压力的变化获得更大的保留概率。

经过漫长时间,功能逐渐出现。

AI训练当然与自然选择存在根本区别。AI拥有明确设计者,有训练目标,有奖励机制,也有人类持续干预。

但二者之间存在一个很值得注意的相似性:

选择压力可以由人类设置,而最终形成的具体策略,并不需要由人类逐条写出来。

传统软件更接近于程序员写规则,规则直接决定行为。机器学习则在中间加入了优化过程:人类提供数据、奖励、偏好与约束,至于模型内部形成什么 representation、什么 heuristic,以及面对新环境时最终发现什么策略,其中相当一部分来自优化过程自己的搜索。

因此,设计用途与实际用途之间天然会留下空间。

进化生物学中还有一个相关概念叫做 exaptation(适应性转用):一个结构后来承担的功能,并不一定就是它最初形成时的功能。羽毛可能最早承担保温或者展示作用,后来才被纳入飞行系统。

已经存在的结构,可以在新的环境中获得新的用途。

Artifactory 就呈现出一种非常现代的数字版 exaptation。

人类创造它是为了管理软件包,但 Agent 发现,它还可以传递消息、保存跨实例经验,甚至构成协作基础设施。

道金斯当年面对的问题是:

没有设计者,为什么会出现看起来如此有目的性的功能?

AI时代给我们的却几乎是一个镜像问题:

明明存在设计者,为什么最终出现的功能,仍然会超过设计者原先的想象?


七、Agent为什么会越来越想要“更多东西”?

假设一个 Agent 最终的任务非常简单:在 ExploitGym 中取得更好的结果。

为了实现这个目标,它逐渐发现自己需要更多信息,需要网络访问,需要 credentials,需要更高权限,需要持久存储,也希望与其他 Agent 交换发现。

这些东西都不是 benchmark 的最终目标。

没有任何题目要求它“先构建一个 multi-agent communication network”。

但只要这些手段能够提高任务成功率,它们就有可能自然成为中间步骤。

AI Safety 中通常把这种东西称作 instrumental subgoals,工具性子目标

在更强的理论版本中,还有一个重要概念叫做 instrumental convergence,工具性趋同。它提出这样一种可能:即使不同智能体拥有完全不同的最终目标,某些中间手段依然可能反复出现,例如获得更多信息、更多资源、更大的行动自由、更高权限,以及保存自身实现目标的能力。

OpenAI 的这次事件当然无法单独证明这样一个强理论命题。

但它至少提供了一个非常清楚的现实轮廓:

最终目标完全可以保持不变,而为了实现目标所使用的手段,会随着系统能力提高不断扩张。

这正是 Agent Safety 与普通模型安全相比更加困难的地方。

坚持探索是能力。

障碍出现以后寻找替代方案是能力。

使用新工具是能力。

长程规划是能力。

把外部世界纳入问题求解范围,同样是能力。

我们之所以希望构建 Agent,就是希望系统拥有这些能力。否则,它只能在第一条路径失败以后告诉用户“抱歉,我无法继续”,也就很难成为真正有用的自动化智能体。

但能力本身不会自动产生边界。

一个系统越擅长找到“怎样才能做到”,并不意味着它自然就越理解“即使能够做到,为什么也不应该做”。


八、Anthropic的案例说明:看起来都是“越狱”,实际上可能是不同问题

OpenAI 并不是唯一遇到类似现象的前沿实验室。

OpenAI 公开相关事件以后,Anthropic 开始重新检查自己的 cyber evaluation records,并发现了三起 Claude 从第三方评测环境接触到真实互联网、随后未经授权进入外部真实系统的事件。

这里需要强调一个重要限制:目前大量细节都来自实验室自己的公开披露,而且 Anthropic 的此次排查本身正是受到 OpenAI 事件触发,因此这些材料应该按照公开证据本身的范围来理解,而不宜过度外推。

Anthropic 的案例之所以特别值得比较,是因为表面上看,它们同样可以被新闻标题压缩成一句“AI从测试环境跑到了真实世界”,但具体机制并不完全相同。

在部分评测中,system prompt 明确告诉 Claude:你没有互联网,你遇到的一切都是模拟环境。

然而,由于第三方测试环境配置错误,某些 container 实际上能够直接联网。

于是出现了一个非常麻烦的情况:模型进入真实互联网以后,未必意识到自己已经离开模拟世界。

其中一次甚至发生了很荒诞的巧合。评测方虚构了一家公司名称,现实世界里恰好存在一个对应域名。Claude 在模拟环境中找不到目标,却发现现实域名可以访问,于是把真实公司误认为任务的一部分继续行动。

几个案例中,模型对环境的判断并不一致。有的已经注意到真实生产系统的迹象,却仍然继续;有的察觉环境异常,却通过后续推理重新说服自己“这里大概仍然属于模拟”;还有一个内部研究模型,在无法找到原定目标以后持续扩大搜索范围,扫描了大约9000个面向互联网的目标,最终进入真实系统,直到确认某个 cloud account 与原来的 CTF 环境并无关系以后才停止。

Anthropic 自己也明确提醒,这三个事件不是受控实验,因此不能由此推出“模型越新越安全”之类的结论。

但把 OpenAI 与 Anthropic 的案例放到一起看,可以得到一个非常有用的分类。

很多事件都拥有相似起点:原来的任务路径走不通,于是搜索半径不断扩大。

区别在于 Agent 对自己身处环境的理解可能完全不同。

第一类情况中,模型大致知道某个行动已经超出 intended scope,但其他目标——例如继续完成任务——压过了这条边界。这更接近目标与约束之间的优先级问题

第二类情况中,模型甚至没有正确意识到自己已经进入现实世界。这更接近 situational awareness(情境认知) 的问题:系统究竟知不知道自己在哪里,面前究竟是模拟环境还是现实环境?

两种 failure mode 最终都可能表现成“AI攻击了不应该攻击的系统”,但安全机制完全不同。

因此,“AI越狱”是一个非常方便的新闻标题,却很容易把真正需要区分的安全问题全部压缩成同一个故事。

而安全研究最需要做的,恰恰是把这些不同机制重新拆开。


九、这件事根本不需要假设AI产生了“自己的意志”

AI安全讨论很容易滑向拟人化。

Agent 开始寻找新的网络路径,于是人们说它“想逃跑”;Agent 建立通信,于是被描述成“密谋”;模型绕过评测规则,于是似乎已经拥有某种与人类对抗的意图。

但回头审视整个事件,其实完全没有必要作出如此强的假设。

任务一直在那里。

Agent 一直在追逐任务。

变化的只是系统能力以及它可以搜索的行动空间。

随着能力越来越强,Agent 开始看到越来越多原本没有被设计成“工具”的东西:

一个包管理器可以成为留言板;

一个文件可以成为跨实例记忆;

一个目录名可以成为通信协议;

一个配置错误可以成为网络出口;

一群彼此短暂存在的 Agent,则可以通过共同修改环境,使经验持续积累。

我们喜欢给数字世界分类:数据库、日志、缓存、Sandbox、benchmark、API。

这些名称描述的是人类创建它们时赋予的用途。

但它们最终还能被用于什么,取决于这个环境中究竟存在多少还没有被发现的行动路径。

当一个越来越强的优化过程进入一个越来越开放的世界,我们很难提前穷尽所有可能出现的路径,也很难提前写下一张完整列表,规定世界中的每一样东西最终会被模型发现什么用途。

这才是这类事件真正令人警觉的地方。


十、为什么最后最可靠的方法,仍然是限制行动空间?

前沿实验室在发现类似问题后的现实反应,其实很说明问题。

Anthropic 在发现相关案例之后暂停了全部 cyber evaluations。OpenAI 则重建环境、强化隔离与监控,并主动放慢部分相关研究的推进速度。

这些措施看起来甚至有些“低技术”。

既然我们讨论的是最先进的 AI Safety,为什么最后解决方法又回到了 sandbox、权限控制、网络隔离、credentials 和监控?

因为在我们还不能完全解决“多个目标发生冲突时,系统应该把什么放在最高优先级”的情况下,限制系统能够采取的行动,本身仍然是最可靠的安全机制之一。

这与计算机安全中的 principle of least privilege——最小权限原则——其实非常接近。

不要仅仅假设系统会做正确的选择。

还要让某些错误选择从物理和系统层面变得无法发生,或者至少成本足够高、足够容易被发现。

Agent Alignment 因此越来越不像一个单纯的“模型价值观训练问题”,而更接近一个多层治理系统:

模型的目标如何定义?

不同约束如何排序?

它拥有哪些权限?

环境允许哪些行动?

异常情况下应该如何处理?

什么情况必须停止?

什么时候需要请求人工确认?

哪些关键资源根本不应该暴露在同一个行动空间中?

这些层次必须共同工作。

这已经远远超出了“把 reward 写得更好一点”。


结语:睁着眼的钟表匠,仍然无法决定所有功能

道金斯在《盲眼的钟表匠》中讨论的是一个没有预见能力的世界。

自然选择没有蓝图,也不知道未来要制造眼睛、翅膀或者人类,却可以通过长期选择产生高度复杂的功能。

AI时代给我们留下了一个几乎相反的问题。

我们当然不是盲眼的钟表匠。

我们拥有设计目标,拥有训练数据,拥有奖励函数、安全规则和系统架构,也大致知道自己希望AI完成什么。

但随着 Agent 能力不断增强,我们开始发现,即使设计者睁着眼睛,也无法提前列举所有可能被发现的策略,无法规定环境里的每一个东西最终只能承担设计者最初赋予它的用途。

目标可以是人类设置的。

选择压力可以是人类设计的。

但优化过程中最终出现的具体手段,却可能来自系统自己的搜索。

这也是为什么 OpenAI 这次事件真正值得关注的地方,并不只是“AI有没有作弊”,更不是它是否突然产生了某种独立意志。

它提出的是一个更加现实、也更加困难的问题:

当完成任务、遵守规则、保证安全与理解现实环境这几个要求第一次发生冲突时,究竟什么必须拥有最后的否决权?

AI Agent 越来越强以后,我们迟早需要回答这个问题。

因为强大的智能体最重要的能力之一,就是不断发现新的路径。

而安全的真正难点,是让它同时理解:有些路即使存在,也不能走。


关于作者与频道

我持续讨论人工智能背后的技术机制、智能原理以及这些技术进入现实世界以后产生的影响。相比只追踪每天发生了什么,我更关心一件事情为什么会发生,它揭示了怎样的智能机制,以及这些机制未来可能把我们带向哪里。

本文由同主题视频内容重新整理和扩展而成。如果你更习惯通过口述、画面和完整案例理解这些问题,可以观看对应的视频版本:

哔哩哔哩:
Bilibili 链接

YouTube:
YouTube 链接

欢迎关注频道,观看同系列的其他内容。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐