让 Agent 跑不受信任的代码:沙箱与边界
一旦 Agent 要执行用户提供的代码或安装第三方依赖,就等于在运行任意程序。pip install 一个陌生仓库本身就是任意代码执行。因此安全边界必须建立在"这段代码一定会作恶"的假设上。
隔离层的选择
容器、用户命名空间加 chroot、gVisor 一类的用户态内核、独立虚拟机,隔离强度依次增强,代价也依次增加。实际选择取决于代码运行在谁的机器上:自家机器上可以接受进程级隔离,多租户环境则需要更强的边界。
凭证永远不进沙箱
沙箱里只放它完成任务所需的数据,不放任何长期凭证。需要访问受保护资源时,由沙箱外的控制面签发短时、单一用途的凭证或 URL。
把"我们的故障"和"用户代码的问题"分开
网络断了、镜像拉不下来、机器被回收,这些是平台的问题,不能作为对用户代码的结论报告出去。一个好的运行时会把两类失败分开记账、分开重试。