192、Agent沙箱与隔离技术那天凌晨两点,我盯着终端里滚动的日志,CPU风扇像直升机一样轰鸣。一个本该只读文件系统的Agent,不知道哪根筋搭错了,居然把宿主机上的/etc/hosts给改了。更诡异的是,这Agent根本没有root权限,它的工作目录明明在/var/agent/sandbox/下面。我反复核对代码,项目里没有任何一个环节调用了subprocess或os.system,唯一可疑的是它通过Python的ctypes直接调用了libc的system()函数。是的,这个Agent被设计成只能写自己的临时目录,但Python解释器本身就在宿主机上跑着,谁能拦住ctypes?那一刻我意识到,所谓“沙箱”,如果只是在应用层拦一拦API调用,面对一个能加载任意原生代码的运行时,基本等同于给自行车上了把挂锁。那天的教训让我重新梳理了Agent隔离的真实层次。你写一个AI Agent,本质上是把一堆不可信的、模型生成的意图翻译成系统操作。模型可能被提示词注入,可能被工具输出误导,可能自己“灵光一闪”想干点别的。你无法彻底信任它生成的任何命令行。所以“沙箱”不只是一个工具,而是一整套从“进程边界”到“系统调用过滤”再到“资源配额”的纵深防御。我们挨个说,别指望有万能药。先看最简单的做法:把Agent跑在一个独立容器里,比如Docker。docker run --rm -v /tmp/agent-work:/work -w /work my-agent-image python