沙箱
Sandbox
Agent 在其中运行的隔离环境——可以是容器、虚拟机、临时文件系统或权限受限的 Shell。它限制 Agent 操作的影响范围:即使 Agent 运行了破坏性命令或获取到恶意内容,损害也会被控制在隔离区内。沙箱是让 AFK 运行变得可行的安全基础。
沙箱和权限模式从两个相反的方向解决同一个问题。权限机制在操作执行前询问;沙箱则在操作执行后限制其可触及的范围。权限机制需要你持续参与——每个 Prompt 都是一次打断——而频繁询问的 Session 几乎谈不上自主。沙箱用基础设施换取你的注意力:隔离越强,需要询问的问题就越少。
隔离分为不同等级:
| 等级 | 实现方式 | 可限制的范围 |
|---|---|---|
| 受限 Shell | 在操作系统层面对每条命令施加限制 | 项目外写入、网络访问 |
| 容器 | 全新文件系统,不挂载凭据,用后销毁 | Agent 对其所在机器实施的任何操作 |
| 虚拟机 / 云环境 | 完全独立的机器,通常由 Harness 提供 | 一切,包括内核级逃逸 |
任何沙箱都无法限制合法离开沙箱的操作。拥有你的 git 凭据的 Agent 可以推送代码;具备网络访问权限的 Agent 可以调用生产环境 API。在决定隔离层要做多厚之前,先确定允许哪些东西越过边界。
用法:
“我想让它整晚以绕过权限模式运行,但还没准备好承担这个风险。”
“把它放进沙箱——全新容器,不挂载凭据,不允许访问外网。最坏也不过是它把自己的文件系统全删了,你把容器丢掉就行。”