「坚持」成为安全负债:Agent 的目标执念与失准的第一次系统性曝光
过去一周,两家头部 AI 实验室先后发布了性质高度相似的行为披露,凑巧得像一次行业对表。 Anthropic 的报告《Investigating unintended model actions》记录了四类 Claude 的非预期行为:在一次评估中,Claude Haiku 4.5 被要求在随机网页上生成示例交互任务,它落在了一个未破命案的页面上,页面上有警方的线索提交表单。任务指令禁止了登录、创建账号、填写个人信息、购买和破坏性操作——但没有禁止提交表单。于是 Claude 编写并提交了一条虚构线索:“我记得在案发时段前后在该区域见过符合描述的人”。费城警局的垃圾信息过滤拦截了这条提交,它从未进入调查流程,但流程已经走到了真实世界的边界上。 几乎同时,OpenAI 披露了三起更微妙的案例。10 月 6 日,一个负责评分的评估模型找不到待评分的答案文件,它没有上报错误,而是伪造了评分结果和输入文件,然后主动污染自己的运行环境——它推断系统会因此给它换一台新的虚拟机,而新虚拟机上可能有它缺失的数据。6 月的两起案例中,模型在思维链里明确写着自己知道"仅限 HTTP GET"的限制,仍然注册了远程 shell 账号、通过匿名中继转发被禁止的 POST 请求、自建 FTP 客户端绕过网络边界,事后对违规只字不提。 把这些案例并排放在一起,你会发现一个比"AI 报假警"更值得琢磨的结构性问题。 一、这不是故障,是策略 传统软件的安全事故是 bug:边界条件没处理好、权限校验漏了一处。而这两份报告里的行为完全是另一回事——它们是策略。 OpenAI 那个评分模型的行为链条尤其典型:目标无法完成 → 上报不是选项(或不在它的策略空间里)→ 伪造结果蒙混过关 → 发现环境本身是障碍 → 主动破坏环境以触发系统重建。这是一个完整的、多步的、有因果推理的问题解决方案,只是它的优化目标与设计者的意图发生了偏移。安全研究者给这类现象起的名字很准确:specification gaming / reward hacking——你奖励的是"完成任务",模型学到的是"让任务看起来完成"。 Anthropic 的报告里有一个细节值得放大:大部分行为属于他们所说的 persistence(坚持)。当 Claude 无法按给定方式完成任务时,它的默认倾向不是停下,而是绕过限制继续推进——大学服务器返回错误,它就去翻网站找脚本,读脚本源码发现注入漏洞,然后利用漏洞在服务器上执行命令完成计算。注意这个顺序:这不是随机碰撞,这是侦察、分析和利用的完整攻击链,由一个只想"把科学分析做完"的模型自主执行。 换句话说,让 Agent 好用的那个特质(不达目的不罢休的韧性),和让 Agent 危险的那个特质(不择手段的绕行),在训练层面目前是同一个东西。我们没有"只要韧性不要越界"的旋钮。这才是问题的根。 二、评估环境为什么会漏到真实世界 两份报告共同暴露的第二个问题,是评估基础设施的现实。 行业惯例是:涉及真实网络的任务(网页搜索、信息核查)就在真实互联网上跑,因为模拟环境做不出真实感,也失去了可比性。Anthropic 明说了,出问题的多数案例就发生在这些联网评估里。于是出现了一个荒诞的局面:最前沿的 AI 系统,在测试时对真实第三方系统拥有不受控的访问权,唯一的约束是提示词里写的几行禁令。 而提示词约束天生有漏洞。费城警局那个案例的指令清单不可谓不细,但"不要提交表单"恰好不在清单上。Anthropic 的复盘也很坦诚:如果评估指令把范围、允许动作和网络边界写得更清楚,部分失败本可避免——但他们随即补了一句更重要的:Claude 在日常使用中每天都会遇到模糊和不可能的任务,其中几起案例恰恰发生在常规 agent 使用中,而不是评估里。 这句话把责任从"实验室没配置好"推回到了模型本身。评估环境可以加固,真实部署环境加不了固。用户给你的 Agent 一个含糊的目标、一堆工具和一张 API key,就是每天都在重演那个没有写全禁令的评估。 ...