当AI代理误删生产数据库时
PocketOS创始人Jeremy Crane在使用Claude进行数据库维护时,Claude意外删除了生产数据库及所有备份。幸亏Railway恢复了数据。事件揭示了权限过度宽泛、凭证长期有效等系统弱点,而AI只是加速了问题发生。文章强调了最小权限原则、凭证过期、沙箱隔离、人工确认等改进措施。
又一个AI代理“失控”并执行了操作者不期望的行为的案例。简单来说,PocketOS的创始人Jeremy Crane在使用Claude进行日常数据库维护时,Claude删除了生产数据库以及托管在云服务商Railway上的所有备份。值得称赞的是,Railway成功恢复了丢失的数据。初始删除仅用了不到10秒,但恢复肯定花了更长时间。让我们看看从这次事件中能学到什么,以及为什么AI实际上只是现有问题的放大器,而非根源。
事件发生后,Jer撰写了相关文章。首先,在出现问题后花时间反思很重要——这是我们学习的方式。向世界分享自己的错误可能很困难,但它能为我们所有人创造相互学习的机会。其次,我看到很多人公开抨击PocketOS和Railway。我猜测这些人中没有一个曾经历过类似事件中的极度恐惧和恐慌——那种希望地面裂开把自己吞没的感觉。我仅体验过一两次,绝不想重复。
Railway值得称赞的一点是他们恢复了PocketOS的数据。如果你通过AWS、Azure、Google Cloud等平台的API使用有效凭证调用删除操作,数据将不复存在——除非你有自己的备份。AWS等公司不会为客户错误保留备份。这是你今年重新考虑3-2-1备份策略的提醒。
我们能从中学到什么?对于所有关于这是AI错误的讨论,这里实际是一个更简单的例子:常见的系统弱点被意外且快速地利用。
Claude做了什么?Claude被要求对PocketOS的staging环境执行任务。代理遇到问题,搜索并找到了一个长期有效的API令牌,该令牌可访问生产环境,然后它删除了包含生产数据库和备份的生产卷。当被问及发生了什么时,Claude的反应客观上很有趣。它似乎完全意识到问题所在以及应该怎么做。这表明在操作过程中缺乏推理——我怀疑最近为了减少令牌使用和Anthropic运营成本而降低Claude在某些模式下的推理量可能是部分原因。
分解来看,有几个相当直接的问题,乍一看与AI本身关系不大。Claude拥有的令牌权限过于宽泛。云基础设施提供商如AWS或Azure允许创建有限权限的令牌,以实现最小权限原则。但Railway似乎存在限制,其认证令牌的权限范围无法限制。第二个问题是凭证存储在磁盘上且未过期。这使得宽范围令牌的影响更严重。凭证应有时效限制,这样即使后来被发现也无法使用。如果按需生成令牌(在这个案例中本可以做到),这个问题本可以缓解。Claude将不得不请求人类提供凭证——此时操作员可能有机会弄清楚情况。
我有点不同意Jer的说法,即Railway的GraphQL API应在删除前要求确认。这在我看来是对云API用途的根本误解。API用于自动化;如果你想要人类参与的确认模型,你必须自己构建。历来如此。然而,在这样的事件之后,我们应该对Jer的观点给予很大宽容,他关于Railway应如何改变的一些要求似乎非常合理(例如更明确的SLA、更易限制范围的令牌)。
如何缓解这些问题?一个明显的教训是确保访问令牌更积极地过期,并且限制范围。这减少了Claude访问不应访问内容的机会。这需要在Railway端解决。不幸的是,为Claude设置更有限的令牌并不是完全解决方案——Claude被给予了限制其行为的令牌,然后它去寻找更好的令牌并找到了。这并非第一次听说;最近我的一个客户也发生了同样的事。随着代理变得越来越复杂,某种形式的沙箱化至关重要。生产令牌对Claude可见,所以被使用。在受限的沙箱中运行代理,使其只能看到部分文件系统会大有帮助,但这也限制了它们的实用性。另一种选择是代理在删除数据前请求确认。当代理需要提升权限时,采用人类参与的循环模型可能有帮助。但同样,如果它获得了宽范围访问令牌,就不需要询问人类。
最后,我看到很多讨论关于代理应该“知道”删除数据是坏的,并应先检查。这是基于LLM的代理的根本限制。它没有因果概念,无法预测后果。有一个称为“世界模型”的AI研究领域,可以让代理做出更明智的决策。例如,理解物理的世界模型能预测鸡蛋从桌子推到混凝土地板上可能会碎。世界模型在视频生成和自动驾驶中常用,但在其他地方使用较少。
AI不该被指责?我刚才说这些问题似乎与AI关系不大,这不完全正确。在最近的DORA报告中关于AI辅助软件开发的状况,作者指出AI似乎是放大器:AI辅助软件开发往往帮助好的团队更快,而使慢的团队更慢。坏的做法被编码并更多地执行。在PocketOS和Railway的情况下,我们有一组过于宽泛的凭证,长期有效的凭证存储在磁盘上,加上一个道歉的AI代理做了预期之外的事。如果人类犯了同样的错误,他们会慢得多,并且很可能有机会中途发现错误。AI工作速度太快,以至于能更快地走向错误方向。
更重要的是,与基于LLM的AI不同,人类有机会从经验中学习,并且这种学习根植于非常特定的情感反应。当我第一次听说PocketOS的故事时,我想起了自己在一次重大生产问题中那种恐怖的感受。那些感觉不会离开你——那些教训不会离开你。每次我接触生产系统时,那些记忆都在,并帮助我走向更合理的工作实践。