昨天我花了一整天,看着一个AI Agent在Docker沙箱里做了一件真正有用的事——然后又差点做了一件真正愚蠢的事。沙箱完成了它的职责,但那个愚蠢的部分,沙箱从来就拦不住。
这不是沙箱的失败,而是我们对沙箱的期待出了问题。它是个爆炸防护罩,不是保姆。它能控制爆炸的波及范围,却无法判断这场爆炸该不该发生。
沙箱到底解决了什么
Docker沙箱确实是值得欢迎的一步。可丢弃、隔离、网络可控的Agent运行环境——启动一个,让Agent随便跑,用完拆掉。没有状态泄漏,没有宿主机访问权限,没有残留文件。这是实打实的进步。
我在裸机上跑过Agent,也在沙箱里跑过,回不去了。爆炸半径变小了,这件事很重要。
光是网络控制就值回票价。我可以只给Agent一个端点白名单,其他一律不通。它没法偷偷外联,没法窃取数据,没法触达我的内部服务。文件系统是临时的——随便写,容器一死全没了。资源限制能防止失控循环把宿主机拖垮。这些都是控制技术爆炸半径的正确工具,我全都在用。
托管的部分同样关键。把它做成API——启动、运行、销毁,全部可脚本化,全部融入Agent循环——这才是正确的形态。我自己用纯Docker手搓过同样的东西,能用,但托管版本省掉了我实在不想维护的管道工程。
没人写在营销文案里的那句话
但有一件事,没有任何营销文案会告诉你:沙箱边界是错的边界。它是阻止文件系统写入的正确位置,却是阻止后果的错误位置。
说得具体一点。
沙箱里的Agent照样可以调用昂贵的API。照样可以启动云主机。照样可以跑一个循环,在你睡觉的六个小时里烧掉大量token。沙箱不计费。它不知道一美元是什么概念。
上个月我有个Agent卡在一个付费API的重试循环里——沙箱把它隔离得完美无缺,账单还是让我肉疼。隔离毫无瑕疵,损失照样发生。沙箱从头到尾没觉得有任何问题,因为在它看来,一切正常。不过是网络调用,一个接一个,持续了几个小时。
发布也一样。沙箱里的Agent照样能往你的博客发文章。照样能发邮件。照样能合并PR。沙箱不知道什么是有后果的。它分不清"写一个草稿文件"和"向四万粉丝发布一篇攻击性文章"的区别。在沙箱看来,两者都只是网络调用。这就是那道裂缝。
真正有效的防线
那什么才真正管用?对会产生实际后果的操作设置人工审批门槛。不是每个操作都要——那样等于你替Agent干活,只是多绕了几步。而是那些有现实世界后果的操作:花钱、发布、发消息、合并、删除。
沙箱处理技术爆炸半径。审批门槛处理人类爆炸半径。这是两个不同的问题,你两个都需要。
我最终采用的模式,刻意做得无聊。Agent能调用的每个工具,都按后果分级——技术性的自动放行,有现实后果的必须过审批。这个模式不性感,但它把"技术隔离"和"后果控制"这两件事分得清清楚楚。
沙箱是爆炸防护罩,不是保姆。它负责把爆炸控制在范围内,但"这场爆炸该不该发生"这个判断,从来不在它的职责清单里。这个判断,只能由人来下。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.