沙箱 (sandboxing) 是什么? 为什么 AI 代理需要沙箱?
2025年12月11日
随着 AI 代理的发展逐渐成熟,沙箱 (sandboxing) 这个词也再次出现在社群的讨论中。沙箱这个概念在软件业已经行之有年,并非在 AI 代理时代才出现,不过因为 AI 代理的特性,这项技术成为开发 AI 代理相关产品时,不可或缺的配套。
在这篇文章,我们将会讨论什么是沙箱、为什么需要沙箱、以及如果要建立一个最基本的 AI 代理沙箱,可以如何做到?
什么是沙箱 (sandboxing)?
沙箱这个词是从生活中借用到软件界,早在 19 世纪时,德国人就会在庭园中,为小孩建立沙箱,让小孩可以在沙箱当中玩沙。沙箱对家长来说最大的好处,是可以确保沙只会留在沙箱中,所以不管小孩玩得再疯,家长也不用担心其他地方被搞得充满沙。
除此之外,假如小孩玩过头,把沙箱弄得很脏,家长们只需要简单地把沙箱里的沙换成新的干净的沙即可;因为沙箱的范围不大,要换沙的时间与成本都不高。
从小孩玩的沙箱概念借用到软件开发上,软件世界中的沙箱也提供了一个隔离的环境。这能确保假如今天在沙箱中出事情 (例如执行了某段恶意的程式码),影响的范围会被限缩在沙箱当中,不会担心扩及到其他环境。同时,如果沙箱中真的出事了,也只需要简易地把该沙箱关掉,开一个新的即可。
事实上,沙箱这个词除了被借用到软件开发上,科技创新的政策中,也经常会听到监管沙箱 (regulatory sandbox)。所谓的监管沙箱,是指新创公司要尝试创新时,在一定的界线范围中,可以不受现行的法律、制度所规范。
许多科技创新是需要打破框架的,换言之很可能必须与现行法规有所冲突,甚至没有法规能规范。举例来说,当初 Uber 推行到全世界时,技术本身反而是最早达成的,后续的推行都是与各国政府、计程车行业相关法规在做对抗。
假如法规强硬规范,这可能让创新的脚步被拖慢,但如果贸然就全面放宽法律规定,如果出事了又会让负面影响范围扩散太大。透过监管沙箱,科技新创就可以尽情尝试,假如尝试时出问题,也只会在监管沙箱的范围中,不需担心整体被影响到。
为什么 AI 代理需要沙箱?
沙箱不是新概念,只是在 AI 代理兴起后,再次成为讨论焦点。这是因为 AI 代理比起单纯的 AI 聊天机器人,更有帮助的地方在于能帮忙执行任务,但这也是 AI 代理比 AI 聊天机器人危险的地方。
在 开发 AI 产品时要注意的信息安全问题 一文我们有谈到「AI 代理的致命三角 lethal trifecta」这个问题,只要符合「让 AI 代理存取私人资料、让 AI 代理接触到不受信任的资料、让 AI 代理有外部通讯能力」这三个条件,就可能出现资安问题。
要让 AI 代理执行任务,多半会开放权限 (例如读取与修改文件的权限),这就达成「让 AI 代理存取私人资料」的条件;毕竟在用 AI 代理时,相信多数开发者不会想要每次代理有操作,就得手动确认该操作是否安全,因为这样很麻烦很花时间。用 AI 代理是为了省去手动操作,如果还要这样每次确认,就失去用 AI 代理的意义。
不过如果完全自动,让 AI 代理想执行什么就执行什么;这时如果执行某个恶意的程式码,很可能会污染 AI 代理运行的环境,可能让攻击者偷到某些宝贵资讯,或者恶意删除文件,造成不可逆的危害。
在这个脉络下,透过沙箱这种范围限缩的环境,就能限缩 AI 代理被恶意攻击时带来的危害。
给 AI 代理的沙箱该画什么界线?
在了解可以透过沙箱来限缩 AI 代理可能造成的潜在危害后,相信读者们会问「具体来说,该限缩什么? 界线该怎么画?」。
针对这个问题,目前常见的界线有两种
- 文件系统隔离 (filesystem isolation): 确保 AI 代理只能存取或修改特定的文件目录,避免 AI 代理在被提示词注入 (prompt injection) 攻击时修改系统中的敏感文件。
- 网路隔离 (network isolation): 确保 AI 代理只能连线经过批准的伺服器,避免如此被攻击时泄漏敏感资讯,也避免代理下载恶意程式影响到整个系统。
上面两种隔离,一个是针对本地 (文件隔离),另一个是针对远端 (网路隔离),这两种界线需要同时存在,缺一不可。因为即使做好网路隔离,如果缺少文件系统隔离,被攻击的代理仍可能逃出沙箱取得网路存取权。与此同时,如果做好文件系统隔离,但是缺少网路隔离,被攻击的代理可能会外泄敏感文件 (例如 SSH 金钥)。
阅读更多
如果对沙箱这个主题感兴趣,或是对于讲解 Anthropic 开源的 sandbox-runtime 实作感兴趣,这些我们在 E+ 成长计划中的主题文都有谈到。
对更深入了解这个主题,以及其他前后端开发、软件工程、AI 工程主题感兴趣的读者,欢迎加入 E+ 成长计划一起成长 (连结)。